实时应用日志是从oracle 10g开始的一个特性。
启用的命令是在备库执行
recover manged standby database using current logfile disconnect; --低于12.1
或
alter database recover managed standby database disconnect from session; --12.1及以后
当前状态是否实时应用,需要在主库上检查:
select dest_id,recovery_mode from v$archive_dest_status ;
如果显示 managed real time apply with query 说明是实时应用。
但是如果发现没有实时应用该怎么办?
首要检查是否配置了合适的srl (standby redo log):
srl 大小和redo一致,数量应该是 ( # of online logs per thread 1) * # of threads
检查备库:
如果不返回结果说明还没有srl,需要创建
先停mrp进程才能在备库创建
为了防止切换后再发生问题,建议检查主库,也创建srl(直接创建即可)。
还有一种可能:
设置了错误的dest_2参数(这里不得不说dg受参数影响非常大)
例如,备库的参数 log_archive_dest_2设置为如下:
location=use_db_recovery_file_dest valid_for=(all_logfiles,all_roles) db_unique_name=主库db_unique_name
这样的话,就需要将dest_1设置为归档位置或fra(如果设置了)
alter system set log_archive_dest_1='location=use_db_recovery_file_dest';
其实最好还是如下设置备库的dest_2:
参考:
data guard real-time apply faq (doc id 828274.1)
data guard do not real-time apply to standby even though srl are configured (doc id 2864452.1)
阅读(1418) | 评论(0) | 转发(0) |