日期:2014-05-16  浏览次数:20372 次

11.2.0.3物理 Data Guard主备库切换(附加:ora-16139错误的解决)

 

DG分为主库和备库,我们也猜测其属于primary与standby 之间的互动,那么在primary 和standby 之间的切换:

然而切换又分为switchoverfailovers,前者是无损切换,不会丢失数据,而后者则有可能会丢失数据,并且切换后原primary数据库也不再是该data guard配置的一部分了.

 

针对不同standby(逻辑或物理)的处理方式也不尽相同。

 

 

角色转换前的准备工作:

 

1检查各数据库的初始化参数,主要确认对不同角色相关的初始化参数都进行了正确的配置。

2确保可能成为primary数据库的standby服务器已经处于archivelog模式。

3确保standby数据库的临时文件存在并匹配primary数据库的临时文件

4确保standby数据库的RAC实例只有一个处于open状态。(对于rac 结构的standby数据库,在角色转换时只能有一个实例startup。其它rac实例必须统统shutdown,待角色转换结束后再startup

 

 

 

Switchover

 

无损转换,通常是用户手动触发或者有计划的让其自动触发,比如硬件升级,软件升级之类的。通常它给你带来的工作量非常小并且都是可预计的。其执行分两个阶段,第一步, primary数据库转换为tandby角色,第二步,standby数据库(之一)转换为primary角色,primarystandby 只是简单的角色互换,

 

Failover

不可预知原因导致primary 数据库故障并且短期内不能恢复就需要failover。如果是这种切换那你就要小心点了,有可能只是虚惊一场,但如果运气不好又没有完备的备份恢复策略而且primary 数据并非处于最大数据保护或最高可用性模式地话,这种情况下呢丢失数据有可能是难免的,并且如果其故障未能修复,那它甚至连快速修复成为standby 的机会也都失去了;

 

 

在执行failover 之前,尽可能将原primary 数据库的可用redo 都复制到standby 数据库。

注意,如果要转换角色的standby处于maximum protection模式,需要你首先将其切换为