生命周期任务

要使辅助站点与主站点保持同步,需要定期进行生命周期维护。在整个生命周期中,您将希望能够执行计划切换,以切换主要站点和辅助站点的角色并响应意外或计划外操作。

关于配置复制

在 DR 设置期间,对驻留在文件系统中的内容执行了初始复制。您必须定期重复文件系统复制,以使辅助站点与主站点保持最新。

您可以使用在 DR 设置期间创建的相同脚本,将文件系统对象复制到 OCI ,并针对每个对象安排文件系统副本及以下注意事项:

  • 在生命周期内复制 Oracle 主目录

    这是静态对象。它不会频繁更改,因此无需定期复制它。只有在 Oracle 主目录中执行修改(例如打补丁活动)时,才需要复制它。

  • 在生命周期内复制 WebLogic 域共享配置

    这是动态构件。此外,它还包含 ASERVER_HOME(它是 WebLogic Server 域配置的真相源)和 APPLICATION_HOME(每次部署、取消部署、更新应用程序时都会更新)。

    此 WebLogic 域共享配置应该经常更改。调度此对象的常规副本,该副本应是或多或少,具体取决于系统中配置的更改频率。另一种受控方法是在每次对主数据库执行配置更改时执行副本。

  • 在生命周期内复制 WebLogic 域专用配置

    这也是一个动态对象,其中包含 MSERVER_HOMENM_HOME。初始设置后,预计不会频繁更新 nodemanager 主目录。MSERVER_HOME 的内容将像 ASERVER_HOME 一样频繁更改,因为它包含受管服务器使用的域文件夹。但是,当托管服务器启动以及使用 WebLogic 脚本工具 (WLST) 或 Oracle WebLogic Server 管理控制台应用配置更改时,其大部分内容 (ASERVER_HOME/config) 会刷新并下载自 AdminServer。复制此对象不像共享配置那样重要。只有在对 MSERVER_HOME 中的其他文件夹(例如 MSERVER_HOME/bin 文件夹中的修改)执行修改时,才必须复制此项。

  • 复制共享运行时文件夹

    如果在此文件夹中存储任何运行时对象,请根据您的业务需求将副本调度为待机。

    您可以使用 Oracle Database File System (DBFS) 挂载共享运行时内容,而不是使用 Oracle Cloud Infrastructure File Storage 文件系统并使用 rsync 进行复制。这样,内容将驻留在数据库中,并自动复制到底层 Oracle Data Guard 副本的辅助对象。有关使用 DBFS 的详细信息,请参见“了解更多”中的关于 Oracle Database 文件系统

下表汇总了生命周期内文件系统对象复制的建议。

Artifact 包含 建议
Oracle 主目录 FMW home,JDK,inventory,FMW 主目录,库存 仅按需复制(例如,修补后)
WebLogic 域共享配置 ASERVER_HOME,applications,应用程序,deployment plan,部署计划,keystores,密钥库 调度复制,可能需要高频率。频率取决于对 WebLogic Server 系统执行配置更改的频率。
WebLogic 域专用配置 MSERVER_HOMESnodemanager config 调度复制。通常不需要高频率。
共享运行时 特定于客户的运行时对象(不是 JMS,不是 TLOGS) 由您的要求决定。如果这是 DBFS 挂载,则 Oracle Data Guard 会自动复制内容。

执行切换

切换是计划操作,管理员在其中恢复两个站点的角色。切换后,主系统变为辅助系统,辅助系统变为主要系统。执行切换将导致主站点停机。
WebLogic Server 混合 DR 配置中执行切换之前,传播所有暂挂的配置更改。确保对辅助站点没有任何待处理的复制更改。
  1. 在执行切换时禁用任何调度的复制,因为它可能会失败并干扰切换操作本身。
  2. 停止主站点中的 Oracle HTTP Server 系统。
  3. 停止主站点中的服务器。
    使用 WebLogic 管理服务器控制台或脚本停止主站点中的 WebLogic 服务器。

    注意:

    主站点中的管理服务器可以在切换期间保持运行状态。但是,建议在站点处于备用角色时停止该站点,因为在生命周期中主配置将覆盖备用站点中的域配置。如果管理服务器在发生这种情况时已启动,它将使用过时的配置运行。
  4. 切换前端 DNS 名称。

    在托管系统使用的名称的 DNS 服务器中执行所需的 DNS 推送,或者更改客户端中的文件主机解析,以将系统的前端虚拟名称指向辅助站点中的负载平衡器使用的公共 IP。

    对于将 DNS 用于外部前端解析(例如 OCI DNS 或商业 DNS)的情况,您可以使用 API 来推动更改。要查看在 OCI DNS 中推送此更改的示例,请转至 GitHub (例如脚本)。

    请注意,DNS 条目的 TTL 值将影响切换的 RTO:如果 TTL 高(例如 20 分钟),则 DNS 更改将需要该时间才能在客户机中生效。使用较低的 TTL 值会使其更快;但是,这可能会导致开销,因为客户机将更频繁地命中 DNS 而不是使用缓存的名称。好的方法是在 DNS 更改之前将 TTL 暂时设置为低值(例如,1 分钟)。然后,执行更改,完成切换过程后,再次将 TTL 恢复为其原始值。

  5. oracle 用户身份在主数据库主机中使用 Oracle Data Guard 中介来执行数据库切换。
    您需要系统口令和主数据库的唯一名称。
    [oracle@dbhost1~]$ dgmgrl sys/your_sys_password@primary_db_unqname
    DGMGRL> switchover to secondary_db_unqname
  6. 如果尚未启动,请在辅助站点(新的主站点)中启动 Oracle HTTP Server 系统。
  7. 在辅助站点(新的主站点)中启动管理服务器,或者重新启动服务器(如果已启动)。
    通过启动管理服务器,可以在备用数据库生效时复制的配置更改。
  8. 在辅助站点(新的主站点)中启动辅助托管服务器。
    使用 WebLogic 控制台或脚本启动辅助托管服务器。

执行故障转移

故障转移操作通常是在主站点不可用时执行的计划外操作。当原始主数据库失败并且不可能及时恢复时,您可以将备用数据库角色转换为主数据库角色。可能会丢失数据,具体取决于主数据库和目标备用数据库在主数据库发生故障时是否一致。
  1. 如果可能,传播任何暂挂配置更改。
    要将更改复制到辅助站点,请参阅将文件系统对象复制到 OCI
  2. 在执行切换时禁用任何调度的复制,因为它可能会失败并干扰切换操作本身。
  3. 停止主站点中的 Oracle HTTP Server 系统。
  4. 如果可能,停止主站点中的托管服务器。

    使用 WebLogic 管理服务器控制台或脚本停止主服务器中的托管服务器。

  5. 切换前端 DNS 名称。

    在托管系统使用的名称的 DNS 服务器中执行所需的 DNS 推送,或者更改客户端中的文件主机解析,以将系统的前端虚拟名称指向辅助站点中的负载平衡器使用的公共 IP。

    对于将 DNS 用于外部前端解析(OCI DNS、商业 DNS 等)的情况,请使用适当的 API 来推动更改。要查看在 OCI DNS 中推动此更改的示例,请访问此处

    注意:

    DNS 条目的 TTL 值将影响切换的 RTO。如果 TTL 高(例如 20 分钟),则 DNS 更改将需要该时间才能在客户机中生效。使用较低的 TTL 值会加快此速度;但是,这可能会导致开销,因为客户机将更频繁地命中 DNS 而不是使用缓存的名称。好的方法是在 DNS 更改之前将 TTL 暂时设置为低值(例如,1 分钟)。然后,执行更改,完成切换过程后,将 TTL 恢复为其原始值。
  6. oracle 用户身份,在辅助数据库主机中使用 Oracle Data Guard 代理来执行故障转移。
    您需要系统口令和主数据库的唯一名称。
    [oracle@hydrdb1 ~]$ dgmgrl sys/your_sys_password@secondary_db_unqname
    DGMGRL> failover to secondary_db_unqname
  7. 如果尚未启动,请在辅助站点(新的主站点)中启动 Oracle HTTP Server 系统。
  8. 在辅助站点(新的主站点)中启动管理服务器,或者重新启动服务器(如果已启动)。
    通过启动管理服务器,可以在备用数据库生效时复制的配置更改。
  9. 在辅助站点(新的主站点)中启动辅助托管服务器。
    使用 WebLogic 控制台或脚本启动辅助托管服务器。

打开辅助验证

您可以通过将备用数据库转换为快照备用数据库来验证备用站点而不执行完全切换。这允许在备用站点中启动辅助 WebLogic Server 服务器并验证辅助系统。在备用站点数据库中处于快照备用模式时执行的任何更改将在再次转换为物理备用数据库后被放弃。主要数据不受辅助站点验证影响。

注意:

此操作必须谨慎:如果数据库在转换为快照时存在暂挂的 JMS 消息,则备用站点的服务器将在启动时处理这些消息。检查在转换为快照备用数据库时主数据库中是否没有暂挂操作。
  1. oracle 用户身份,在主数据库主机中使用 Oracle Data Guard 代理,并将辅助数据库转换为快照备用数据库。
    [oracle@dbhost1~]$ dgmgrl sys/your_sys_password@primary_db_unqname
    DGMGRL> convert database secondary_db_unqname to snapshot standby
    
    使用命令 show configuration 验证是否已正确执行转换。
  2. 如果尚未启动,请在辅助站点中启动 Oracle HTTP Server 系统。
  3. 在辅助站点中启动管理服务器。
  4. 启动辅助站点中的辅助托管服务器。
    使用 WebLogic 控制台或脚本启动辅助托管服务器。
  5. 验证辅助站点。

    由于这不是切换操作,并且主站点仍处于活动状态,因此虚拟前端名称将解析为主站点的负载平衡器 IP 地址,因此默认情况下,任何浏览器访问都将被重定向到活动主站点。

    要直接访问辅助站点的 WebLogic 服务器应用程序,必须在受控客户机(例如手提电脑)中更新 /etc/hosts 文件,设置虚拟前端名称以解析为辅助站点的前端负载平衡器 IP 地址,并从此客户机运行任何验证。

    注意:

    验证用于验证的客户机是否不会通过 HTTP 代理访问系统,因为 HTTP 代理可能会继续使用主站点的负载平衡器 IP 地址解析虚拟前端名称,而不管哪个名称位于客户端的 /etc/hosts 中。

    在浏览器使用定制的主机文件条目解析 IP 地址之前,非 Linux 客户机可能需要重置其本地 DNS 高速缓存。

    验证辅助站点后,转到下一步以将其恢复为备用角色。

    注意:

    验证辅助站点可能需要一些时间。
  6. 停止辅助站点中的托管服务器和管理服务器。
    使用辅助 WebLogic 控制台关闭辅助站点中的托管服务器和管理服务器。
  7. oracle 用户身份,在 primary 数据库主机中使用 Oracle Data Guard 代理,然后再次将辅助数据库转换为物理备用数据库。
    您需要系统口令和主数据库的唯一名称。
    [oracle@dbhost1 ~]$ dgmgrl sys/your_sys_password@primary_db_unqname
        DGMGRL> convert database secondary_db_unqname to physical standby
    使用 show configuration 验证转换。
  8. 还原所有更新的 /etc/hosts 文件。
    如果将客户机中的任何 /etc/hosts 文件更新为指向辅助站点进行验证,则恢复,以便虚拟前端名称再次指向主前端 IP 地址。

OCI 上管理服务器的本地故障转移

当管理服务器最初运行的主机出现故障时,可以在同一站点中的其他节点上启动管理服务器。系统不需要完全切换到其他站点。

注意:

仅当 WebLogic 管理服务器将 VIP 用于本地高可用性用途并且管理服务器配置文件夹 (ASERVER_HOME) 位于共享位置时,此生命周期任务才适用。

Verifying Manual Failover of the Administration Server 中介绍了执行此操作的过程。这为管理服务器提供了本地故障转移保护。请注意,托管服务器不需要这样做,这些服务器具有基于自动服务迁移功能的本地高可用性保护。

如果在 OCI 站点中运行主服务器时需要将管理服务器故障转移到其他主机,则可以按照该过程执行操作。但是,需要执行与“将 ADMINVHN 虚拟 IP 地址迁移到第二个主机”步骤相关的额外操作。

执行以下步骤可将 VIP 从运行管理服务器的 WebLogic Server 主机分离,并将其连接到要移动管理的 WebLogic Server 主机(将 VIP 从 APPHOST1 分离并将其连接到 OCI 站点上的 APPHOST2):

  1. root 用户身份运行 APPHOST1 中的以下命令,从网络接口中删除管理服务器的 VIP。
    1. 停止管理服务器以防其仍在运行
    2. 确认 VIP 的运行位置。
      ip addr show dev ens3
    3. 从网络接口删除该 IP。
      ip addr del 100.70.8.120/20 dev ens3
  2. APPHOST1 分离管理服务器的 VIP。
    1. 连接到 OCI 控制台并选择适当的区域和区间。
    2. 导航到计算实例。单击 计算实例,然后单击 APPHOST1
    3. 单击附加的 VNIC ,然后选择在其中附加管理服务器 VIP 的 VNIC。
    4. 单击 IPv4 Addresses 并编辑管理服务器使用的 VIP。
    5. 将 VIP 的 IP 地址和 fqdn 名称保存在附注中(例如:100.70.8.120,ydrwls-vip.midtiersubnet.hydrvcn.oraclevcn.com)。
    6. 单击删除专用 IP
  3. 将管理服务器的 VIP 连接到 APPHOST2。
    1. 导航到计算实例。单击 计算实例,然后单击 APPHOST2
    2. 单击附加的 VNIC ,然后选择在其中附加管理服务器 VIP 的 VNIC。
    3. 单击 Assign secondary private IP address
    4. 单击 IPv4 Addresses ,然后单击 Assign secondary private IP address
    5. 输入以前使用的专用 IP 地址和主机名值。例如:100.70.8.120 表示 IP,hydrwls-vip 表示主机名。
  4. 以 root 用户身份登录到 APPHOST2,然后运行以下命令将管理服务器的 VIP 连接到网络接口。
    1. 确认网络接口的运行位置。
      ip addr show dev ens3
    2. 将管理服务器的 VIP 添加到网络接口。
      ip addr add 100.70.8.120/20 dev ens3 label ens3:1
  5. 执行 Verifying Manual Failover of the Administration Server 中所述的其余步骤。