本文主要介绍Oracle Data Guard的一些常见问题及处理方法的收集整理,由于个人能力及遇到的问题有限可能有所谬误,如有不当之处请大家指出。
一. standby database的参数STANDBY_ARCHIVE_DEST设置不明确,通过语句:SELECT DESTINATION, ERROR FROM V$ARCHIVE_DEST;
在standby database上查询此参数设置是否有效。如果此参数设置不当则会造成standby database无法归档redo log。
二. 当参数STANDBY_FILE_MANAGMENT设置为AUTO的时候,无法使用以下语句:
alter database rename
alter database add logfile
alter database add standby logfile member
alter database create datafile as
如果试图使用这些语句的话,将会收到如下ORA-01511,ORA-01270错误:
SQL> ALTER DATABASE RENAME FILE '/disk1/oracle/oradata/payroll/t_db2.log' to 'dummy';
alter database rename file '/disk1/oracle/oradata/payroll/t_db2.log' to 'dummy'
*
ERROR at line 1:
ORA-01511: error in renaming log/datafiles
ORA-01270: RENAME operation is not allowed if STANDBY_FILE_MANAGEMENT is auto
三. standby database无法接收到primary database的重做数据。首先使用如下语句检查错误消息:SELECT DEST_ID,STATUS,DESTINATION,ERROR FROM V$ARCHIVE_DEST;如果查询出来的错误消息无法提供帮助的话,那么检查primary database的tnsnames.ora是否配置了standby database的网络服务名;LOG_ARCHIVE_DEST_N及LOG_ARCHIVE_DEST_STATE_N是否配置正确.standby database的listener.ora配置是否正确;监听及实例是否启动;是否对spfile或pfile做了改变而没有保存;primary/standby database是否使用相同的密码文件;配置standby database使用的备份集是否正确。
四. standby database无法加载,首先确定standby database的控制文件是否通过命令:ALTER DATABASE CREATE [LOGICAL/PHYSICAL] STANDBY CONTROLFILE 来创建的。通过系统备份或者创建控制文件的时候缺失LOGICAL/PHYSICAL关键字都会导致无法加载standby database。