DG报错ORA-01111、ORA-01110、ORA-01111备库不同步

发布时间:2023年12月25日

刚同步好没多久的dg备库,过两天查看同步状态发现备库数据不同步,重新开启同步也不能正常同步。
查看alert日志,查看报错如下:

MRP0: Background Media Recovery terminated with error 1111
Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\ris\ris\trace\ris_pr00_2546900.trc:
ORA-01111: 数据文件 11 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 11: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00011'
ORA-01157: 无法标识/锁定数据文件 11 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 11 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 11: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00011'

主库查看11号数据文件是什么,发现是dg同步好后新创建的表空间。遂联想到standby_file_management参数,查看发现果然该参数值为MANUAL
在这里插入图片描述
找到原因后即可开始处理故障,处理方法无非就是重新同步整库,或者重命名数据文件。

这个库虽然数据量不大,因为没处理过类似故障,这里还是用重命名的方法处理一下。
1.查看哪些文件需要处理

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------
X:\ORADATA\RIS\SYSTEM01.DBF
X:\ORADATA\RIS\SYSAUX01.DBF
X:\ORADATA\RIS\UNDOTBS01.DBF
X:\ORADATA\RIS\USERS01.DBF
X:\ORADATA\RIS\PACS01.DBF
X:\ORADATA\RIS\RIS01.DBF
X:\ORADATA\RIS\RISINDEX01.DBF
X:\ORADATA\RIS\OGG.DBF
X:\ORADATA\RIS\PACS02.DBF
X:\ORADATA\RIS\PACS03.DBF
D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00011

可以看到最后一个数据文件需要处理,数据库中该文件号为11#
也可以用这个sql查看:

SQL> select * from v$recover_file where error like '%FILE%';

2.重命名数据文件
dg备库重命名文件的语法和普通rename好像不太一样,百度后查到如下语法。


SQL> alter database create datafile'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00011' as'X:\ORADATA\RIS\ZBX.DBF';
数据库已更改。
修改完成后查看数据文件:
SQL> select * from v$recover_file where error like '%FILE%';

未选定行

SQL> select name from v$datafile;

NAME
-------------------------------------------------
X:\ORADATA\RIS\SYSTEM01.DBF
X:\ORADATA\RIS\SYSAUX01.DBF
X:\ORADATA\RIS\UNDOTBS01.DBF
X:\ORADATA\RIS\USERS01.DBF
X:\ORADATA\RIS\PACS01.DBF
X:\ORADATA\RIS\RIS01.DBF
X:\ORADATA\RIS\RISINDEX01.DBF
X:\ORADATA\RIS\OGG.DBF
X:\ORADATA\RIS\PACS02.DBF
X:\ORADATA\RIS\PACS03.DBF
X:\ORADATA\RIS\ZBX.DBF

已选择11行。

已经修改好了。

3.将standby_file_management参数改为auto,继续同步数据

SQL> alter system set standby_file_management=AUTO scope=both;

系统已更改。

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

数据库已更改。
文章来源:https://blog.csdn.net/zongzizz/article/details/135207018
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。