日本語PDF

7 Oracle Clusterwareのクローニング

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

ノート:

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

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

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

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

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

この章のトピックは、次のとおりです:

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

クローニングとは、既存のOracle Clusterwareインストールを別の場所にコピーし、その後、コピーしたインストールを新しい環境で動作するよう更新するプロセスです。クローニング元の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 Clusterwareインストールを正確に繰り返すための確実な方法が提供されます。

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

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

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

$ export ORACLE_HOME=/u01/app/12.1.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が、Oracle Grid Infrastructureホームのゴールド・イメージを作成するためのお薦めの方法です。

Oracle Grid Infrastructureホームのコピーを手動で作成するには方法2aまたは2bを使用できます(Grid_homeはすべてのファイルを含む元のノードの元のOracle Grid Infrastructureホームであり、copy_pathは不要なファイルが削除されるコピーされたOracle Grid Infrastructureホームへのディレクトリ・パスです)。

方法1: 設定ウィザードを使用してOracle Grid Infrastructureホームのコピーを作成する

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

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

    関連項目:

    イメージを作成するためのグリッド設定ウィザードのインストール・オプションの使用の詳細は、『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイド』を参照してください。
方法2a: そのコピーから不要なファイルを削除することによりOracle Grid Infrastructureホームのコピーを作成する
  1. ソース・ノードで、Oracle Grid Infrastructureホームのコピーを作成します。インストールしたOracle Grid Infrastructureホームを作業ホームとして保持するために、クローニング元のOracle Grid Infrastructureホームの全体コピーを作成し、そのコピーから不要なファイルを削除します。たとえば、Linuxシステムでは、rootユーザーとしてcpコマンドを実行します。
    # cp -prf Grid_home copy_path
    
  2. コピーから不要なファイルを削除します。

    Oracle Grid Infrastructureホームには、ソース・ノードにのみ関連するファイルが含まれているため、logcrs/initcrfおよびcdataディレクトリのOracle Grid Infrastructureホームのコピーから不要なファイルを削除できます。次に、LinuxおよびUNIXシステムでOracle Grid Infrastructureホームのコピーから不要なファイルを削除する場合に実行するコマンドの例を示します。

    [root@node1 root]# cd copy_path
    [root@node1 grid]# rm -rf log/host_name
    [root@node1 grid]# rm -rf gpnp/host_name
    [root@node1 grid]# find gpnp -type f -exec rm -f {} \;
    [root@node1 grid]# rm -rf cfgtoollogs/*
    [root@node1 grid]# rm -rf cdata/*
    [root@node1 grid]# rm -rf crf/*
    [root@node1 grid]# rm -rf network/admin/*.ora
    [root@node1 grid]# rm -rf crs/install/crsconfig_params
    [root@node1 grid]# rm -rf crs/install/crsgenconfig_params
    [root@node1 grid]# find . -name '*.ouibak' -exec rm {} \;
    [root@node1 grid]# find . -name '*.ouibak.1' -exec rm {} \;
    [root@node1 grid]# rm -rf root.sh*
    [root@node1 grid]# rm -rf bin/clsecho/*
    [root@node1 grid]# rm -rf rdbms/audit/*
    [root@node1 grid]# rm -rf rdbms/log/*
    [root@node1 grid]# rm -rf inventory/backup/*
    [root@node1 grid]# rm -rf oraInst.loc 
    
  3. LinuxおよびUNIXシステムではtarまたはgzipを使用して、前述のコピー済Oracle Grid Infrastructureホームの圧縮コピーを作成します。使用するツールによって、権限およびファイル・タイムスタンプが保持されることを確認してください。たとえば:

    LinuxおよびUNIXシステムの場合:

    [root@node1 root]# cd copy_path
    [root@node1 grid]# tar -zcvpf /copy_path/gridHome.tgz

    前述の例で、cdコマンドは、この手順の最初の2つのステップで作成したOracle Grid Infrastructureのホームのコピー(不要なファイルは削除済み)に場所を変更し、tarコマンドはgridHome.tgzという名前のファイルを作成します。tarコマンドで、copy_pathは、Oracle Grid Infrastructureホームのコピーの場所を表します。

    AIXまたはHPUXシステムの場合は、次のコマンドを発行します。

    uncompress gridHome.tar.Z
    tar xvf gridHome.tar
    

    Windowsシステムで、WinZipを使用してzipファイルを作成します。

方法2b: -Xオプションを使用してOracle Grid Infrastructureホームのコピーを作成する
  1. Oracle Grid Infrastructureホーム内の不要なファイルを示すファイルを作成します。たとえば、excludeFileListというファイルに、アスタリスク(*)のワイルドカードを使用して次のファイル名を示します。
    Grid_home/host_name
    Grid_home/log/host_name
    Grid_home/gpnp/host_name/*
    Grid_home/bin/clsecho/*
    Grid_home/cdata/*
    Grid_home/crf/*
    Grid_home/network/admin/*.ora
    Grid_home/root.sh*
    Grid_home/cfgtoollogs/*
    Grid_home/crs/install/crsconfig_params
    Grid_home/crs/install/crsgenconfig_params
    Grid_home/rdbms/audit/*
    Grid_home/rdbms/log/*
    Grid_home/inventory/backup/*
    Grid_home/oraInst.loc
    *.ouibak
    *.ouibak1
    
  2. tarコマンドまたはWinzipを使用して、Oracle Grid Infrastructureホームの圧縮コピーを作成します。たとえば、LinuxおよびUNIXシステムでは、次のコマンドを実行して、クローニング元のOracle Grid Infrastructureホームをアーカイブおよび圧縮します。
    tar cpfX - excludeFileList Grid_home | compress -fv > temp_dir/gridHome.tar.Z

    ノート:

    Oracle Grid Infrastructureホームをコピーおよび圧縮するために、jarユーティリティは使用しないでください。

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スクリプト(DVDからOracle Clusterwareをインストールした場合はマウント・ポイント、ソフトウェアをダウンロードした場合はtarファイルを解凍したディレクトリにあります)を実行する必要があります

    ノート:

    Oracle Database 19c以降では、Oracle Clusterwareとベンダー・クラスタウェアの統合は非推奨であり、将来のリリースでサポートされなくなる可能性があります。このため、次回のソフトウェアまたはハードウェアのアップグレードでは、ベンダー・クラスタ・ソリューションを使用しないように移行することをお薦めします。
  8. ハードウェアおよびオペレーティング・システム環境が正しく構成されていることを確認するには、クラスタ検証ユーティリティ(CVU)を実行します

    ノート:

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

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

ステップ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/12.1.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