Symantec NetBackup进行ORACLE数据库的备份失败

发布时间:  2014-07-17 浏览次数:  331 下载次数:  15
问题描述
某eSpace CC局点在主站点和容灾站点分别建了1套ORACLE 11R2 RAC数据库,并通过ORACLE Dataguard的FSFO技术来实现主/备站点的ORACLE自动切换.由于Dataguard要求数据库必须采用归档模式,所以现场采用了Symantec NetBackup对数据库进行备份和归档日志的自动清理,备份的脚本见附件.
运行初期主/备站点数据库运行正常,备份也正常.但是某日由于网络原因导致数据库发生了容灾切换,主/备站点的数据库角色互换了.之后原主数据库的自动备份就出现了问题,导致原主数据库的归档日志不断增加,很快将要导致归档目录溢出.
告警信息
检查备份日志发现如下报错:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 07/15/2014 11:28:29
RMAN-11003: failure during parse/execution of SQL statement: alter system archive log current
ORA-01109: database not open
处理过程
将原主数据库的备份脚本中sql 'alter system archive log current';这一句用#注释掉,重新执行一次备份,问题解决.
根因
1.从备份日志来看是数据库没有打开,通过select status from v$instance命令查看原主数据库的两个实例,状态都是open,说明不是数据库本身的问题.
2.仔细对比主站点和容灾站点数据库的备份脚本,发现原来的容灾数据库的备份脚本中有如下一句被注释掉了
#sql 'alter system archive log current';
而原主数据库却没有被注释.
3.经过询问得知,备份脚本中sql 'alter system archive log current';这一句的意思是手动让数据库对当前redo日志进行一次归档操作,而作为备数据库是只读数据库,它的redo只能是从生产端拷贝而来,而不是数据库自己产生的,所以执行这个命令就失败了.
建议与总结
安装和调测完成后要进行充分的测试,包括倒换后的相关测试

END