验证配置

DR 设置完成后,通过执行完全切换或打开辅助站点进行验证,立即验证设置是否正确。打开辅助站点进行验证不会影响在主要站点中运行的系统。

打开辅助进行验证

您可以通过将备用数据库转换为快照备用数据库来验证备用站点而不执行完全切换。这允许在备用站点中启动辅助 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 自动清除的调度程序作业。

执行切换

切换是计划操作,管理员在其中恢复两个站点的角色。切换后,主系统变为辅助系统,辅助系统变为主要系统。执行切换将导致主站点停机。
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 控制台或脚本启动辅助托管服务器。