oracle adg switch over,ADG switchover and failover 、三种模式的切换

ADG 三种模式是针对 主库在未计划内停机但停机时主库数据要尽量达到哪种目的 而提出的;

LYNC 、ASYNC 是针对主库负载提出的;

本节接上节继续——ADG switchover and failover 、三种模式的切换

一、ADG有三种(PROTECTION|AVAILABILITY|PERFORMANCE)模式切换

首先对三种模式做个简单的介绍:

DG的三种模式:

最大保护:主节点事务提交前,redo写入在线日志,而且从节点也要写入到standby redolog中,并且保证在从库中至少一个节点可用,在主节点才提交事务,注意,最大保护模式,从节点故障,主库会被shutdown。

最高性能:这种模式,主节点随时提交事务,事务提交时,redo至少写入一个从节点,但是写入不一定同步。

最高可用性(介于最大保护与最大性能之间):这种模式和最大保护有点类似,不同的是,从库故障,主库不会shutdown,而是转为最高性能模式,从库恢复后,转回最高可用性模式。

Oracle 10g Dataguard 物理standby只能read only打开,此时只接受redo,不应用redo。应用redo,就不能打开(只能mount);Oracle 11G Dataguard 可以以open read only模式打开,继续应用redo.

查看ADG当前模式

主:

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PRIMARY  MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

备:

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PHYSICAL STANDBY MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE

--默认ADG为最大性能模式

切换为最大可用模式

SQL> alter database set standby database to maximize availability;

主:

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PRIMARY  MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

备:

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PHYSICAL STANDBY MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

切换为最高保护

SQL>alter database set standby database to maximize protection;

主:

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PRIMARY  MAXIMUM PROTECTION   MAXIMUM PROTECTION

备:

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PHYSICAL STANDBY MAXIMUM PROTECTION   MAXIMUM PROTECTION

********************* 三种模式间,具体细节区别,请自行建立相关实验测试 *********************

二、 failover测试

三、switchover测试

查看主备状态

主:

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS

---------------- ------------

primary  OPEN

备:

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS

---------------- ------------

standby  OPEN

switchover切换

SQL>alter database commit to switchover to physical standby with session shutdown;

查看主库状态

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PHYSICAL STANDBY MAXIMUM PROTECTION   UNPROTECTED

SQL>  select database_role,switchover_status from v$database;

DATABASE_ROLE SWITCHOVER_STATUS

---------------- --------------------

PHYSICAL STANDBY RECOVERY NEEDED

查看备库状态

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PHYSICAL STANDBY MAXIMUM PROTECTION   MAXIMUM PROTECTION

备库:

SQL> alter database commit to switchover to primary with session shutdown;

Database altered.

查看备库状态:

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PRIMARY  MAXIMUM PROTECTION   UNPROTECTED

查看主库状态:

SQL>  select database_role,switchover_status from v$database;

DATABASE_ROLE SWITCHOVER_STATUS

---------------- --------------------

PHYSICAL STANDBY RECOVERY NEEDED

主备都执行:

shutdown immediate;

startup;

查看备库状态,发现成了primary角色

SQL> select database_role,protection_mode,protection_level from v$database;

DATABASE_ROLE PROTECTION_MODE      PROTECTION_LEVEL

---------------- -------------------- --------------------

PRIMARY  MAXIMUM PROTECTION   MAXIMUM PROTECTION

查看主库状态,发现成了standby角色

SQL>  select database_role,switchover_status from v$database;

DATABASE_ROLE SWITCHOVER_STATUS

---------------- --------------------

PHYSICAL STANDBY TO PRIMARY

做测试

备:

SQL> archive log list;

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination       /u01/app/oracle/fast_recovery_area

Oldest online log sequence     40

Next log sequence to archive   41

Current log sequence       41

主:

SQL> archive log list;

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination       /u01/app/oracle/fast_recovery_area

Oldest online log sequence     39

Next log sequence to archive   0

Current log sequence       41

备:

SQL> alter system switch logfile;

System altered.

SQL> archive log list;

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination       /u01/app/oracle/fast_recovery_area

Oldest online log sequence     40

Next log sequence to archive   42

Current log sequence       42

主:

SQL> archive log list;

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination       /u01/app/oracle/fast_recovery_area

Oldest online log sequence     39

Next log sequence to archive   0

Current log sequence       42

查看备库switchover状态

SQL>  select database_role,switchover_status from v$database;

DATABASE_ROLE SWITCHOVER_STATUS

---------------- --------------------

PRIMARY  TO STANDBY

查看主库switchover状态

SQL>  select database_role,switchover_status from v$database;

DATABASE_ROLE SWITCHOVER_STATUS

---------------- --------------------

PHYSICAL STANDBY NOT ALLOWED

---SWITCHOVER_STATUS好像不正常,不过后面测试却是可以的,具体原因,我再研究下下

***************至此,switchover 结束 *********

关于,swithover后,验证数据可行性,上面步骤是有问题的,留下悬念(提示,备库启动时,应该先启动到mount,再recover)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值