Permutation de site

La meilleure pratique d'Oracle Maximum Availability Architecture (Oracle MAA) consiste à effectuer une permutation de site de pile complète deux fois par an, en inversant les rôles des sites principal et secondaire, en testant les procédures de permutation et en détectant et corrigeant les modifications non gérées ou d'autres problèmes qui auraient pu se produire. Vous pouvez également passer au site secondaire pour continuer à fournir des services pendant que le site principal fait l'objet d'une maintenance majeure.

Effectuer une permutation de site dans OCI

Effectuez une permutation complète de la pile PeopleSoft du site 1 (à l'origine principal) vers le site 2 (à l'origine secondaire).

Vous pouvez utiliser Oracle Cloud Infrastructure (OCI) pour effectuer une permutation de site étape par étape, manuellement ou en codant les étapes dans un flux unique. Dans les deux cas, vous utiliserez une combinaison d'API REST pour le niveau de la base de données et de scripts pour les niveaux d'application et Web.

Cette section décrit les étapes manuelles. L'exemple suppose que la base de données sur place a déjà été supprimée de la configuration Data Guard Broker.

Dans cet exemple, Site 1 est à l'origine le principal et Site 2 est à l'origine le secondaire. Ils changent de rôle au cours de cet exercice. Voici les tâches de haut niveau pour effectuer une permutation dans OCI :

Site 1 :

  1. Drainer ou bloquer les tâches par lots dans PeopleSoft Process Scheduler avant l'événement de permutation planifié.
  2. Arrêtez tous les serveurs d'applications PeopleSoft, le programmateur de processus et tous les serveurs Web PeopleSoft Internet Architecture (PIA).
  3. Vérifiez que la base de données PeopleSoft est prête pour la permutation.
  4. Effectuez une permutation Oracle Data Guard.
  5. Effectuez l'annulation du rôle de stockage de fichiers OCI.

Site 2 :

  1. Vérifiez que les services de base de données basés sur les rôles ont été démarrés.
  2. Démarrez les serveurs d'applications PeopleSoft, le Répartiteur de traitements et tous les serveurs Web PIA.
  3. Validez le statut des serveurs dorsaux dans le nouvel équilibreur de charge de la région principale (vert OK).
  4. Validez que vous pouvez vous connecter à l'AIP PeopleSoft.

L'exemple suivant présente les étapes détaillées pour effectuer une permutation de pile complète avec PeopleSoft. Ces exemples utilisent des noms provenant de notre environnement de test pour la base de données principale à Ashburn (CDBHCM_iad1dx) et la base de données de secours à Phoenix (CDBHCM_phx5s).

  1. Arrêtez le programmateur de processus sur le site 1 pour chaque instance de calcul.
    • Site : Site 1
    • Noeud : Chaque instance de calcul du serveur du programmateur de processus
    • Utilisateur : psadm2

    Pour préparer la permutation de site, il peut être nécessaire d'arrêter le Répartiteur de traitements à un moment donné avant la permutation planifiée. Ainsi, toutes les tâches récurrentes et nouvelles auront le statut "En file d'attente".

    Lors de l'arrêt du programmateur de processus avant l'heure de permutation programmée, utilisez le script individuel stopPS.sh situé dans le répertoire des tâches de base dans GitHub. N'utilisez pas le script wrapper pour le moment. L'étape 4 ci-dessous exécute le script wrapper dans le cadre du processus de permutation réel.

    $ stopPS.sh
  2. Vérifiez que la base de secours est prête pour la permutation.
    • Site : Site 1
    • Node: One Oracle Exadata Database Service on Dedicated Infrastructure domU
    • Utilisateur : oracle
    1. Log in to one of the primary Oracle Exadata Database Service on Dedicated Infrastructure domUs hosting a PeopleSoft Oracle RAC instance, and become the oracle user.
    2. Approvisionner l'environnement.
      $ . ./CDBHCM.env
    3. Démarrez l'interface de ligne de commande d'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. Validez la base de données de secours.
      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 données de secours est prête pour la permutation.

  3. Arrêtez les serveurs Web PIA.
    • Site : Site 1
    • Noeud : Instances de calcul de serveur Web PIA
    • Utilisateur : psadm2
    1. Connectez-vous aux serveurs de niveau intermédiaire PIA et devenez psadm2.
    2. Utilisez les scripts wrapper pour arrêter les serveurs Web PIA et les serveurs de cache Coherence*Web.
      Les scripts d'encapsuleur se trouvent dans le répertoire de l'encapsuleur dans GitHub.
      $ stopPSFTWEB.sh
  4. Arrêtez le serveur d'applications et le Répartiteur de traitements.
    • Site : Site 1
    • Noeud : Instances de calcul du serveur du programmateur d'application/de processus
    • Utilisateur : psadm2
    1. Connectez-vous aux instances de calcul hébergeant les serveurs d'applications et le programmateur de processus PeopleSoft et devenez psadm2.
    2. Exécutez le script wrapper à partir de stopPSFTAPP.sh.
      $ stopPSFTAPP.sh

      Note :

      La première instance à exécuter le script stopPSFTAPP.sh exécutera une dernière rsync des systèmes de fichiers après l'arrêt du reste des domaines du serveur d'applications et du programmateur de processus, puis désactivera rsync.
    3. Utilisez le script SQL dans les domaines d'application et de Répartiteur de traitements PeopleSoft pour surveiller les sessions de base de données.
    4. Une fois tous les scripts stopPS terminés, vérifiez le journal rsync pour vérifier qu'une rsync finale a été effectuée.
      Accédez au répertoire de réplication dans GitHub pour le script rsync_psft.sh.
  5. Utilisez l'interface de ligne de commande de Data Guard Broker pour effectuer la permutation.
    • Site : Site 1
    • Node: One Oracle Exadata Database Service on Dedicated Infrastructure domU
    • Utilisateur : 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. Utilisez l'interface de ligne de commande de Data Guard Broker pour surveiller et vérifier que la permutation a réussi.
    • Site : Site 1
    • Node: One Oracle Exadata Database Service on Dedicated Infrastructure domU
    • Utilisateur : 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 la prise en charge d'Active Data Guard est configurée, assurez-vous que le service Active Data Guard pour PeopleSoft (PSQUERY) a été démarré sur la nouvelle base de données de secours après la permutation.
    • Site : Site 1
    • Node: One Oracle Exadata Database Service on Dedicated Infrastructure domU
    • Utilisateur : oracle
    $ srvctl status service -db CDBHCM_iad1dx -s PSQUERY
    Service PSQUERY is running on instance(s) CDBHCM1,CDBHCM2
    Ce service doit s'exécuter sur toutes les instances Oracle RAC.

    Note :

    Ce service doit être démarré avant le démarrage du Répartiteur de traitements. Sinon, le répartiteur de traitements échouera au démarrage.
  8. Vérifiez que les services de base de données basés sur les rôles sont actifs sur la nouvelle base principale.
    • Site : Site 2
    • Node: All Oracle Exadata Database Service on Dedicated Infrastructure domUs
    • Utilisateur : oracle
    Par exemple, exécutez la commande suivante sur chaque domU hébergeant une instance de base de données 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
    Ce service doit s'exécuter sur toutes les instances Oracle RAC.
  9. Démarrez le serveur d'applications et les domaines du Répartiteur de traitements.
    • Site : Site 2
    • Noeud : Instances de calcul du serveur du programmateur d'applications et de processus
    • Utilisateur : psadm2
    1. Connectez-vous aux instances de calcul hébergeant les serveurs d'applications et le programmateur de processus PeopleSoft et devenez psadm2.
      Utilisez le script startPSFTAPP.sh situé dans le répertoire Encapsuleur dans GitHub :
      $ startPSFTAPP.sh
    2. Surveillez le démarrage.
      Vous pouvez utiliser l'interrogation à partir des domaines d'application et de Répartiteur de traitements 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. Démarrez les services Web.
    • Site : Site 2
    • Noeud : Toutes les instances de calcul de serveur Web PIA
    • Utilisateur : psadm2
    Si Coherence*Web est configuré, vous démarrerez d'abord le cluster de cache sur toutes les instances de calcul qui hébergent les serveurs Web PIA, puis les serveurs Web PIA. Dans cet exemple, un script est utilisé pour démarrer les deux dans l'ordre approprié.
    1. Connectez-vous aux serveurs Web PIA et devenez psadm2.
    2. À l'aide du script de startPSFTAPP.sh, démarrez les serveurs Web.
      $ startPSFTWEB.sh
  11. Vérifiez l'équilibreur de charge.
    • Site : Région Site 2
    • Noeud : Console OCI
    • Utilisateur : administrateur de location
    1. Connectez-vous à la console OCI et remplacez la région par votre nouvelle région principale (Phoenix dans notre exemple).
    2. Sélectionnez Réseau, puis Équilibreur de charge dans le menu principal.
    3. Sélectionnez le compartiment approprié.
    4. Cliquez sur Jeu dorsal, puis sur Serveurs dorsaux.
      Chaque serveur dorsal doit afficher OK. Cela peut prendre quelques minutes après le démarrage de chaque serveur Web PIA.
  12. Tentative de connexion au serveur Web PIA à partir d'un navigateur Web.
    • Utilisateur : PeopleSoft Utilisateur Web PIA
    Pour cet exemple, l'URL est :
    https://psfthcm.appprivad1.maacloud2vcn.oraclevcn.com/psp/ps/EMPLOYEE/HRMS/?cmd=login

Lorsque les étapes ci-dessus sont terminées avec succès, la production s'exécute au site 2.