站点切换

Oracle Maximum Availability Architecture (Oracle MAA) 优秀实践是每半年执行一次全栈站点切换,颠倒主站点和辅助站点的角色,测试切换过程,捕获并更正可能发生的任何非托管更改或其他问题。 您还可以切换到辅助站点,以便在主站点正在进行主要维护时继续提供服务。

在 OCI 中执行站点切换

执行从站点 1(最初为主站点)到站点 2(最初为辅助站点)的完整堆栈 PeopleSoft 切换。

您可以使用 Oracle Cloud Infrastructure (OCI) 手动执行站点切换,或将这些步骤编写为单个流。在任一情况下,您都将对数据库层使用 REST API 组合,对应用层和 Web 层使用脚本组合。

本节介绍手动步骤。此示例假设已从 Data Guard 中介配置中删除了内部部署数据库。

在此示例中,站点 1 最初是主站点,站点 2 最初是辅助站点。他们在此练习中切换角色。下面是在 OCI 中执行切换的高级任务:

站点 1:

  1. 在计划切换事件之前,在 PeopleSoft Process Scheduler 中排空或暂挂批处理作业。
  2. 关闭所有 PeopleSoft 应用服务器、进程调度器和所有 PeopleSoft Internet 体系结构 (Internet Architecture,PIA) Web 服务器。
  3. 验证 PeopleSoft 数据库是否已准备好进行切换。
  4. 执行 Oracle Data Guard 切换。
  5. 执行 OCI 文件存储角色撤销。

站点 2:

  1. 验证基于角色的数据库服务是否已启动。
  2. 启动 PeopleSoft 应用服务器、进程调度程序和所有 PIA Web 服务器。
  3. 验证后端服务器在新的主区域负载平衡(绿色确定)上的状态。
  4. 验证您可以登录到 PeopleSoft PIA。

以下示例提供了执行全栈 PeopleSoft 切换的详细步骤。这些示例使用我们的测试环境中的名称来表示阿什本的主数据库 (CDBHCM_iad1dx) 和凤凰城的备用数据库 (CDBHCM_phx5s)。

  1. 在站点 1 上为每个计算实例关闭进程调度程序。
    • 地点:地点 1
    • 节点:每个进程调度程序服务器计算实例
    • 用户:psadm2

    在准备站点切换时,可能需要在计划切换前的某个时间点关闭进程调度器。这将使任何循环作业和新作业处于“排队”状态。

    在调度的切换时间之前关闭进程调度程序时,请使用位于 GitHub 中 Basic Tasks directory 中的单个脚本 stopPS.sh。此时不要使用包装程序脚本。下面的步骤 4 在实际切换过程中运行包装程序脚本。

    $ stopPS.sh
  2. 验证备用数据库是否已准备好切换。
    • 地点:地点 1
    • 节点:一个 Oracle Exadata Database Service on Dedicated Infrastructure domU
    • 用户:oracle
    1. 登录托管 PeopleSoft Oracle RAC 实例的主 Oracle Exadata Database Service on Dedicated Infrastructure domUs 之一,并成为 oracle 用户。
    2. 源环境。
      $ . ./CDBHCM.env
    3. 启动 Oracle Data Guard 命令行界面。
      $ dgmgrl sys/sys password
      DGMGRL> show configuration lag
      Configuration - fsc
        Protection Mode: MaxPerformance
        Members:
        CDBHCM_iad1dx - Primary database
          CDBHCM_phx5s  - Physical standby database 
                          Transport Lag:      0 seconds (computed 1 second ago)
                          Apply Lag:          0 seconds (computed 1 second ago)
      
      Fast-Start Failover:  Disabled
      Configuration Status:
      SUCCESS   (status updated 35 seconds ago)
    4. 验证备用数据库。
      DGMGRL> validate database 'CDBHCM_phx5s'
      
        Database Role:     Physical standby database
        Primary Database:  CDBHCM_iad1dx
      
        Ready for Switchover:  Yes
        Ready for Failover:    Yes (Primary Running)
      
        Managed by Clusterware:
          CDBHCM_iad1dx:  YES            
          CDBHCM_phx5s :  YES   

      备用数据库可以进行切换。

  3. 关闭 PIA Web 服务器。
    • 地点:地点 1
    • 节点: PIA Web 服务器计算实例
    • 用户:psadm2
    1. 登录到 PIA 中间层服务器并成为 psadm2
    2. 使用包装程序脚本关闭 PIA Web 服务器和 Coherence*Web 高速缓存服务器。
      包装程序脚本位于 GitHub 中的 Wrapper directory 中。
      $ stopPSFTWEB.sh
  4. 关闭应用程序服务器和进程调度程序。
    • 地点:地点 1
    • 节点:应用程序/进程调度程序服务器计算实例
    • 用户:psadm2
    1. 登录托管 PeopleSoft 应用服务器和进程调度程序的计算实例,成为 psadm2
    2. stopPSFTAPP.sh 运行包装程序脚本。
      $ stopPSFTAPP.sh

      注意:

      运行 stopPSFTAPP.sh 脚本的第一个实例将在应用服务器和进程调度器域的其余部分关闭后执行文件系统的一个最终 rsync,然后将禁用 rsync
    3. 使用 PeopleSoft 应用程序和进程调度器域中的 SQL 脚本监视数据库会话。
    4. 完成所有 stopPS 脚本后,检查 rsync 日志以验证是否执行了最终的 rsync
      转到 GitHub 中的 Replication directory 以获取 rsync_psft.sh 脚本。
  5. 使用 Data Guard 中介命令行界面执行切换。
    • 地点:地点 1
    • 节点:一个 Oracle Exadata Database Service on Dedicated Infrastructure domU
    • 用户:oracle
    $ dgmgrl sys/sys password
    DGMGRL> switchover to CDBHCM_phx5s;
    Performing switchover NOW, please wait...
    New primary database " CDBHCM_phx5s" is opening...
    Oracle Clusterware is restarting database "CDBHCM_iad1dx" ...
    Connected to " CDBHCM_iad1dx"
    Connected to " CDBHCM_iad1dx"
    Switchover succeeded, new primary is " CDBHCM_phx5s"
  6. 使用 Data Guard 中介命令行界面监视并验证切换是否成功。
    • 地点:地点 1
    • 节点:一个 Oracle Exadata Database Service on Dedicated Infrastructure domU
    • 用户:oracle
    $ dgmgrl sys/sys password
    DGMGRL> show configuration lag
    Configuration - fsc
      Protection Mode: MaxPerformance
      Members:
      CDBHCM_phx5s  - Primary database
        CDBHCM_iad1dx - Physical standby database 
                        Transport Lag:      0 seconds (computed 2 seconds ago)
                        Apply Lag:          0 seconds (computed 2 seconds ago)
    
    Fast-Start Failover:  Disabled
    Configuration Status:
    SUCCESS   (status updated 22 seconds ago)
  7. 如果配置了活动数据卫士支持,请确保在新的备用数据库切换后启动了 PeopleSoft (PSQUERY) 的活动数据卫士服务。
    • 地点:地点 1
    • 节点:一个 Oracle Exadata Database Service on Dedicated Infrastructure domU
    • 用户:oracle
    $ srvctl status service -db CDBHCM_iad1dx -s PSQUERY
    Service PSQUERY is running on instance(s) CDBHCM1,CDBHCM2
    此服务应在所有 Oracle RAC 实例上运行。

    注意:

    必须在启动进程调度程序之前启动此服务。否则,进程调度器将在启动时失败。
  8. 验证基于角色的数据库服务是否在新主数据库上正常运行。
    • 站点:站点 2
    • 节点:所有 Oracle Exadata Database Service on Dedicated Infrastructure domUs
    • 用户:oracle
    例如,对托管 PeopleSoft Oracle RAC 数据库实例的每个 domU 发出以下命令:
    $ srvctl status service -db CDBHCM_phx5s -s HR92U033_BATCH
    Service HR92U033_BATCH is running on instance(s) CDBHCM1,CDBHCM2
    $ srvctl status service -db CDBHCM_phx5s -s HR92U033_ONLINE
    Service HR92U033_ONLINE is running on instance(s) CDBHCM1,CDBHCM2
    此服务应在所有 Oracle RAC 实例上运行。
  9. 启动应用服务器和进程调度器域。
    • 站点:站点 2
    • 节点:应用程序和进程调度程序服务器计算实例
    • 用户:psadm2
    1. 登录托管 PeopleSoft 应用服务器和进程调度程序的计算实例,成为 psadm2
      使用位于 GitHub 中的 Wrapper directory 中的 startPSFTAPP.sh 脚本:
      $ startPSFTAPP.sh
    2. 监视启动。
      可以使用来自 PeopleSoft 应用程序和进程调度器域的查询。
      col service_name format a20
      select a.inst_id,a.instance_name,b.service_name, count(*)
      from gv$instance a, gv$session b
      where a.inst_id = b.inst_id
      and service_name not like 'SYS%'
      group by a.inst_id,a.instance_name,b.service_name
      order by 1
      
      SQL> /
      
         INST_ID INSTANCE_NAME    SERVICE_NAME          COUNT(*)
      ---------- ---------------- ------------------- ----------
               1 CDBHCM1          CDBHCM_phx5s                 2
      SQL> /
      
         INST_ID INSTANCE_NAME    SERVICE_NAME          COUNT(*)
      ---------- ---------------- ------------------- ----------
               1 CDBHCM1          CDBHCM_phx5s                 2
               1 CDBHCM1          HR92U033_BATCH               8
               1 CDBHCM1          HR92U033_ONLINE             52
               2 CDBHCM2          HR92U033_BATCH               7
               2 CDBHCM2          HR92U033_ONLINE             50
  10. 启动 Web 服务。
    • 站点:站点 2
    • 节点:所有 PIA Web 服务器计算实例
    • 用户:psadm2
    如果配置了 Coherence*Web,则首先在托管 PIA Web 服务器的所有计算实例上启动高速缓存集群,然后启动 PIA Web 服务器。在此示例中,使用一个脚本以正确的顺序启动这两个脚本。
    1. 登录到 PIA Web 服务器并成为 psadm2
    2. 使用 startPSFTAPP.sh 中的脚本,启动 Web 服务器。
      $ startPSFTWEB.sh
  11. 检查负载平衡器。
    • 地点:地点 2 区域
    • 节点: OCI 控制台
    • 用户:租户管理员
    1. 登录到 OCI 控制台,将区域更改为新的主区域(在我们的示例中为凤凰城)。
    2. 从主菜单中选择网络,然后选择负载平衡器
    3. 选择适当的区间。
    4. 单击后端集,然后单击后端
      每个后端都应显示 OK 。每个 PIA Web 服务器启动后可能需要几分钟时间。
  12. 尝试从 Web 浏览器登录到 PIA Web 服务器。
    • 用户:PeopleSoft PIA Web 用户
    对于此示例,URL 为:
    https://psfthcm.appprivad1.maacloud2vcn.oraclevcn.com/psp/ps/EMPLOYEE/HRMS/?cmd=login

当上述步骤成功完成时,生产将在站点 2 运行。