2.12.3 クラスタからのデータベース・サーバーの削除

障害が発生したサーバーを再イメージ化する場合やサーバーを再利用する場合は、このタスクのステップに従って、再イメージ化の前にクラスタからサーバーを削除します。それ以外の理由のためにサーバーを再イメージ化する場合は、このタスクをスキップし、その次の再イメージ化の作業に進んでください。

このタスクのステップは、クラスタで動作しているデータベース・サーバーを使用して実行されます。次のコマンドのworking_serverは、動作しているデータベース・サーバーです。また、failed_serverは、障害が発生しているか再利用のために削除するデータベース・サーバーです。

  1. クラスタのデータベース・サーバーにoracleまたはgridユーザーとしてログインします。
    Oracle Grid Infrastructureソフトウェアのインストール所有者としてログインします。
  2. 障害が発生したサーバーで実行されているリスナーを無効化します。
    $ srvctl disable listener -n failed_server
    $ srvctl stop listener -n failed_server
    
  3. OracleインベントリからOracleホームを削除します。

    次のコマンドのlist_of_working_serversは、dm01db02dm01db03などのクラスタで動作しているサーバーのリストです。

    次のコマンドでは、/u01/app/oracle/product/12.1.0.2/dbhome_1をOracle Databaseのホーム・ディレクトリの場所に置き換えます。

    $ cd $ORACLE_HOME/oui/bin
    $ ./runInstaller -updateNodeList ORACLE_HOME= \
    /u01/app/oracle/product/12.1.0.2/dbhome_1 "CLUSTER_NODES=list_of_working_servers"
    
  4. データベース・サーバーにgridユーザーとしてログインします。
    gridユーザーは、Oracle Grid Infrastructureソフトウェアのインストール環境を所有するオペレーティング・システム・ユーザーを指します。$ORACLE_HOME変数は、Gridホームの場所を指している必要があります。
  5. 障害が発生したサーバーの固定が解除されたことを確認します。
    $ olsnodes -s -t
    

    次に、コマンドの出力例を示します。

    dm01adm05        Inactive        Unpinned
    dm01adm06        Active          Unpinned
    dm01adm07        Active          Unpinned
    dm01adm08        Active          Unpinned
    
  6. データベース・サーバーにrootユーザーとしてログインします。
  7. 障害が発生したデータベース・サーバーのVIPリソースを停止して削除します。
    # srvctl stop vip -i failed_server-vip
    PRCC-1016 : failed_server-vip.example.com was already stopped
    
    # srvctl remove vip -i failed_server-vip
    Please confirm that you intend to remove the VIPs failed_server-vip (y/[n]) y
    
  8. クラスタからサーバーを削除します。
    # crsctl delete node -n failed_server
    CRS-4661: Node dm01db01 successfully deleted.
    

    次のようなエラー・メッセージを受領したら、投票ディスクを移動します。

    CRS-4662: Error while trying to delete node dm01db01.
    CRS-4000: Command Delete failed, or completed with errors.
    

    投票ディスクを移動するには、次のステップを実行します。

    1. 投票ディスクの現在の場所を特定します。
      # crsctl query css votedisk
      

      次に、コマンドの出力例を示します。現在の場所はDBFS_DGです。

      ##  STATE    File Universal Id          File Name                Disk group
      --  -----    -----------------          ---------                ----------
      1. ONLINE   123456789abab (o/192.168.73.102/DATA_CD_00_dm01cel07) [DBFS_DG]
      2. ONLINE   123456789cdcd (o/192.168.73.103/DATA_CD_00_dm01cel08) [DBFS_DG]
      3. ONLINE   123456789efef (o/192.168.73.100/DATA_CD_00_dm01cel05) [DBFS_DG]
      Located 3 voting disk(s).
      
    2. 投票ディスクを別のディスク・グループに移動します。
      # ./crsctl replace votedisk +DATA
      
      Successful addition of voting disk 2345667aabbdd.
      ...
      CRS-4266: Voting file(s) successfully replaced
      
    3. 次のコマンドを使用して、投票ディスクを元の場所に移動します。
      # ./crsctl replace votedisk +DBFS_DG
      
    4. クラスタからサーバーを削除します。
  9. データベース・サーバーにgridユーザーとしてログインします。
    gridユーザーは、Oracle Grid Infrastructureソフトウェアのインストール環境を所有するオペレーティング・システム・ユーザーを指します。$ORACLE_HOME変数は、Gridホームの場所を指している必要があります。
  10. Oracleインベントリを更新します。

    次のコマンドでは、/u01/app/12.1.0.2/gridをOracle Grid Infrastructureのホーム・ディレクトリの場所に置き換えます。

    $ cd $ORACLE_HOME/oui/bin
    $ ./runInstaller -updateNodeList ORACLE_HOME=/u01/app/12.1.0.2/grid \
      "CLUSTER_NODES=list_of_working_servers" CRS=TRUE
    
  11. サーバーが正常に削除されたことを確認します。
    $ cluvfy stage -post nodedel -n failed_server -verbose
    

    次に、コマンドの出力例を示します。

    Performing post-checks for node removal
    Checking CRS integrity...
    The Oracle clusterware is healthy on node "dm01db02"
    CRS integrity check passed
    Result:
    Node removal check passed
    Post-check for node removal was successful.