7 Oracle Clusterwareのクローニング

この章では、Oracle Grid Infrastructureホームをクローニングする方法およびクローニングされたホームを使用してクラスタを作成する方法について説明します。

ノート:

Oracle Grid Infrastructure 23ai以降、Oracleクラスタ・ドメイン・アーキテクチャに含まれるドメイン・サービス・クラスタ(DSC)は非推奨になりました。

Oracleクラスタ・ドメインは、ドメイン・サービス・クラスタ(DSC)とメンバー・クラスタで構成されます。メンバー・クラスタは、Oracle Grid Infrastructure 19cで非推奨となりました。DSCは、引き続き、本番クラスタにサービスを提供するために使用可能です。ただし、それらのサービスの大部分ではホスティングにDSCを必要としなくなったため、DSCのインストールはOracle Database 23aiでサポートされなくなります。該当する場合、以前にDSCでホストされていたサービスに、任意のクラスタまたはシステムを使用することをお薦めします。Oracleでは、代替システムで各サービスを使用できるようになるまで、共有サービスをホストするためのDSCのサポートを継続します。

この章のクローニング手順を実行するには、サイレント・モードでスクリプトを使用します。クローニング手順は、LinuxおよびUNIXシステムに適用できます。この章の例ではLinuxおよびUNIXのコマンドを使用しますが、通常、クローニングの概念および手順はすべてのプラットフォームに適用されます。

ノート:

この章は、次のように構成されたOracle Clusterware 23aiインストールをクローニングすることを前提としています:

  • グリッド・ネーミング・サービス(GNS)なし

  • Intelligent Platform Management Interface仕様(IPMI)なし

  • 投票ファイルおよびOracle Cluster Registry(OCR)がOracle Automatic Storage Management(Oracle ASM)に格納されている

  • 単一クライアント・アクセス名(SCAN)はDNSで解決される

Oracle Clusterwareのクローニングの概要

クローニングとは、既存のOracle Grid Infrastructureインストールを別の場所にコピーし、その後、コピーしたインストールを新しい環境で動作するよう更新するプロセスです。

クローニング元のOracle Grid Infrastructureホームに適用済の個別パッチによる変更は、クローニング後も継承されます。クローニング中には、Oracle Grid Infrastructureホームのインストールで実行された操作を再実行するスクリプトを実行します。

クローニングには、正常にインストールされたOracle Grid Infrastructureホームを使用することが必要です。このホームを、Oracle Grid Infrastructureホームを拡張するスクリプト実装のベースにして、元のGridホームに基づくクラスタを作成します。

手動でのクローニング・スクリプトの作成では、入力を検証する対話形式のチェックを使用せずにスクリプトを準備するため、エラーが発生しやすくなる場合があります。ただし、数十または数百のクラスタに対して単一スクリプトを実行するような場合には、この最初の作業は意味があります。インストールするクラスタが1つのみの場合は、Oracle Universal Installer(OUI)またはOracle Enterprise ManagerのProvisioning Pack機能など、従来の自動化された対話形式のインストール方法を使用してください。

ノート:

クローニングは、Provisioning Packに含まれるOracle Enterprise Managerクローニングにかわるものではありません。Oracle Enterprise Managerによるクローニングでは、プロビジョニング・プロセスによってOracleホームの詳細が対話形式で確認されることで、クローニングが単純化されています。対話時の質問では、クローニングされた環境のデプロイ先、Oracle Databaseホームの名前、クラスタ内のノードのリストなどが確認されます。

Oracle Enterprise Manager Grid ControlのProvisioning Pack機能では、ノードおよびクラスタのプロビジョニングを自動化するフレームワークが提供されています。多数のクラスタを持つデータ・センターの場合、既存のクラスタに新規クラスタおよび新規ノードをプロビジョニングするためのクローニング手順を作成する作業は、その労力に見合った価値があります。

次のリストに、クローニングが有効ないくつかの状況を示します。

  • クローニングにより、Oracle Grid Infrastructureホームを1回準備するだけで、多数のホストに同時にデプロイされます。非対話形式のプロセスとして、サイレント・モードでインストールを完了できます。グラフィカル・ユーザー・インタフェース(GUI)のコンソールを使用する必要がなく、必要に応じて、セキュア・シェル(SSH)・ターミナル・セッションからクローニングを実行できます。

  • クローニングにより、すべてのパッチが適用されたインストール(本番、テスト、または開発用インストールのコピー)を1回のステップで作成できます。ベース・インストールを実行してソース・システムにすべてのパッチ・セットとパッチを適用した後は、クローニングにより、それらの個別のステップはすべて単一の手順で実行されます。これにより、クラスタの各ノードですべてのインストール・プロセスを通して行い、インストール、構成およびパッチ適用を個別のステップで実行するのとは、対照的な効果が得られます。

  • クローニングによるOracle Clusterwareのインストールでは、非常に短時間で処理を完了できます。たとえば、3つ以上のノードを持つクラスタにOracle Grid Infrastructureホームをクローニングする場合、必要な時間は、Oracleソフトウェアのインストールにかかる数分間と各ノードにかかる数分間を合わせた時間(合計時間はroot.shスクリプトの実行にかかる時間とほぼ等しい)となります。

  • クローニングでは、複数のクラスタで同一のOracle Grid Infrastructureインストールを正確に繰り返すための確実な方法が提供されます。

クローニングされたインストールは、クローニング元のインストールと同じ動作をします。たとえば、クローニングされたOracle Grid Infrastructureホームは、OUIを使用して削除できます。また、クローニングされたOracle Grid Infrastructureホームを、別のクローニング操作のソースとして使用できます。コマンドラインのクローニング・スクリプトを使用して、テスト用、開発用または本番用のインストールをクローニングしたコピーを作成できます。

多くの場合、デフォルトのクローニング手順で十分です。ただし、カスタム・ポート割当ての指定、またはカスタム設定の保持など、クローニングのいくつかの側面をカスタマイズすることもできます。

たとえば、リスナーのカスタム・ポートを、次のように指定できます。

$ export ORACLE_HOME=/u01/app/23.0.0/grid
$ $ORACLE_HOME/bin/srvctl modify listener -endpoints tcp:12345

クローニング・プロセスでは、クローニング元のOracle Grid Infrastructureホームからクローニング先のOracle Grid Infrastructureホームにすべてのファイルをコピーします。Oracle Grid Infrastructureホームは、ローカル(非共有)ホームまたは共有ホームのどちらの場合でもクローニングできます。したがって、ソース・インスタンスで使用されているファイルの中で、クローニング元のOracle Grid Infrastructureホームのディレクトリ構造の外部に置かれているものがある場合、それはクローニング先にコピーされません。

ソースおよび宛先のバイナリ・ファイルのサイズは異なる場合がありますが、これはクローニング操作の一部としてこれらのファイルが再リンクされており、これら2つの位置のオペレーティング・システムのパッチ・レベルが異なっていることがあるためです。また、いくつかのファイルがソースからコピーされることによって、特にインスタンス化されたファイルはクローン操作の一部としてバックアップされるため、クローン・ホームのファイルの数が増える場合があります。

Oracle Grid Infrastructureホームをクローニングするための準備

クローニング元のOracle Grid Infrastructureホームでクローニングを準備するには、インストール済のOracle Grid Infrastructureホームのコピーを作成し、別のノードでクローニング手順を実行する際に使用します。

次の段階ごとの手順に従って、Oracle Grid Infrastructureホームのコピーを準備します。

ステップ1: Oracle Clusterwareのインストール

『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイド』の詳細指示に従って、ソース・ノードで、次のステップを実行します。

  1. Oracle Clusterwareをインストールします。このインストールによって、Oracle Cluster Registry(OCR)および投票ファイルがOracle Automatic Storage Management(Oracle ASM)に配置されます。

    ノート:

    クラスタ用のOracle Grid Infrastructureをインストールして構成するか、Oracle Clusterwareソフトウェアのみをインストールしてください(ご使用のプラットフォーム固有のOracle Grid Infrastructureインストレーションおよびアップグレード・ガイドを参照)。

    クラスタ用のOracle Grid Infrastructureをインストールして構成した場合は、クローニング手順を実行する前にOracle Clusterwareを停止する必要があります。ソフトウェアのみのインストールを実行する場合は、Oracle Clusterwareを停止する必要はありません。

  2. 必要に応じて、適切なパッチ(Oracle Grid Infrastructureバンドル・パッチなど)をインストールします。
  3. 必要に応じて、1回限りのパッチを適用します。

ステップ2: 実行中のソフトウェアの停止

クローニング元のOracle Grid Infrastructureホームをコピーする前に、ノードで実行されているサービス、データベース、リスナー、アプリケーション、Oracle ClusterwareおよびOracle ASMインスタンスをすべて停止します。サーバー制御(SRVCTL)ユーティリティを使用してデータベースを停止してから、Oracle Clusterware制御(CRSCTL)ユーティリティを使用して残りのコンポーネントを停止することをお薦めします。

ステップ3: Oracle Grid Infrastructureホームのコピーの作成

インストールしたOracle Grid Infrastructureホームを作業ホームとして保持するために、クローニング元のOracle Grid Infrastructureホームの全体コピーを作成します。

ヒント:

コピーの作成時には、ファイル名にリリース番号を含めることをお薦めします。

グリッド設定ウィザードを使用してOracle Grid Infrastructureホームのゴールド・イメージを作成できます。

  1. gridSetup.shを適切なオプションを使用して実行してゴールド・イメージを作成します。たとえば、指定した宛先にゴールド・イメージを作成します。
    ./gridSetup.sh -createGoldImage -destinationLocation /tmp/my_grid_images
  2. 詳細を表示するには、-helpオプションを使用してgridSetup.shを実行します。

関連項目:

イメージを作成するためのグリッド設定ウィザードのインストール・オプションの使用の詳細は、『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイド』を参照してください。

Oracle Clusterwareのクローニングによるクラスタの作成

この項では、正常にインストールされたOracle Clusterware環境をクローニングし、それをクローニング先のクラスタ上のノードにコピーすることにより、クラスタを作成する方法を説明します。この項の手順では、Linux、UNIXおよびWindowsシステムでクローニングを使用する方法について説明します。クローニングでクラスタを正常に作成した後、OCRおよび投票ファイルは2つのクラスタ間で共有されません。

たとえば、クローニングを使用して、正常にインストールされたOracle Clusterware環境を複製し、クラスタを作成することができます。図7-1では、クローニング手順の結果を示しており、ノード1上のOracle Grid Infrastructureホームはクラスタ2上のノード2およびノード3にクローニングされ、クラスタ2が新規の2ノード・クラスタとなっています。

図7-1 クローニングによるOracle Clusterware環境の作成

図7-1の説明が続きます
「図7-1 クローニングによるOracle Clusterware環境の作成」の説明

ステップ1: 新規クラスタ・ノードの準備

Oracle Clusterwareをクローニングする前に、インストール前のステップを完了する必要があります。

各宛先ノードで、次のインストール前のステップを実行します。

  1. カーネル・パラメータの指定

  2. Oracle Clusterwareデバイス用のブロック・デバイスの構成

  3. ブロック・デバイスの権限が正しく設定されていることの確認

  4. /etc/hostsファイル内のすべての名前に対する短い非ドメイン修飾の名前の使用

  5. pingコマンドによる、インターコネクト・インタフェースが到達可能かどうかのテスト

  6. pingコマンドによる、クローニング・プロセスの開始時に仮想IP (VIP)アドレスがアクティブでないことの検証(VIPアドレスのpingコマンドは失敗する必要があります)

  7. (ベンダーのクラスタウェアを実行しているIBM AIXシステムおよびOracle Solaris x86-64-bitシステムのみ)ノードをクラスタに追加する場合は、ノードをクラスタに追加する前に、ノード上でrootpre.shスクリプト(アーカイブ・ファイルを抽出したディレクトリにあります)を実行する必要があります。

    ノート:

    Oracle Clusterware 21c以降では、Oracle Clusterwareとベンダーまたはサード・パーティのクラスタウェアとの統合はサポートされなくなりました。

  8. ハードウェアおよびオペレーティング・システム環境が正しく構成されていることを確認するには、構成検証ユーティリティ(CVU).を実行します

    ノート:

    続行する前に、CVUを使用してクラスタをチェックしてください。従来のインストール方法とは異なり、クローニング・プロセスでは、準備フェーズ中に入力が検証されません。これと比較して、Oracle Universal Installer (OUI)を使用した従来のインストール方法では、インタビュー・フェーズ中に様々なチェックが実行されます。したがって、ハードウェア設定または準備フェーズ中にミスをすると、クローニング・インストールは失敗します。

インストール前の全チェックリストは、ご使用のプラットフォーム固有のOracle Grid Infrastructureインストレーション・ガイドを参照してください。

ステップ2: Oracle Grid Infrastructureホームのデプロイ

この項で説明しているクローニング手順を開始する前に、Oracle Grid Infrastructureホームのコピーを作成するための必須タスクを完了していることを確認してください(「Oracle Grid Infrastructureホームをクローニングするための準備」を参照)。

  1. クラスタ内のノードの1つに、ステップ3: Oracle Grid Infrastructureホームのコピーの作成で作成したOracle Grid Infrastructureホームのコピーを次のようにデプロイします。

    たとえば、LinuxまたはUNIXシステムで、次のようなコマンドを実行します。

    [root@node1 root]# mkdir -p location_of_the_copy_of_the_Grid_home
    [root@node1 root]# cd location_of_the_copy_of_the_Grid_home
    [root@node1 crs]# tar -zxvf /gridHome.tgz

    この例で、location_of_the_copy_of_the_Grid_homeは、/u01/app/23.0.0/gridなどのOracle Grid Infrastructureホームのインストール先のディレクトリ構造を表します。このプロセスでは、Gridホームの場所を変更できます。

  2. Oracle Grid Infrastructureホームから不要なファイルを削除していない場合は、「方法2: -Xオプションを使用してOracle Grid Infrastructureホームの圧縮コピーを作成する」のステップ2を繰り返します。
  3. 必要に応じて、Oracle Grid Infrastructureホームのすべてのファイルの所有権をOracle Grid Infrastructureインストール所有者およびOracle Inventory (oinstall権限)グループによって所有されるように変更します。次の例では、Oracle Grid Infrastructureインストール所有者がoracleで、Oracle Inventoryグループがoinstallの場合にLinuxシステムでこれを行うコマンドを示します。
    [root@node1 crs]# chown -R oracle:oinstall /u01/app

    Gridホームで前述のコマンドを実行すると、Oracleバイナリからsetuidsetgidの情報がクリアされます。想定どおり、このコマンドによって、次のバイナリからsetuidもクリアされます。

    Grid_home/bin/extjob
    Grid_home/bin/jssu
    Grid_home/bin/oradism

    setuid情報は、後続のステップで正しく設定されます。

  4. 処理を続行する前に、ソースおよび宛先の両方のノードのGrid_homeディレクトリからすべてのOracleネットワーク・ファイルを削除することも重要です。

ステップ3: gridSetup.shユーティリティの実行

新しいOracle Clusterware環境を設定するには、新しいクラスタ用のOracle Grid Infrastructureをインストールするときと同様に、1つのノードで対話モードまたはサイレント・モードでgridSetup.shユーティリティを実行します。

$ORACLE_home/gridSetup.shユーティリティを起動すると、対話型のインタフェースを使用して対話モードで実行することも、レスポンス・ファイルを指定してサイレント・モードで実行することもできます。

クローニングを使用したクラスタへのノードの追加

また、クローニングを使用してクラスタにノードを追加することもできます。

図7-2では、クローニング手順の結果を示しており、ノード1上のOracle Grid Infrastructureホームは同じクラスタ上のノード2にクローニングされ、クラスタ2が2ノード・クラスタとなっています。クラスタへ新しく追加されたノードは、同じOCRおよび投票ファイルを共有します。

図7-2 クラスタにノードを追加するためのクローニング

図7-2の説明が続きます
「図7-2 クラスタにノードを追加するためのクローニング」の説明

図7-2を例とし、次の手順では、クローニングを使用してクラスタへノードを追加する方法を説明します。この手順では、最初にノード1を作成するために使用したイメージ(クローン)をノード2にコピーします。

ステップ1: 新規クラスタ・ノードの準備で説明されているように、ノード2を準備します。

  1. ステップ2: 宛先ノードでのOracle Grid Infrastructureホームのデプロイで説明されているように、ノード2でOracle Grid Infrastructureホームをデプロイします。

    tarユーティリティを使用してノード1でOracle Grid Infrastructureホームのアーカイブを作成し、それをノード2にコピーします。ノード1のOracle Grid Infrastructureホームの場所が$ORACLE_HOMEである場合は、これと同じディレクトリをノード2のコピー先として使用する必要があります。

  2. gridSetup.shスクリプトを実行して、Software Onlyインストール・オプションを選択します。
  3. このステップはWindowsには適用されません。

    ノード2の中央インベントリ・ディレクトリで、rootとしてorainstRoot.shスクリプトを実行します。このスクリプトは、/etc/oraInst.locディレクトリに中央インベントリの場所を移入します。たとえば:

    [root@node2 root]# /opt/oracle/oraInventory/orainstRoot.sh
    

    複数の宛先ノードで同時にスクリプトを実行することができます。

  4. gridSetup.sh -noCopyスクリプトを実行して、Add more nodes to clusterを選択します。
  5. ノード2で、Grid_home/root.shスクリプトを実行します。

    ノート:

    • root.shまたはgridconfig.batスクリプトを実行する前に、すべてのデータベース・ホームを展開したことを確認します。

    • この例のクラスタのノードは2つのみです。クラスタに複数のノードを追加する場合、すべてのノードでroot.shを同時に実行することができます。

    次の例はLinuxまたはUNIXシステム用の例です。ノード2で、次のコマンドを実行します。

    [root@node2 root]# Grid_home/root.sh
    

    root.shスクリプトは、Oracle Cluster Registry (OCR)に仮想IP (VIP)リソースを自動的に構成します。

    Windowsでは、ノード2で次のコマンドを実行します。

    C:\>Grid_home\crs\config\gridconfig.bat
    
  6. ノード1で次の構成検証ユーティリティ(CVU)コマンドを実行します。
    $ cluvfy stage -post nodeadd -n destination_node_name [-verbose]

関連トピック

クローニング時に生成されたログ・ファイルの配置と表示

クローニング・スクリプトは、それぞれがログ・ファイルを生成できる複数のツールを実行します。gridSetup.shユーティリティの実行が終了した後、これらのログ・ファイルを参照して、クローニング手順のステータスに関する詳細情報を入手することができます。表7-1では、クローニング時に生成される、診断に重要なログ・ファイルを示します。

ノート:

表7-1Central_inventoryは、Oracle Inventoryディレクトリを表します。

表7-1 クローニングのログ・ファイルおよび説明

ログ・ファイルの名前および場所 説明
Central_inventory/logs/cloneActionstimestamp.log

クローニングのOUI部分で行われたアクションの詳細ログが含まれます。

Central_inventory/logs/oraInstalltimestamp.err

OUIの実行中に発生したエラーに関する情報が含まれます。

Central_inventory/logs/oraInstalltimestamp.out

その他の情報が含まれます。

表7-2は、様々なプラットフォーム用のOracle Inventoryディレクトリの場所を示しています。

表7-2 Oracleインベントリ・ディレクトリの位置の確認

システムのタイプ Oracleインベントリ・ディレクトリの位置

LinuxおよびIBM AIXを除くすべてのUNIXコンピュータ

/var/opt/oracle/oraInst.loc

IBM AIXおよびLinux

/etc/oraInst.loc

Windows

C:\Program Files\Oracle\Inventory