生命周期任务

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

关于配置复制

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

您可以使用在 DR 设置期间创建的相同脚本,Replicate the File System Artifacts to OCI,以及为每个 Artifact 安排文件系统副本,并注意以下事项:

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

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

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

    这是动态构件。此外,它还包含 ASERVER_HOME(它是 SOA 域配置的源)和 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、应用、部署计划、密钥库 调度复制,可能需要高频率。频率取决于对 SOA 系统执行配置更改的频率。
WebLogic 域专用配置 MSERVER_HOMESnodemanager config 调度复制。通常不需要高频率。
共享运行时 特定于客户的运行时对象(不是 JMS,不是 TLOGS) 由您的要求决定。如果这是 DBFS 挂载,则 Oracle Data Guard 会自动复制内容。

执行切换

切换是计划操作,管理员在其中恢复两个站点的角色。切换后,主系统变为辅助系统,辅助系统变为主要系统。执行切换将导致主站点停机。
SOA 混合 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. 如果可能,传播任何待处理的配置更改。
    要向辅助站点复制更改,请参见Replicate the File System Artifacts to 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 控制台或脚本启动辅助托管服务器。

打开辅助进行验证

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

注:

此操作必须谨慎执行:如果数据库在转换为快照时存在暂挂消息或组合,则备用站点的 SOA 服务器将在它们启动时处理它们。在转换为快照备用数据库时,检查主数据库中是否没有暂挂操作。否则,在将运行时 SOA 表转换为快照备用数据库之后以及启动辅助站点的 SOA 服务器之前,从备用数据库中的运行时 SOA 表中删除记录。有关在不执行切换的情况下验证备用站点的步骤,请参阅在不删除表的情况下从运行时表中删除记录
  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. 验证辅助环境中没有待处理的操作。
    如果在将备用数据库转换为快照时主数据库中有暂挂操作(事务处理、消息),则辅助 SOA 服务器在 start.You 可以使用 SOA 截断脚本从辅助数据库中的 SOA 运行时表中删除记录以在启动辅助服务器之前清理运行时数据时,将尝试处理这些操作。使用警告运行此操作;不要截断主数据库中的表。请参阅从运行时表中删除记录而不删除表
  3. 如果尚未启动,请在辅助站点中启动 Oracle HTTP Server 系统。
  4. 在辅助站点中启动管理服务器。
  5. 在辅助站点中启动辅助托管服务器。
    使用 WebLogic 控制台或脚本启动辅助托管服务器。
  6. 验证辅助站点。

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

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

    注:

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

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

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

    注:

    验证辅助站点可能需要一些时间。
  7. 在辅助站点中停止托管服务器和管理服务器。
    使用辅助 WebLogic 控制台关闭辅助站点中的托管服务器和管理服务器。
  8. 作为 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 验证转换。
  9. 恢复所有更新的 /etc/hosts 文件。
    如果将客户机中的任何 /etc/hosts 文件更新为指向辅助站点进行验证,则恢复,以便虚拟前端名称再次指向主前端 IP 地址。

注:

ORA-01403:未找到数据 ORA-06512 错误

按此处所述验证辅助站点时(不执行完全切换,即只需在快照备用模式下打开备用站点)“ORA-01403: no data found ORA-06512”错误可能会显示在备用 SOA 服务器的日志中。这些错误与 SOA 自动清除作业相关。由于数据库中的作业可能具有数据库角色相关性,因此会出现这些错误(它们定义为仅当数据库具有主数据库角色时才启用)。这是一种预期和期望的行为,可防止重复执行作业(一次在主数据库执行,一次在备用数据库执行)。SOA 自动清除作业是使用主角色定义的,因此当数据库处于快照备用模式时,它不会显示在 DBA_SCHEDULER_JOBS 视图中。在 DBA_SCHEDULER_JOB_ROLE 视图中可以看到为每个作业定义的 database_role。总之,只要这些错误显示在备用系统中,就可以将其忽略。当且仅当实例将其角色更改为 PRIMARY 时,才会对数据库执行 SOA 自动清除的调度程序作业。

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

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

注意:

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

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

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

执行以下步骤将 VIP 从运行管理服务器的 SOA 主机分离,并将其附加到要移动管理的 SOA 主机(将 VIP 从 SOAHOST1 分离,并将其附加到 OCI 站点上的 SOAHOST2):

  1. root 用户身份运行 SOAHOST1 中的以下命令,从网络接口中删除管理服务器的 VIP。
    1. 停止管理服务器,以防它仍在运行
    2. 确认 VIP 在何处运行。
      ip addr show dev ens3
    3. 从网络接口删除该 IP。
      ip addr del 100.70.8.120/20 dev ens3
  2. SOAHOST1 分离管理服务器的 VIP。
    1. 连接到 OCI 控制台并选择适当的区域和区间。
    2. 导航到计算实例。单击计算实例,然后单击 SOAHOST1
    3. 单击 Attached VNICs(连接的 VNIC),然后选择连接管理服务器 VIP 的 VNIC。
    4. 单击 IPv4 Addresses 并编辑管理服务器使用的 VIP。
    5. 将 VIP 的 IP 地址和 fqdn 名称保存在附注中(例如:100.70.8.120,ydrsoa-vip.midtiersubnet.hydrvcn.oraclevcn.com)。
    6. 单击 Delete Private IP
  3. 将管理服务器的 VIP 连接到 SOAHOST2。
    1. 导航到计算实例。单击计算实例,然后单击 SOAHOST2
    2. 单击 Attached VNICs(连接的 VNIC),然后选择连接管理服务器 VIP 的 VNIC。
    3. 单击分配辅助专用 IP 地址
    4. 单击 IPv4 Addresses,然后单击 Assign secondary private IP address
    5. 输入以前使用的专用 IP 地址和主机名值。例如:100.70.8.120 表示 IP,hydrsoa-vip 表示主机名。
  4. 以 root 用户身份登录到 SOAHOST2,然后运行以下命令将管理服务器的 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 中所述的其余步骤。