0
点赞
收藏
分享

微信扫一扫

Oracle Data Guard系列:DG保护模式切换及Failover切换实操

Data Guard的保护模式分为三种:Maximum Protection、Maximum Performance、Maximum Availability。

Max Protection是最大保护模式,可以保证主端被备端数据一致,给数据文件提供最大的保护,但是备端异常会导致主端无法正常提供服务。

Maximum Performance是最大性能模式,主端和备端无法保障数据实时同步,只有当主端切换归档日志时备端接收到日志才会应用到备库,但是此种保护模式备端不会影响主端运行,即使归档日志没有传输成功主库依旧可以正常对外提供服务。

Maximum Availability是最高可用模式,允许当主端无法接收备端确认信息时继续进行事务处理。类似于最大保护模式,当备端正常时起到的保护作用就是最大保护模式,当备端异常导致无法与主端正常通信,保护模式会自动降低到最大性能模式。

此篇文章中借助已经搭建好的dg(最大性能模式)平台为基础,演示从最大性能切换到最大保护模式,然后再由最大保护模式切换到最高可用模式,最后在进行Data Guard的故障切换。

1、最高性能到最大保护模式

此模式的弊端是备端一个的时候如果故障主端也会停止工作,多个备端的时候,有一个备端可以正常工作主端就会正常工作。对网络要求高。

1.1、主端节点修改log_archive_dest_2,命令如下:

SQL> alter system set log_archive_dest_2='SERVICE=std LGWR sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=std';

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG模式切换

SQL>  show parameter dest_2

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG模式切换_02

1.2、在备端节点修改log_archive_dest_2,命令如下

SQL> alter system set log_archive_dest_2='SERVICE=pri LGWR sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pri';

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_实战_03

SQL>  show parameter dest_2

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG_04

1.3、备端数据库重启到mount阶段

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG_05

1.4、主端重启到mount阶段

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG_06

1.5、主端更改保护模式

SQL> alter database set standby database to maximize protection;

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_实战_07

1.6、备端开启到open模式,然后开启使用日志归档模式

SQL> alter database open

SQL> recover managed standby database using current logfile disconnect from session;

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_oracle_08

1.7、主端开启到open状态(生产建议使用shutdown immediate关库)

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_oracle_09

1.8、检查保护模式是否更改

SQL> select name,open_mode,database_role,protection_mode,switchover_status from v$database;

主端检查截图

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_oracle_10

备端检查截图

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_oracle_11

1.9、测试主端在在提交更改时候是否备端会同样生成数据

主端插入数值9

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_oracle_12

查询备端发现也可以查询到9已经写入到备端

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG fail over_13

至此,证明最大性能模式切换到最大保护模式操作成功。

2、最大保护模式到最大可用模式

此种模式切换相对简单,只需要简单更改参数即可,具体才做步骤如下:

2.1、主端操作脚本

SQL> shutdown immediate

SQL> startup mount

SQL> alter database set standby database to maximize availability;

SQL> select name,open_mode,database_role,protection_mode,switchover_status from v$database;

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_实战_14

2.2、主端数据库open后查看备端的保护模式已经切换到最大可用

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_oracle_15

3、最大可用模式下failover切换

3.1、查看保护模式

select name,dbid,open_mode,protection_mode,database_role,switchover_status from v$database;

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_oracle_16

3.2、查询v$managed_standby状态

SQL> select  PROCESS, STATUS , PID,CLIENT_DBID from v$managed_standby;

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG fail over_17

3.3、强制结束备端日志应用

SQL> alter database recover managed standby database finish force;

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG fail over_18

3.4、查询备库是否可以切换到主库

SQL> select name,dbid,open_mode,protection_mode,switchover_status,database_role from v$database;

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG模式切换_19

3.5、将备库强制切换成主库运行,打破DG模式,如果想重新恢复DG模式需要重新搭建

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

select name,dbid,open_mode,protection_mode,switchover_status,database_role from v$database;

alter database open;

Oracle Data Guard系列:DG保护模式切换及Failover切换实操_DG_20



举报

相关推荐

0 条评论