2013年(350)
分类: Oracle
2013-04-28 10:13:13
你大概从无数个人无数个地方听说过,当部署了Dataguard后,可以考虑将数据库的备份操作放在Standby端执行,呃,官方文档中也有这个说法(主要是考虑这样能够分担主库压力),但实际操作时,还是有很多地方需要注意,Standby端创建备份,并不像Primary那样简单,特别是,当你使用的数据库版本是9i。三思近来就遇到了这样的需求,为一组ORACLE9I数据库部署DATAGUARD,并且由于PRIMARY磁盘空间的原因,考虑将备份放到STANDBY端进行,不过实际操作中,还是遇到了一些问题。
官方文档中提供的注意事项如下:
● 强烈建议使用catalog,官方说法是must be。主要是由于备份在Standby端执行的话,如果仍然使用控制文件记录备份信息,那这个信息只能是记在Standby端的控制文件,Primary并不知道,这样恢复时会遇到多种问题,比如说Primary找不着备份集,10g之后还好一些,可以通过rman的catalog命令手动注册备份集到控制文件,但9i并没有提供这一语法,倒是范了难,因此官方文档的描述是there is no way for primary database to konw about the standby backups unless these backup records are stored in the recovery catalog. 不过三思对此说法并不完全认同,俺个人认为,即使是记录到控制中了,实在不行,通过dbms_backup_restore包应该也是可以恢复的,不过这种方式尚未及测试,俺认为应该是可行的。
● 不能备份Standby控制文件,不知道它咋想的,也许是它认为Standby控制文件是个备份的控制文件;
● 不能通过镜像复制或非RMAN备的Standby控制文件来恢复Primary,Standby唯一能够转换成Primary的方式就是alter database activer standby database. But,一旦如此操作了,数据库需要RESETLOGS,而9i下一旦RESETLOGS了,原有备份信息自然也就没用(有)了;
● 不能通过target连接Standby库后再使用DUPLICATE命令创建其它Standby库,DUPLICATE方式创建STANDBY库必须在PRIMARY端执行;
● 不要尝试将Standby库注册到recovery catalog. 因为Standby只是Primary的一个分支;
● 不能通过CONFIGURE命令修改SHOW中的默认设置,它会拼命的提示你:operation not allowed with a backup controlfile。
另外再补充一点,最好不要在Standby端控制文件中开启controlfile autobackup on,否则一旦涉及到数据库结构的修改或备份操作,ALERT中会报出一堆的:
Control autobackup failed with following error :
ORA-00236: snapshot operation disallowed: mounted controlfile is a backup