Switchover de Dirección

Una mejor práctica de Oracle Maximum Availability Architecture (Oracle MAA) consiste en realizar un switchover de sitio de pila completa semestralmente, revirtiendo los roles de los sitios principal y secundario, probar procedimientos de switchover y detectar y corregir cualquier cambio no gestionado u otros problemas que se hayan producido. También puede cambiar al sitio secundario para seguir proporcionando servicios mientras el sitio principal se encuentra en mantenimiento principal.

Realización de un switchover de sitio en OCI

Realice un switchover de PeopleSoft de pila completa del sitio 1 (originalmente el principal) al sitio 2 (originalmente el secundario).

Puede utilizar Oracle Cloud Infrastructure (OCI) para realizar el switchover de sitio paso a paso, manualmente o mediante scripts de los pasos en un único flujo. En cualquier caso, utilizará una combinación de API de REST para el nivel de base de datos y scripts para los niveles de aplicación y web.

En esta sección se describen los pasos manuales. En el ejemplo se asume que la base de datos local ya se ha borrado de la configuración de Data Guard Broker.

En este ejemplo, el sitio 1 es originalmente el principal y el sitio 2 es originalmente el secundario. Cambia de roles durante este ejercicio. A continuación se muestran las tareas de alto nivel para realizar un switchover en OCI:

Sitio 1:

  1. Vaciar o retener tareas en batch en PeopleSoft Process Scheduler antes del evento de switchover planificado.
  2. Cierre todos los servidores de aplicaciones PeopleSoft, el programador de procesos y todos los servidores web de arquitectura de Internet (PIA) PeopleSoft.
  3. Valide que la base de datos PeopleSoft está lista para el switchover.
  4. Realice el switchover de Oracle Data Guard.
  5. Realice la reversión del rol de OCI File Storage.

Sitio 2:

  1. Validar que se han iniciado los servicios de base de datos basados en roles.
  2. Inicie los servidores de aplicaciones PeopleSoft, el programador de procesos y todos los servidores web de PIA.
  3. Valide el estado de los servidores backend en el nuevo equilibrio de carga de región principal (Aceptar verde).
  4. Valide que puede conectarse al PIA PeopleSoft.

En el siguiente ejemplo, se proporcionan los pasos detallados para realizar un switchover de PeopleSoft de pila completa. En estos ejemplos se utilizan nombres de nuestro entorno de prueba para la base de datos primaria en Ashburn (CDBHCM_iad1dx) y la base de datos en espera en Phoenix (CDBHCM_phx5s).

  1. Cierre el programador de procesos del sitio 1 para cada instancia informática.
    • Sitio: sitio 1
    • Nodo: cada instancia informática del servidor del programador de procesos
    • Usuario: psadm2

    Como preparación para la operación de switchover del sitio, puede ser necesario cerrar el programador de procesos en algún momento antes de la operación de switchover programada. De esta forma, los trabajos nuevos y recurrentes tendrán el estado "en cola".

    Al cerrar el programador de procesos antes de la hora de switchover programada, utilice la secuencia de comandos individual stopPS.sh ubicada en el directorio de tareas básicas en GitHub. No utilice el script de envoltorio en este momento. El paso 4 siguiente ejecuta el script de envoltorio como parte del proceso de switchover real.

    $ stopPS.sh
  2. Compruebe que la base de datos en espera está lista para el switchover.
    • Sitio: sitio 1
    • Nodo: Oracle Exadata Database Service on Dedicated Infrastructure domU
    • Usuario: oracle
    1. Conéctese a una de las instancias principales de Oracle Exadata Database Service on Dedicated Infrastructure domUs que alojan una instancia de Oracle RAC PeopleSoft y conviértase en el usuario oracle.
    2. Origen del entorno.
      $ . ./CDBHCM.env
    3. Inicie la interfaz de línea de comandos de 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. Valide la base de datos en espera.
      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   

      La base de datos en espera está preparada para el switchover.

  3. Cierre los servidores web de PIA.
    • Sitio: sitio 1
    • Nodo: instancias informáticas del servidor web de PIA
    • Usuario: psadm2
    1. Conéctese a los servidores de capa media de PIA y conviértase en psadm2.
    2. Utilice los scripts de envoltorio para cerrar los servidores web de PIA y los servidores de caché web de Coherence*Web.
      Las secuencias de comandos de envoltorio se encuentran en el directorio de envoltorio en GitHub.
      $ stopPSFTWEB.sh
  4. Cierre el servidor de aplicaciones y el programador de procesos.
    • Sitio: sitio 1
    • Nodo: instancias informáticas del servidor del programador de aplicaciones/procesos
    • Usuario: psadm2
    1. Conéctese a las instancias informáticas que alojan los servidores de aplicaciones y el programador de procesos PeopleSoft y conviértase en psadm2.
    2. Ejecute el script de envoltorio desde stopPSFTAPP.sh.
      $ stopPSFTAPP.sh

      Note:

      La primera instancia que ejecute el script stopPSFTAPP.sh realizará un rsync final de los sistemas de archivos después de que el resto del servidor de aplicaciones y los dominios del programador de procesos estén caídos y, a continuación, desactivará rsync.
    3. Utilice el script SQL en PeopleSoft Application and Process Scheduler Domains para supervisar las sesiones de base de datos.
    4. Una vez que se hayan completado todos los scripts stopPS, compruebe el log rsync para verificar que se ha realizado un rsync final.
      Vaya al directorio de replicación en GitHub para la secuencia de comandos rsync_psft.sh.
  5. Utilice la interfaz de línea de comandos de Data Guard Broker para realizar el switchover.
    • Sitio: sitio 1
    • Nodo: Oracle Exadata Database Service on Dedicated Infrastructure domU
    • Usuario: 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. Utilice la interfaz de línea de comandos de Data Guard Broker para supervisar y verificar que la operación de switchover se ha realizado correctamente.
    • Sitio: sitio 1
    • Nodo: Oracle Exadata Database Service on Dedicated Infrastructure domU
    • Usuario: 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. Si se configura el soporte de Active Data Guard, asegúrese de que el servicio de Active Data Guard para PeopleSoft (PSQUERY) se haya iniciado en la nueva base de datos en espera después del switchover.
    • Sitio: sitio 1
    • Nodo: Oracle Exadata Database Service on Dedicated Infrastructure domU
    • Usuario: oracle
    $ srvctl status service -db CDBHCM_iad1dx -s PSQUERY
    Service PSQUERY is running on instance(s) CDBHCM1,CDBHCM2
    Este servicio debe ejecutarse en todas las instancias de Oracle RAC.

    Note:

    Este servicio se debe iniciar antes de iniciar el gestor de procesos. De lo contrario, el programador de procesos fallará al iniciar.
  8. Verifique que los servicios de base de datos basados en roles estén activos en la nueva base de datos primaria.
    • Sitio: sitio 2
    • Nodo: todo Oracle Exadata Database Service on Dedicated Infrastructure domUs
    • Usuario: oracle
    Por ejemplo, emita el siguiente comando en cada domU que aloje una instancia de base de datos Oracle RAC PeopleSoft:
    $ 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
    Este servicio debe ejecutarse en todas las instancias de Oracle RAC.
  9. Inicie el servidor de aplicaciones y los dominios del programador de procesos.
    • Sitio: sitio 2
    • Nodo: instancias informáticas del servidor del programador de procesos y aplicaciones
    • Usuario: psadm2
    1. Conéctese a las instancias informáticas que alojan los servidores de aplicaciones y el programador de procesos PeopleSoft y conviértase en psadm2.
      Utilice la secuencia de comandos startPSFTAPP.sh ubicada en el directorio de envoltorio en GitHub:
      $ startPSFTAPP.sh
    2. Supervise el inicio.
      Puede utilizar la consulta de los dominios del programador de procesos y la aplicación 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. Iniciar servicios web.
    • Sitio: sitio 2
    • Nodo: todas las instancias informáticas del servidor web de PIA
    • Usuario: psadm2
    Si Coherence*Web está configurado, primero iniciará el cluster de caché en todas las instancias informáticas que alojan los servidores web de PIA y, a continuación, iniciará los servidores web de PIA. En este ejemplo, se utiliza un script para iniciar ambos en el orden correcto.
    1. Inicie sesión en los servidores web de PIA y conviértase en psadm2.
    2. Con el script de startPSFTAPP.sh, inicie los servidores web.
      $ startPSFTWEB.sh
  11. Compruebe el equilibrador de carga.
    • Sitio: región de sitio 2
    • Nodo: consola de OCI
    • Usuario: administrador del arrendamiento
    1. Conéctese a la consola de OCI y cambie la región a la nueva principal (Phoenix en nuestro ejemplo).
    2. Seleccione Red y, a continuación, Equilibrador de carga en el menú principal.
    3. Seleccione el compartimento adecuado.
    4. Haga clic en Juego de backends y, a continuación, en Backends.
      Cada backend debe mostrar Aceptar. Puede tardar unos minutos después de que se haya iniciado cada servidor web de PIA.
  12. Intente iniciar sesión en el servidor web de PIA desde un explorador web.
    • Usuario: PeopleSoft Usuario web de PIA
    Para este ejemplo, la URL es:
    https://psfthcm.appprivad1.maacloud2vcn.oraclevcn.com/psp/ps/EMPLOYEE/HRMS/?cmd=login

Cuando los pasos anteriores se han completado correctamente, la producción se ejecuta en el sitio 2.