热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

物理备数据库的切换与故障转移-mysql教程

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

欢迎进入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]


推荐阅读
  • 面对众多的数据分析工具,如何选择最适合自己的那一个?对于初学者而言,了解并掌握几种核心工具是快速入门的关键。本文将从数据处理的不同阶段出发,推荐三种广泛使用的数据分析工具。 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 本文介绍了一种在 Android 开发中动态修改 strings.xml 文件中字符串值的有效方法。通过使用占位符,开发者可以在运行时根据需要填充具体的值,从而提高应用的灵活性和可维护性。 ... [详细]
  • 本文探讨了如何通过JavaScript检测鼠标是否离开了浏览器窗口,包括使用原生方法和第三方库的不同解决方案。 ... [详细]
  • ACM经典书籍推荐
    本文介绍了几本在算法和计算机科学领域具有重要影响力的书籍,包括由Donald E. Knuth编著的《计算机程序设计艺术》第一卷,以及潘氏兄弟的数论经典教材等。这些书籍不仅是学习相关领域的宝贵资源,也是专业人士不可或缺的参考书。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 本文探讨了在AspNetForums平台中实施基于角色的权限控制系统的方法,旨在为不同级别的用户提供合适的访问权限,确保系统的安全性和可用性。 ... [详细]
  • 本文总结了 #define 在 C/C++ 编程中的多种用途和技巧,包括定义常量、函数、宏以及条件编译等,并提供了详细的示例和注意事项。 ... [详细]
  • Excel技巧:单元格中显示公式而非结果的解决方法
    本文探讨了在Excel中如何通过简单的方法解决单元格显示公式而非计算结果的问题,包括使用快捷键和调整单元格格式两种方法。 ... [详细]
  • 本文详细介绍了如何通过JDBC连接Hive进行数据操作,包括Hive服务的启动、相关依赖的配置以及具体代码示例,适合对Hive和JDBC有一定了解的开发者阅读。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 本文介绍如何使用R语言中的相关包来解析和转换搜狗细胞词库(.scel格式),并将其导出为CSV文件,以便于后续的数据分析和文本挖掘任务。 ... [详细]
  • 本文介绍了Tomcat的基本操作,包括启动、关闭及首次访问的方法,并详细讲解了如何在IDEA中创建Web项目,配置Servlet及其映射,以及如何将项目部署到Tomcat。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
author-avatar
小思绪
创造人生的可能
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有