搭完DG后发现日志输不过来,查看日志:
Thread 1 advanced to log sequence 3769 (LGWR switch)
Current log# 4 seq# 3769 mem# 0: /oradata/tpakvdata/redo04.log
Tue Jul 14 11:47:00 2015
ARC3: Archivelog destination LOG_ARCHIVE_DEST_2 disabled: Data Guard configuration identifier mismatch
Current log# 4 seq# 3769 mem# 0: /oradata/tpakvdata/redo04.log
Tue Jul 14 11:47:00 2015
ARC3: Archivelog destination LOG_ARCHIVE_DEST_2 disabled: Data Guard configuration identifier mismatch
然后在主库上查询v$ARCHIVE_DEST视图:
SQL> select dest_name, status, error from v$archive_dest WHERE DEST_ID = 2;
DEST_NAME
--------------------------------------------------------------------------------
STATUS ERROR
--------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_2
DISABLED ORA-16047: DGID mismatch between destination setting and target
database
DEST_NAME
--------------------------------------------------------------------------------
STATUS ERROR
--------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_2
DISABLED ORA-16047: DGID mismatch between destination setting and target
database
在网上查询后,需要重点检查如下参数:
log_archive_config
fal_client
fal_server
log_archive_dest_2
fal_client
fal_server
log_archive_dest_2
log_archive_dest_state_2
经过检查,如上的参数设置在内容上是没有问题的,有可能就是格式的问题了(比如大小写等),于是,我重置了主库的log_archive_dest_2 参数:
alter system set LOG_ARCHIVE_DEST_2='SERVICE=tpakvdg ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=tpakvdg';
然后再查询v$ARCHIVE_DEST视图,发现状态已变成DEFERRED :
SQL> select DEST_ID,DEST_NAME,STATUS,BINDING,ERROR from v$ARCHIVE_DEST where status<>'INACTIVE';
DEST_ID
----------
DEST_NAME
--------------------------------------------------------------------------------
STATUS BINDING
--------- ---------
ERROR
-----------------------------------------------------------------
1
LOG_ARCHIVE_DEST_1
VALID OPTIONAL
DEST_ID
----------
DEST_NAME
--------------------------------------------------------------------------------
STATUS BINDING
--------- ---------
ERROR
-----------------------------------------------------------------
2
LOG_ARCHIVE_DEST_2
DEFERRED OPTIONAL
DEST_ID
----------
DEST_NAME
--------------------------------------------------------------------------------
STATUS BINDING
--------- ---------
ERROR
-----------------------------------------------------------------
1
LOG_ARCHIVE_DEST_1
VALID OPTIONAL
DEST_ID
----------
DEST_NAME
--------------------------------------------------------------------------------
STATUS BINDING
--------- ---------
ERROR
-----------------------------------------------------------------
2
LOG_ARCHIVE_DEST_2
DEFERRED OPTIONAL
再查看参数log_archive_dest_state_2 ,还是显示enable:
SQL> show parameter log_archive_dest_state_2
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_2 string ENABLE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_2 string ENABLE
于是,试着重置log_archive_dest_state_2 参数:
SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=defer scope=both;
System altered.
SQL> select dest_name, status, error from v$archive_dest WHERE DEST_ID = 2;
DEST_NAME
--------------------------------------------------------------------------------
STATUS ERROR
--------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_2
DEFERRED
SQL>
SQL>
SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=enable scope=both;
System altered.
SQL>
SQL> select dest_name, status, error from v$archive_dest WHERE DEST_ID = 2;
DEST_NAME
--------------------------------------------------------------------------------
STATUS ERROR
--------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_2
VALID
System altered.
SQL> select dest_name, status, error from v$archive_dest WHERE DEST_ID = 2;
DEST_NAME
--------------------------------------------------------------------------------
STATUS ERROR
--------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_2
DEFERRED
SQL>
SQL>
SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=enable scope=both;
System altered.
SQL>
SQL> select dest_name, status, error from v$archive_dest WHERE DEST_ID = 2;
DEST_NAME
--------------------------------------------------------------------------------
STATUS ERROR
--------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_2
VALID
可以看到,状态终于变成valid了,再查看alert日志:
Tue Jul 14 15:05:56 2015
******************************************************************
LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
******************************************************************
Tue Jul 14 15:05:56 2015
Archived Log entry 4032 added for thread 1 sequence 3772 ID 0x33cbbb6a dest 1:
LNS: Standby redo logfile selected for thread 1 sequence 3773 for destination LOG_ARCHIVE_DEST_2
Tue Jul 14 15:05:56 2015
ARC0: Standby redo logfile selected for thread 1 sequence 3772 for destination LOG_ARCHIVE_DEST_2
******************************************************************
LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
******************************************************************
Tue Jul 14 15:05:56 2015
Archived Log entry 4032 added for thread 1 sequence 3772 ID 0x33cbbb6a dest 1:
LNS: Standby redo logfile selected for thread 1 sequence 3773 for destination LOG_ARCHIVE_DEST_2
Tue Jul 14 15:05:56 2015
ARC0: Standby redo logfile selected for thread 1 sequence 3772 for destination LOG_ARCHIVE_DEST_2
已经可以成功传输日志文件。看来视图
v$archive_dest中的status才是传输路径的真正状态,如果光看
LOG_ARCHIVE_DEST_STATE_2的设置很有可能会被误导。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25465866/viewspace-1732925/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25465866/viewspace-1732925/