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

问题:

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

'F:\ORACLE\TABLESPACES\FACTORY_DATA\PDB_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 ,运行结果显示启动的数据库实例已启动,此时需要我们关闭它。

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

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

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

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

   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);

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

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

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

       alter session set container=cdb$root;

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

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

   6.数据恢复:recover database

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

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

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

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

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

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

此时大功告成。

 

你可能感兴趣的:(个人工作日志,oracle12)