X  
登录

还没有账号?立即注册

忘记密码?
登陆
X  
注册

已经有账号?马上登陆

获取验证码
重新获取(60s)
立即注册
统计
  • 建站日期:2021-03-10
  • 文章总数:518 篇
  • 评论总数:155 条
  • 分类总数:32 个
  • 最后更新:4月20日
文章 技术教程

解决oracle12c中SQL错误: ORA-01157:无法标识/锁定数据文件 22,- 请参阅 DBWR 跟踪文件ORA-01110: 数据文件22:问题的完美方案

梦幻书涯
首页 技术教程 正文

问题:

SQL错误: ORA-01157:无法标识/锁定数据文件 22,- 请参阅 DBWR 跟踪文件ORA-01110: 数据文件22:

'F:ORACLETABLESPACESFACTORY_DATAPDB_FACTORY_DATA.DBF'。

产生原因:

首先我们来看报这个错误的原因:The background process was either unable to find one of the data files or failed to lock it because the file was already in use. The database will prohibit access to this file but other files will  be unaffected. However the first instance to open the database will need to access all online data files. Accompanying error from the operating system describes why the file could not be identified.(后台进程无法找到其中一个数据。文件或未能锁定它,因为文件已在使用中。数据库将禁止对该文件的访问,但其他文件将不受影响。但是第一个实例将打开数据库需要访问所有在线数据文件。伴随误差操作系统描述了无法识别文件的原因。)。综上所述,磁盘中对应表空间的数据文件被删除了,在启动数据库实例时,找不到对应的表空间数据文件(后缀为.dbf的文件)。

解决方案:

  1. 打开sqlplus,使用sys登录数据库,在c db 中执行以下操作。
  2. 启动数据库实例:startup ,运行结果显示启动的数据库实例已启动,此时需要我们关闭它。

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第1张图片

    3.关闭数据库实例:shutdown immediate

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第2张图片

   4.启动数据库例程:startup mount

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第3张图片

   5.删除数据库中的datafile文件:这一步要分情况进行(因为尽管oracle 12c的日志文件共享,但是cdb和各个pdb只能在各自数据库使用自己的日志)。   

       (1)如在磁盘中被删除的数据文件是 cdb容器中表空间对应的 .dbf文件,此时第4步之后就可以执行:

                alter database datafile  被删除的表空间数据文件的完整路径  offline drop;

       (2)如在磁盘中被删除的数据文件是 pdb容器中表空间对应的 .dbf文件,此时第4步之后需要将数据库从 c db切换到pdb:

                alter session set container=pdb实例名(本人的该名称是orclpdb);

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第4张图片

再执行删除pdb中表空间数据文件的操作:

alter database datafile  被删除的表空间数据文件的完整路径  offline drop;

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第5张图片

(3) 执行完(2) 后,将数据库从pdb切换至cdb:

       alter session set container=cdb$root;

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第6张图片

(4)切换回来后,需要再次启动一次例程:startup mount

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第7张图片

   6.数据恢复:recover database

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第8张图片

   7.打开数据库:alter database open;

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第9张图片

   8.重新启动数据库实例:因为数据库数据库实例已经打开了,所以重启的操作实际上就是先关闭数据库实例,在启动它。

    (1)关闭数据库实例:shutdown immediate

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第10张图片

    (2)启动数据库实例:startup

解决oracle12c中SQL错误:ORA-01157:无法标识/锁定数据文件22,-请参阅DBWR跟踪文件ORA-01110:数据文件22:问题的完美方案-梦幻书涯 - 莫問前路遙遠- 與君風雪-第11张图片

此时大功告成。

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2020-11-13,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
Windows 版Oracle 19c 下载安装步骤及细节(Oracle数据库下载)
« 上一篇
ORA-01034: ORACLE not available如何解决
下一篇 »

发表评论

HI ! 请登录
注册会员,享受下载全站资源特权。
登陆 注册
永远的少年,永远的梦

热门文章