欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2024-01-14 11:14:28
...

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 一、物理备数据库的切换 切换必须在当前主数据库上发起,并且在目标备数据库上完成。下面的步骤描述如何执行切换。 第 1 步检验是否可能执行切换。 在当前主数据库上,在主数据库上查询 V$DATABASE

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  一、物理备数据库的切换

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

  第 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 如果物理备数据库自从上次启动过后曾经以只读模式打开,你必须关闭目标备数据库并重启:

  SQL> SHUTDOWN IMMEDIATE;

  SQL> STARTUP;

  注:

  不需要关闭并重启在切换的时候联机的其它备数据库(不包括在切换中的)。这些备数据库在切换完成后将继续正常起作用。

  第 7 步如果必要,在备数据库上重启日志应用服务。

  对于新的物理备数据库和 Data Guard 配置中的每个其它物理或逻辑备数据库,如果日

  志应用服务没有预先配置在切换过程中持续打开,使用合适的命令来重启日志应用服务。

  第 8 步开始发送重做数据到备数据库。

  在新的主数据库上执行下面语句:

  SQL> ALTER SYSTEM SWITCH LOGFILE;

  二、物理备数据库的故障转移

  本小节描述如何执行包含物理备数据库的故障转移。

  在包含物理备数据库的故障转移过程中:

  l 在所有情况中,在故障转移后,原主数据库不能再参与在 Data Guard 配置中。

  l 在大多数情况中,其它逻辑或物理备数据库不直接参与配置中剩余的故障转移,并不必须关闭或重启。

  l 在一些情况中,可能有必要在配置新的主数据库之后重建所有备数据库。

  这些情况在下面的故障转移步骤中的适当位置描述。

  注:

  Oracle 推荐你只使用在下面小节中描述的故障转移步骤和命令来执行故障转移。不要使用ALTER DATABASE ACTIVATE STANDBY DATABASE 来执行故障转移,因为这条语句可能导致数据丢失。

[1] [2]

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