最近学习oracle dataguard,在建立物理备份数据库的时候,碰到一个问题,以至物理备份数据库建立好之后不能接收主数据库的归档日志,经过一番排查之后发现是参数设置的问题,修改后问题解决。过程描述如下:
在建立好物理备份数据库并启动到mount状态下,这时在主数据库进行日志切换“alter system switch logfile”,如果执行过程没问题,在物理备份数据库端应该看到新生成的归档日志文件,但实际却没有,如下图所示:
根据上图所反映的情况,在主数据库端切换日志新生成的归档日志文件并没有同步到备用数据库,说明主备之间的连接出了问题。
通过检查主数据库demo的alert文件,看到以下报错信息:
Thu Mar 12 13:45:55 2009
PING[ARCO]: Heartbeat failed to connect to standby 'standby1'. Error is 16009.
Thu Mar 12 13:50:57 2009
Errors in file d:\admin\demo\bdump\demo arc0 2664.trc:
ORA-16009: remote archive log destination must be a STANDBY database
以上报错信息在问题依然存在的情况下,每隔五分钟报告一次错误。
在主备连接建立不成功的情况下,可能出现的错误有几个地方,一是密码文件建立不成功,一是监听以及tnsname.ora配置文件有问题,然后考虑初始化参数文件的问题。在检查密码文件无误以及tnsping实例名没问题的情况下,故障定位到了初始化参数文件上。根据oracle Metalink上给出的解释,检查出备份数据库上的初始化参数文件里部分参数有问题,下面先奉上部分参数:
db_unique_name=standby1
log_archive_config='dg_config=(demo,standby1)'
db_file_name_convert='d:\oradata\demo','d:\oradata\standby1'
log_file_name_convert='d:\oradata\demo','d:\oradata\standby1'
log_archive_format=log%t_%s_%r.arc
log_archive_dest_1='location=d:\oradata\standby1 valid_for=(all_logfiles,all_roles) db_unique_name=standby1'
log_archive_dest_state_1=enable
log_archive_dest_2=’service=demo valid_for=(online_logfiles,primary_role) db_unique_name=demo’
log_archive_dest_state_2=enable
fal_server=demo
fal_client=standby1
standby_file_management=auto
注意红色标出的部分是问题所在,解决方法是将参数log_archive_dest_2设为空,并屏蔽参数log_archive_dest_state_2就可以了。
阅读(2013) | 评论(0) | 转发(0) |