在DataGuard环境中使用Broker-模式切换


一、环境介绍
 
Data Guard环境:
 
Primary数据库:Oracle10.2.0.5.0
操作系统:RedHat 4.4
主机名:source
IP地址:192.168.10.101
数据库SID:source
DB_UNIQUE_NAME:source_pr
 
Standby数据库:oracle10.2.0.5.0
操作系统:redhat 4.4
主机名:target
IP地址:192.168.10.102
数据库SID:source
DB_UNIQUE_NAME:source_st
 
 
二、dataguard启停
 
 
注意Data Guard启动顺序:
 
启动顺序:先standby ,后primary;
关闭顺序:先primary后standby;
 
在备库将实例启动到mount状态:
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>alter database recover managed standby database disconnect from session;
如果要取消恢复:alter database recover managed standby database cancel;
 
在备库启动监听:
$lsnrctl start
 
在主库启动实例:
SQL> startup;
 
在主库启动监听:
$lsnrctl start
 
在主库验证归档目录是否有效:
 
SQL> select dest_name,status,error from v$archive_dest;
 
如果有错误,要排查原因。
 
SQL> alter system switch logfile;
SQL> select max(sequence#) from v$archived_log;
 
查看数据库模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;
SQL>select status,database_mode from v$archive_dest_status;
SQL>select OPEN_MODE, PROTECTION_MODE, ACTIVATION#,DATABASE_ROLE, SWITCHOVER# ,SWITCHOVER_STATUS from v$database;
 
 
三、保护模式切换体验 
 
我最初配置的DG的保护模式是最大性能模式(MAXIMUM PERFORMANCE),在下面的体验中我分别完成如下模式的切换    最大性能-->最大保护 
最大保护-->最大可用 
最大可用-->最大保护 
最大保护-->最大性能
最大性能-->最大可用
 
当保护模式更改顺序:
maximize protection ---> maximize availability ----> maximize performance
当在把dataguard的保护级别按这上面的顺序减低的时候,不需要primary库在mount状态,否则primary必须在mount状态。
如果是升级保护模式,比如从最高性能模式升级到最高可用模式,则需要先关闭数据库,然后mount数据库,如果是降级保护模式则直接
 
data guard数据保护模式                                        最大保护         最高可用           最高性能
REDO写进程                     LGWR            LGWR           LGWR或ARCH
网络传输模式                       SYNC            SYNC            LGWR进程时SYNC或ASYNC,ARCH进程时YNC
磁盘写操作                        AFFIRM       AFFIRM         AFFIRM或NOAFFIRM
是否需要standby redologs    YES             YES            可没有但推荐有
 
 
1、最大性能-->最大保护的切换 
 
DGMGRL> edit database source_pr set property LogXptMode ='SYNC';  --为什么改为SYNC大家很清楚吧
Property "logxptmode" updated
 
DGMGRL> edit database source_st set property LogXptMode ='SYNC';
Property "logxptmode" updated
 
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXPROTECTION;  --这个restart的过程是自动的
Operation requires shutdown of instance "source" on database "source_pr"
Shutting down instance "source"...
Database closed.
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "source" on database "source_pr"
Starting instance "source"...
ORACLE instance started.
Database mounted.
 
2、最大保护-->最大可用的切换
 
这个动作比较简单,不需要改参数。
 
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
Succeeded.
3、最大可用-->最大保护的切换
 
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXPROTECTION;
Operation requires shutdown of instance "source" on database "source_pr"
Shutting down instance "source"...
Database closed.
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "source" on database "source_pr"
Starting instance "source"...
ORACLE instance started.
Database mounted.
DGMGRL>
4、最大保护-->最大性能的切换
 
 
DGMGRL> edit database source_pr set property LogXptMode ='ASYNC';
Property "logxptmode" updated
 
DGMGRL> edit database source_st set property LogXptMode ='ASYNC';
Error: ORA-16805: change of LogXptMode property violates overall protection mode
 
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXPERFORMANCE;
Succeeded.
 
DGMGRL> edit database source_st set property LogXptMode ='ASYNC';
Property "logxptmode" updated
5、最大性能-->最大可用性的切换
 
DGMGRL> edit database source_pr set property LogXptMode ='SYNC';  --为什么改为SYNC大家很清楚吧
Property "logxptmode" updated
 
DGMGRL> edit database source_st set property LogXptMode ='SYNC';
Property "logxptmode" updated
 
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
Succeeded.

更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12

相关内容