实时应用日志是从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)
阅读(1707) | 评论(0) | 转发(0) |