Oracle 12c ADG - ORA-01186;ORA-01157;ORA-01111;ORA-01110
背景:模拟adg新增不在dg配置中的数据文件故障
适用范围:11g,12c ADG
以下为实验过程,首先保证adg为正常环境(略)。
1. 故障模拟过程
primary>/oradata
primary> chown -R oracle.oinstall /oradata
primary>chomod -R 775 /oradata
primary> create tablespace test datafile '/oradata/test01.dbf' size 10m;
此时分别观察主从alter日志,你会发现standby日志的MRP0进程会自动关闭,并抛出异常。
ORA-01119;ORA-27040;ORA-01274
随即把主库中的这条信息删掉
primary> drop tablespace test including contents and datafiles;
此时再观察standby,会发现刚才显示的错误一直在刷,并且standby的日志实时应用是无法打开的(抛出错误码:ORA-01186;ORA-01157;ORA-01111;ORA-01110)
修复过程:
1.先查看从库的控制文件位置,然后关闭从库并启动到mount状态
standby>show parameter control;
standby>shutdown immediate;
2.从主库拷贝控制文件到从库对应位置
primary>alter database create standby controlfile as '/home/oracle/control01.ctl';
primary>cp '/home/oracle/control01.ctl' standby:/home/oracle/
standby>cp control01.ctl /u01/app/oracle/oradata/dgro/control01.ctl
standby> cp control01.ctl /u01/app/oracle/fast_recovery_area/dgro/control02.ctl
3.启动从库至mount状态,并利用实时日志恢复还原至最新状态
standby>startup mount;
standby>select name from v$datafile;
standby> alter database recover managed standby database disconnect from session;
此时观察standby alert日志中会将当前所有未应用的arc进行应用;
standby> alter database open;
standby>alter database recover managed standby database using current logfile disconnect from session;
4.至此故障解决。
总结:
在主库中创建新的数据文件目录同时,必须保证从库有同样的目录以及权限,否则从库无法进行实时日志应用;