执行 Oracle Data Guard 切换
切换是主数据库和备用数据库之间的角色反转。在切换期间,原始主数据库转换为备用角色,而原始备用数据库转换为主角色。
在 Oracle Data Guard 环境中,主数据库支持一个或多个备用数据库。您可以执行从主数据库到备用数据库的基于切换的托管式角色转换。切换是主数据库和备用数据库之间的角色反转。在切换期间,原始主数据库转换为备用角色,而原始备用数据库转换为主角色。
Oracle Data Guard 切换概述
Amazon RDS 支持 Oracle Database 副本的完全托管式、基于切换的角色转换。您只能启动到已挂载或以只读方式打开的备用数据库的切换。
副本可以位于单独的 Amazon Web Services 区域中,也可以位于单个区域的不同可用区(AZ)中。支持所有 Amazon Web Services 区域。
切换与只读副本提升不同。在切换过程中,源和副本数据库实例会更改角色。在提升过程中,只读副本会成为源数据库实例,但源数据库实例不会成为副本。有关更多信息,请参阅 将只读副本提升为独立的数据库实例。
Oracle Data Guard 切换的优势
就像 RDS for Oracle 只读副本一样,托管式切换依赖于 Oracle Data Guard。该操作旨在实现零数据丢失。Amazon RDS 可自动执行切换的以下各个方面:
-
反转主数据库和指定备用数据库的角色,将新的备用数据库置于与原始备用数据库相同的状态(已挂载或只读)
-
确保数据一致性
-
在转换后维护您的复制配置
-
支持重复性反转,允许您的新备用数据库恢复其原来的主角色
支持的 Oracle 数据库版本
Oracle Database 19c 及更高版本支持 Oracle Data Guard 切换。
Oracle Data Guard 切换的成本
Oracle Data Guard 切换功能不会产生额外费用。Oracle Database 企业版支持挂载模式下的备用数据库。要以只读模式打开备用数据库,您需要 Oracle Active Data Guard 选项。
Oracle Data Guard 切换的工作原理
Oracle Data Guard 切换是一项完全托管式操作。您可以通过发出 CLI 命令 switchover-read-replica
启动备用数据库的切换。然后,Amazon RDS 修改您的复制配置中的主角色和备用角色。
原始备用角色和原始主角色是切换前存在的角色。新备用角色和新主角色是切换后存在的角色。旁观者副本是一个副本数据库,它在 Oracle Data Guard 环境中用作备用数据库,但不切换角色。
Oracle Data Guard 切换的各个阶段
要执行切换,Amazon RDS 必须执行以下步骤:
-
阻止原始主数据库上的新事务。在切换期间,Amazon RDS 会中断您的 Oracle Data Guard 配置中所有数据库的复制。在切换期间,原始主数据库无法处理写入请求。
-
将未应用的事务发送到原始备用数据库,并应用它们。
-
以只读或挂载模式重新启动新的备用数据库。该模式取决于切换前原始备用数据库的打开状态。
-
以读/写模式打开新的主数据库。
Oracle Data Guard 切换之后
Amazon RDS 切换主数据库和备用数据库的角色。您负责重新连接应用程序并执行任何其他所需的配置。
成功标准
当原始备用数据库执行以下操作时,Oracle Data Guard 切换获得成功:
-
转换到其作为新的主数据库的角色
-
完成其重新配置
为了限制停机时间,新的主数据库会尽快变为活动状态。由于 Amazon RDS 异步配置旁观者副本,因此这些副本可能会在原始主数据库之后变为活动状态。
与新的主数据库的连接
切换后,Amazon RDS 不会将您当前的数据库连接传播到新的主数据库。在 Oracle Data Guard 切换完成后,将您的应用程序重新连接到新的主数据库。
新的主数据库的配置
为了切换到新的主数据库,Amazon RDS 将原始备用数据库的模式更改为打开。角色的更改是对数据库的唯一更改。Amazon RDS 未设置多可用区复制等功能。
如果您使用不同的选项切换到跨区域副本,则新的主数据库会保留自己的选项。Amazon RDS 不会迁移原始主数据库上的选项。如果原始主数据库具有 SSL、NNE、OEM 和 OEM_AGENT 等选项,则 Amazon RDS 不会将它们传播到新的主数据库。