サイトのスイッチオーバー

Oracle Maximum Availability Architecture (Oracle MAA)のベスト・プラクティスは、フル・スタック・サイト・スイッチオーバーを半年ごとに実行し、プライマリ・サイトとセカンダリ・サイトのロールを逆転させ、スイッチオーバー手順をテストし、管理対象外の変更やその他の問題が発生した場合に捕捉して修正することです。 また、セカンダリ・サイトに切り替えて、プライマリ・サイトがメジャー・メンテナンス中もサービスの提供を続行できます。

OCI内でのサイト・スイッチオーバーの実行

サイト1 (元はプライマリ)からサイト2 (元はセカンダリ)へのフル・スタックのPeopleSoftスイッチオーバーを実行します。

Oracle Cloud Infrastructure (OCI)を使用すると、ステップバイステップ、手動、またはステップを1つのフローにスクリプト化することで、サイトのスイッチオーバーを実行できます。いずれの場合も、データベース層にREST APIを組み合せて使用し、アプリケーションとWeb層にスクリプトを使用します。

この項では、手動のステップについて説明します。この例では、オンプレミス・データベースがData Guard Broker構成からすでに削除されていることを前提としています。

この例では、サイト1はもともとプライマリであり、サイト2はもともとセカンダリです。この演習中にロールを切り替えます。OCIでスイッチオーバーを実行するための概要タスクを次に示します。

サイト 1:

  1. 計画されたスイッチオーバー・イベントの前に、PeopleSoft Process Schedulerのバッチ・ジョブを排出または保留にします。
  2. すべてのPeopleSoftアプリケーション・サーバー、プロセス・スケジューラおよびすべてのPeopleSoft Internet Architecture (PIA) Webサーバーを停止します。
  3. PeopleSoftデータベースがスイッチオーバーの準備ができていることを確認します。
  4. Oracle Data Guardスイッチオーバーを実行します。
  5. OCI File Storageロール・リバーサルを実行します。

サイト 2:

  1. ロールベースのデータベース・サービスが開始されたことを確認します。
  2. PeopleSoftアプリケーション・サーバー、プロセス・スケジューラおよびすべてのPIA Webサーバーを起動します。
  3. 新しいプライマリ・リージョンのロード・バランシング(緑色の「OK」)でバックエンド・サーバーのステータスを検証します。
  4. PeopleSoft PIAにログインできることを確認します。

次の例では、フルスタックのPeopleSoftスイッチオーバーを実行するための詳細なステップを示します。これらの例では、アッシュバーン(CDBHCM_iad1dx)のプライマリ・データベースとフェニックス(CDBHCM_phx5s)のスタンバイ・データベースのテスト環境の名前を使用します。

  1. 各コンピュート・インスタンスについて、サイト1のプロセス・スケジューラを停止します。
    • サイト:サイト1
    • ノード:各プロセス・スケジューラ・サーバーのコンピュート・インスタンス
    • ユーザー: psadm2

    サイト・スイッチオーバーの準備として、スケジュールされたスイッチオーバーの前のある時点でプロセス・スケジューラを停止する必要がある場合があります。これにより、繰返しおよび新規ジョブが「キュー済」ステータスになります。

    スケジュールされたスイッチオーバー時間より前にプロセス・スケジューラを停止する場合は、GitHubの基本タスク・ディレクトリにある個々のスクリプトstopPS.shを使用します。現時点ではラッパー・スクリプトを使用しないでください。次のステップ4では、実際のスイッチオーバー・プロセスの一部としてラッパー・スクリプトを実行します。

    $ stopPS.sh
  2. スタンバイがスイッチオーバー可能であることを検証します。
    • サイト:サイト1
    • ノード: 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のラッパー・ディレクトリにあります。
      $ stopPSFTWEB.sh
  4. アプリケーション・サーバーとプロセス・スケジューラをシャットダウンします。
    • サイト:サイト1
    • ノード:アプリケーション/プロセス・スケジューラ・サーバーのコンピュート・インスタンス
    • ユーザー: psadm2
    1. PeopleSoftアプリケーション・サーバーおよびプロセス・スケジューラをホストするコンピュート・インスタンスにログインし、psadm2になります。
    2. stopPSFTAPP.shからラッパー・スクリプトを実行します。
      $ stopPSFTAPP.sh

      ノート:

      stopPSFTAPP.shスクリプトを実行する最初のインスタンスは、残りのアプリケーション・サーバーおよびプロセス・スケジューラ・ドメインが停止した後、ファイル・システムの最終的なrsyncを1つ実行し、rsyncを無効にします。
    3. データベース・セッションを監視するには、PeopleSoftアプリケーションおよびProcess SchedulerドメインのSQLスクリプトを使用します。
    4. すべてのstopPSスクリプトが完了したら、rsyncログをチェックして、最終的なrsyncが実行されたことを確認します。
      rsync_psft.shスクリプトのGitHubのレプリケーション・ディレクトリに移動します。
  5. Data Guard Brokerコマンドライン・インタフェースを使用して、スイッチオーバーを実行します。
    • サイト:サイト1
    • ノード: 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 Brokerコマンドライン・インタフェースを使用して、スイッチオーバーが成功したことを監視および検証します。
    • サイト:サイト1
    • ノード: 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. Active Data Guardサポートが構成されている場合は、スイッチオーバー後に新しいスタンバイ・データベースでPeopleSoft (PSQUERY)のActive Data Guardサービスが起動されていることを確認します。
    • サイト:サイト1
    • ノード: 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のラッパー・ディレクトリにあるstartPSFTAPP.shスクリプトを使用します。
      $ startPSFTAPP.sh
    2. 起動を監視します。
      この問合せは、PeopleSoftアプリケーションおよびProcess Schedulerドメインから使用できます。
      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つのスクリプトを使用して、両方を適切な順序で開始します。
    1. PIA Webサーバーにログインし、psadm2になります。
    2. startPSFTAPP.shのスクリプトを使用して、Webサーバーを起動します。
      $ startPSFTWEB.sh
  11. ロード・バランサを確認します。
    • サイト:サイト2リージョン
    • ノード: OCIコンソール
    • ユーザー: テナンシ管理者
    1. OCIコンソールにログインし、リージョンを新しいプライマリに変更します(この例ではPhoenix)。
    2. メイン・メニューから「ネットワーキング」「Load Balancer」の順に選択します。
    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で実行されます。