PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

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

原创
2016-06-07 17:17:13 916浏览

一、环境介绍 Data Guard环境: Primary数据库:Oracle10.2.0.5.0操作系统:RedHat 4.4主机名:sourceIP地址:192.168.10.101数据

一、环境介绍

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 专题页面 ?tid=12

linux

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。