clone.plを使用したOracle Databaseホームのクローニング

clone.plスクリプトを使用してOracleホームをクローニングする方法について説明します。

ノート:

  • clone.plスクリプトを使用するこの手順は、Oracle Database 19c以降で非推奨となり、将来のリリースで削除される可能性があります。したがって、データベースをクローニングするには、clone.plではなく、データベース・インストーラで使用可能なソフトウェアのみのインストール・オプションを使用することをお薦めします。
  • クローニング時に、Oracle Universal Installer (OUI)により、root権限を必要とするスクリプトの実行を求められます。
  1. クローニングするOracle Databaseが正常にインストールされていることを確認します。

    これは、インストール・セッションのinstallActionsdate_time.logファイルを確認することで行えます。通常、このファイルは/u01/app/oracle/oraInventory/logsディレクトリにあります。

    パッチをインストールする場合、次のようにしてパッチのステータスをチェックします。

    $ cd $ORACLE_HOME/OPatch

    $ORACLE_HOME/OPatch$PATHに含めます。

    $ opatch lsinventory
    アウトオブプレース・パッチ適用にOPatchおよびOPatchAutoを使用すると、引き続き非推奨になります。
  2. このOracleホームに関連するすべてのプロセスを停止します。
  3. Oracleホーム(Oracleベースではない)ディレクトリを含むZIPまたはTARファイルを作成します。

    たとえば、元のOracleインストールがパス/u01/app/oracle/product/23.0.0/dbhome_1に存在する場合、次のコマンドを実行してdbhome_1ディレクトリのZIPファイルを作成します。

    # zip -r dbhome_1.zip /u01/app/oracle/product/23.0.0/dbhome_1

    TARコマンドを使用することもできます。たとえば:

    # tar -cvf dbhome_1.tar /u01/app/oracle/product/23.0.0/dbhome_1

    Oracleベース・ディレクトリ内のadminfast_recovery_areaおよびoradataの各ディレクトリは除外します。これらのディレクトリは、後で新しいデータベースを作成するときに、ターゲットのインストールで作成されます。

  4. ZIPまたはTARファイルをターゲット・コンピュータのルート・ディレクトリにコピーします。ファイル転送プロトコル(FTP)を使用する場合は、バイナリ・モードでのみZIPまたはTARファイルを転送してください。
  5. 次のコマンドを使用してZIPまたはTARファイルのコンテンツを抽出します。
    # unzip -d / dbhome_1.zip
    # tar -xvf dbhome_1.tar
  6. 必要に応じて、Oracle Databaseホームの所有権をOracleインベントリ・グループ(oinstall)に属するOracle Databaseインストール所有者ユーザー(oracle)に変更します。
    # chown -R oracle:oinstall /u01/app/oracle/product/23.0.0/dbhome_1
  7. ターゲット・コンピュータで、解凍したOracleベース・ホーム・ディレクトリにディレクトリを変更し、解凍したORACLE_BASE_HOME/network/adminディレクトリに存在しているすべての.ora (*.ora)ファイルを削除します。

    ORACLE_BASE_HOMEパスを出力するには、次を実行します。

    $ setenv ORACLE_HOME /u01/app/oracle/product/23.0.0/dbhome_1
    $ cd $ORACLE_HOME/bin
    $ ./orabasehome
  8. 解凍したOracleペース・ホーム・ディレクトリから不要なファイルを削除します。

    解凍したOracleベース・ホーム・ディレクトリには、ソースOracleホームにのみ関連するファイルが含まれています。次の例では、解凍したOracleベース・ホーム・ディレクトリからこれらの不要なファイルを削除する方法を示します。

    ORACLE_HOME/network/adminディレクトリから.oraファイルを削除し、ORACLE_HOME/dbsディレクトリから古いデータベース・エントリを削除します。

    # cd /u01/app/oracle/product/23.0.0/dbhome_1/
    # rm -rf network/admin/*.ora
    # rm dbs/old_database_entries
    
  9. $ORACLE_HOME/clone/binディレクトリで、解凍したOracleホームのclone.plを実行します。

    次の構文を使用します(構文に1つ以上の拡張Oracle Databaseグループを含めることもできます)。

    $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clone/bin/clone.pl ORACLE_BASE="target_oracle_base" ORACLE_HOME="target_oracle_home" OSDBA_GROUP=OSDBA_privileged_group OSOPER_GROUP=OSOPER_privileged_group OSBACKUPDBA_GROUP=OSBACKUPDBA_privileged_group OSDGDBA_GROUP=OSDGDBA_privileged_group OSKMDBA_GROUP=OSKMDBA_privileged_group OSRACDBA_GROUP=OSRACDBA_privileged_group -defaultHomeName

    たとえば:

    $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clone/bin/clone.pl ORACLE_BASE="/u01/app/oracle" ORACLE_HOME="/u01/app/oracle/product/23.0.0/dbhome_1"
    OSDBA_GROUP=dba OSOPER_GROUP=oper OSBACKUPDBA_GROUP=backupdba OSDGDBA_GROUP=dgdba OSKMDBA_GROUP=kmdba OSRACDBA_GROUP=racdba -defaultHomeName

    ノート:

    • このコマンドでオペレーティング・システム・グループのパラメータを設定しない場合、clone.plではソース・ホームのオペレーティング・システム・グループ値が使用されます。

    • コマンド・オプション・フラグの詳細は、$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clone/bin/clone.pl -helpコマンドを実行してください。

    OUIが起動し、cloneActionstimestamp.logファイルにクローニング・アクションを記録します。通常、このログ・ファイルは、/u01/app/oracle/oraInventory/logsディレクトリにあります。
  10. 新規データベースの接続情報を構成するには、次のコマンドを使用してNet Configuration Assistantを実行します。
    $ cd $ORACLE_HOME/bin
    $ ./netca
  11. 新しくクローニングされたOracleホームに新しいOracle Databaseを作成するには、次のコマンドを使用してDatabase Configuration Assistantを実行します。
    $ cd $ORACLE_HOME/bin
    $ ./dbca