案例:
双节点DG环境,主库与备库的db_unique_name相同为orcl,
log_archive_config参数配置如下
log_archive_config='DG_CONFIG=(orcl)'
这样配置出现的问题总结如下:
1.备库的standby redo未被使用
2.主库修改为同步传输模式时宕机
3.switchover切换失败,主切备hang住
解决办法:
alter system set log_archive_config='NODG_CONFIG' scope=both;
或者置空
alter system set log_archive_config='' scope=both;
LOG_ARCHIVE_CONFIG参数介绍:
初始化参数LOG_ARCHIVE_CONFIG用于控制发送归档日志到远程位置、接收远程归档日志,
并指定Data Guard配置的惟一数据库名,
默认值为SEND,RECEIVE,NODG_CONFIG。
当设置该参数为SEND时,会激活发送归档日志到远程位置;
当设置该参数为NOSEND时,会禁止发送归档日志到远程位置;
当设置该参数为RECEIVE时,会激活接收远程归档日志;
当设置该参数为NORECEIVE时,会禁止接收远程归档日志;
当设置该参数为DG_CONFIG时,可以最多指定9个惟一数据库名;
当设置该参数为NODG_CONFIG时,会禁止指定惟一数据库名,
即便归档传输路径中指定了DB_UNIQUE_NAME也不生效。
参数配置:
当主库与备库的db_unique_name相同时
log_archive_config就不需要配置了,直接将其置空。
此时log_archive_dest_2参数中的db_unique_name可以随意写。
配置方式:
例如主库与备库db_unique_name为orcl
alter system set log_archive_config='' scope=both;
alter system set log_archive_dest_2='SERVICE=orcl2 db_unique_name=xxx' scope=both;
SERVICE后面接的是tnsname,db_unique_name可以随意写
当主库与备库的db_unique_name不同时
log_archive_config可以配置也可以不配置。
如果配置了log_archive_config,
那么log_archive_dest_2参数中的db_unique_name
必须与log_archive_config参数中的db_unique_name相匹配
如果没有配置log_archive_config,
那么log_archive_dest_2参数中的db_unique_name可以随意写。
因为日志发送主要是依靠于SERVICE进行发送日志。
配置方式:
例如主库db_unique_name为orcl1,备库db_unique_name为orcl2
配置了log_archive_config:
alter system set log_archive_config='DG_CONFIG=(orcl1,orcl2)' scope=both;
alter system set log_archive_dest_2='SERVICE=orcl2 db_unique_name=orcl2' scope=both;
SERVICE后面接的是tnsname,
db_unique_name要与log_archive_config参数中的db_unique_name相匹配
没有配置log_archive_config:
alter system set log_archive_config='' scope=both;
alter system set log_archive_dest_2='SERVICE=orcl2 db_unique_name=xxx' scope=both;
SERVICE后面接的是tnsname,
db_unique_name随意写