Dataguard Switch Over切换演练步骤

1、  

1.1、 数据库主备角色切换

【注】以下“主库”及“原主库”均指生产库;“备库”及“新主库”均指容灾库。

1.1.1、 确认主库/备库(生产库/容灾库)

SQL> selectname,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

NAME     SWITCHOVER_STATUS   OPEN_MODE  PROTECTION_MODE      DATABASE_ROLE

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

MDSP      SESSIONSACTIVE      READ WRITE MAXIMUMPERFORMANCE  PRIMARY

※主库DATABASE_ROLE角色为“PRIMARY”

 

SQL> selectname,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

NAME      SWITCHOVER_STATUS    OPEN_MODE PROTECTION_MODE      DATABASE_ROLE

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

MDSP      NOTALLOWED         READ ONLY MAXIMUM PERFORMANCE  PHYSICALSTANDBY

备库DATABASE_ROLE角色为“PHYSICAL STANDBY”

1.1.2、 将主库置为备库并关闭原主库

$ ps -ef | grep LOCAL=NO | grep -v grep | awk '{ print $2}' |xargs kill -9

 ※关闭主库已建立的数据库连接

SQL> ALTER DATABASE COMMIT TOSWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

Database altered.

 ※将主库置为备库,并关闭会话。以下该主库变为“原主库”

SQL> shutdown immediate;

ORACLE instance shut down.

 ※关闭主库实例

1.1.3、 将备库置为主库并打开新主库

SQL> selectname,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

NAME     SWITCHOVER_STATUS   OPEN_MODE  PROTECTION_MODE      DATABASE_ROLE

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

MDSP     SWITCHOVERPENDING   READ ONLY  MAXIMUM PERFORMANCE  PHYSICAL STANDBY ※再次检查备库状态,角色仍为“PHYSICAL STANDBY”

SQL> alter database recovermanaged standby database disconnect from session;

Database altered.

 

SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITHSESSION SHUTDOWN;

Database altered.

 ※将角色改为“PRIMARY”

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

SQL> selectname,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

 

NAME     SWITCHOVER_STATUS   OPEN_MODE  PROTECTION_MODE      DATABASE_ROLE

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

MDSP      NOTALLOWED          READ WRITE MAXIMUMPERFORMANCE  PRIMARY

※备库角色变为“PRIMARY”,以下该备库变为“新主库”

1.1.4、 为原主库添加standby日志并开启实时应用归档

# mklv -t raw -ylv_redo11_stdby dbvg 512M

# mklv -t raw -ylv_redo21_stdby dbvg 512M

# mklv -t raw -ylv_redo31_stdby dbvg 512M

# mklv -t raw -ylv_redo41_stdby dbvg 512M

# chown oracle:oinstall/dev/*lv_redo*_stdby

 ※ 以上以root用户执行,添加裸设备lv并修改属主

SQL> startup

SQL> alterdatabase add standby logfile group 4 ('/dev/rlv_redo11_stdby');

SQL> alter database addstandby logfile group 5 ('/dev/rlv_redo21_stdby');

SQL> alter database addstandby logfile group 6 ('/dev/rlv_redo31_stdby');

SQL> alter database addstandby logfile group 7 ('/dev/rlv_redo41_stdby');

 ※为原主库添加4组standby日志,一般要求比REDO LOG多一组。

SQL> ALTER DATABASERECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

Database altered.

 ※开启备库实时应用归档日志

1.1.5、 主库/备库角色切换成功验证

SQL> alter system switch logfile;

SQL> select process,status,thread#,sequence#,client_pidfrom v$managed_standby;

 ※在新主库建立一张测试表(略),并切换日志,检查两节点的同步进程是否在执行。

 

$ ls -ltr /arch/archlog

 ※在新备库上检查最新生成的归档文件,是否与新主库上一致(来自新主库),并检查测试表数据是否同步

 

1.2、 数据库主备角色二次切换(回切演练)

【注】以下“主库”及“原主库”均指容灾库;“备库”及“新主库”均指生产库。

1.2.1、 确认主库/备库(生产库/容灾库)

SQL> selectname,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

 

NAME     SWITCHOVER_STATUS   OPEN_MODE  PROTECTION_MODE      DATABASE_ROLE

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

MDSP      TOSTANDBY           READ WRITE MAXIMUMPERFORMANCE  PRIMARY

※主库DATABASE_ROLE角色为“PRIMARY”,切换状态为“TO STANDBY”

 

NAME     SWITCHOVER_STATUS   OPEN_MODE  PROTECTION_MODE      DATABASE_ROLE

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

MDSP      TOPRIMARY           MOUNTED    MAXIMUM PERFORMANCE  PHYSICAL STANDBY

※备库DATABASE_ROLE角色为“PHYSICAL STANDBY”,切换状态为“TO PRIMARY”

1.2.2、 将主库置为备库并关闭原主库

$ ps -ef | grep LOCAL=NO | grep -v grep | awk '{ print $2}' |xargs kill -9

 ※关闭主库已建立的数据库连接

SQL> ALTER DATABASE COMMIT TOSWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

Database altered.

 ※将主库置为备库,并关闭会话。以下该主库变为“原主库”

SQL> shutdown immediate;

ORACLE instance shut down.

 ※关闭主库实例

1.2.3、 将备库置为主库并开启新主库

SQL> alter database recovermanaged standby database disconnect from session;

Database altered.

SQL> ALTER DATABASE COMMIT TOSWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

Database altered.

 ※将角色改为“PRIMARY”

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

SQL> selectname,SWITCHOVER_STATUS,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

 

NAME     SWITCHOVER_STATUS   OPEN_MODE  PROTECTION_MODE      DATABASE_ROLE

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

MDSP      NOTALLOWED          READ WRITE MAXIMUMPERFORMANCE  PRIMARY

※状态变为PRIMARY

1.2.4、 主库/备库角色切换成功验证

SQL> startup

※在原主库上启动实例,即启动新备库实例

SQL> alter system switch logfile;

SQL> select process,status,thread#,sequence#,client_pidfrom v$managed_standby;

 ※在新主库建立一张测试表(略),并切换日志,检查两节点的同步进程是否在执行。

 

$ ls -ltr /arch/archlog

 ※在新备库上检查最新生成的归档文件,是否与新主库上一致(来自新主库),并检查测试表数据是否同步

 

2、 回退预案

作业过程中 ,如出现异常情况,导致无法在计划时间内完成演练,为确保生产库能够顺利提供业务,只需简单进行如下回退即可:

1、关闭生产库实例

SQL> shutdownimmediate;

2、启动生产库到nomount状态,并修改log_archive_dest_state_2参数值为DISABLE,停止向备库传输日志

SQL> startup nomount;

SQL> alter system setlog_archive_dest_state_2=’Disable’

3、启动数据库

SQL> alter databasemount;

SQL> alter databaseopen;

4、开启应用程序

5、开启NBU备份计划任务

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值