物理备数据库的切换与故障转移


  一、物理备数据库的切换

  切换必须在当前主数据库上发起,并且在目标备数据库上完成。下面的步骤描述如何执行切换。

  第 1 步检验是否可能执行切换。

  在当前主数据库上,在主数据库上查询 V$DATABASE 固定视图的SWITCHOVER_STATUS 列,以检验是否可能执行切换。例如:

  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

  SWITCHOVER_STATUS

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

  TO STANDBY

  1 row selected

  在 SWITCHOVER_STATUS 列中的TO STANDBY 值指出可能切换主数据库到备角色。如果TO STANDBY 值没有显示,则检查Data Guard 配置是否正确起作用(例如,检查所有的LOG_ARCHIVE_DEST_n 参数值被正确指定)。如果在 SWITCHOVER_STATUS 列中的值是SESSIONS ACTIVE,你需要终止可能阻碍切换处理的活动用户或SQL会话。如果,在执行这些步骤之后,SWITCHOVER_STATUS 列还是显示SESSION ACTIVE,你能通过添加WITH SESSION SHUTDOWN 子句到步骤2 中描述的ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY 语句来成功执行切换。

  第 2 步在主数据库上发起切换。

  要更改当前主数据库到物理备数据库角色,在主数据库上使用下面 SQL 语句:

  SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

  在这个语句完成后,主数据库转换到备数据库。当前控制文件在切换前备份到当前SQL会话跟踪文件。这使得有可能重构当前控制文件,如果必要的话。

  第 3 步关闭并重启前主实例。

  关闭前主实例,并重启和安装数据库:

  SQL> SHUTDOWN IMMEDIATE;

  SQL> STARTUP MOUNT;

  注意:在切换过程的这个点,两个数据库都配置为备数据库。

  第 4 步检验 V$DATABASE 视图中的切换状态。

  在你更改主数据库到物理备角色,以及配置中的备数据库接收到切换通知之后,你应该检验目标备数据库是否处理切换通知,通过查询目标备数据库上的V$DATABASE 固定视

  图的SWITCHOVER_STATUS 列。

  例如:

  SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

  SWITCHOVER_STATUS

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

  TO_PRIMARY

  1 row selected

  如果 SWITCHOVER_STATUS 列中的值是SESSION ACTIVE,你需要确定并终止可能阻碍切换处理的活动用户或SQL 会话。

  如果,在执行这些步骤之后,SWITCHOVER_STATUS 列还是显示SESSION ACTIVE,你能处理到步骤5,并过添加WITH SESSION SHUTDOWN 子句到切换语句。

  第 5 步切换目标物理备数据库角色到主角色。

  当备数据库实例安装在重做应用模式或对只读访问打开时,你能将物理备数据库从备角色切换到主角色。必须是这些模式之一,主数据库的切换请求才能被调度。在备数据库处于适当的模式,在你希望更改主角色的物理备数据库上,执行下面的SQL 语句:

  SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

  第 6 步完成备数据库到主角色的转换。

  你执行的任务依赖于物理备数据库是否曾经以只读模式打开过:

  l 如果物理备数据库自从上次启动过后没有以只读模式打开过,执行SQL ALTER DATABASE OPEN 语句来打开新的主数据库:

  SQL> ALTER DATABASE OPEN;

  l 如果物理备数据库自从上次启动过后曾经以只读模式打开,你必须关


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3