问题描述:本来配置好的DG第二天重启之后,发现主备库数据不能同步,在主库上执行日志切换以及创建表操作都传不到备库上,造成这种错误的原因是主库实例断掉后造成备库日志与主库无法实时接收
主库:orcl 备库:orclstd 说明:启动之前主备库都要开启监听,否则接收不到数据
在主库上:启动主库,切换到startup状态
2.切换日志,并查看主库最大日志数
3.在备库上:验证切换过的最大日志数,发现主备最大日志数不一样,主备库数据不能同步
取消备库接受日志,然后重启实例,避免因为过程中造成主库继续传输数据的冲突
5.重启实例
6.把备库实例启动到nomount状态,再切换到mount状态,并将数据库状态切换为open read only只读状态
7.重新应用日志信息,开始实时同步
8.主库上重新切换日志,并查看最大日志数
9.在备库上查看最大日志数,已经可以同步了,在主库上创建表或者数据文件都是ok的
10.相关sql
取消实时同步:SQL> alter database recover managed standby database cancel;
开启实时同步:SQL> alter database recover managed standby database using current logfile disconnect from session
日志切换 :SQL> alter system archive log current;
看最大日志数:SQL> select max(sequence#) from v$archived_log;
切换open只读:SQL> alter database open read only;
加载到standby:SQL> alter database mount standby database;