日本語PDF

AutoUpgrade構成ファイルの例

次の例を使用して、アップグレード時に様々な構成アクションを実行するために独自のAutoUpgrade構成ファイルを変更する方法を理解します。

AutoUpgradeの構成ファイルの作成

AutoUpgradeを使用してアップグレードを完了するには、まず、新しいリリースのOracleホームからAutoUpgradeで構成ファイルを作成します。

次の例では、パラメータsample_config_fileを使用してAutoUpgradeユーティリティが実行されます。このパラメータは、AutoUpgradeを実行しているユーザーのホームで構成ファイルを生成します。このファイルを編集すると、アップグレードの環境パスと設定およびアップグレード・プリファレンスを提供できます。構成ファイル(config)を生成するには、sample_config_fileパラメータを使用して新しいリリースのOracle DatabaseホームからAutoUpgradeを実行し、出力ファイル名を指定します。

ノート:

AutoUpgradeは定期的に更新されます。その他の例、および新規コマンドライン・パラメータやオプション、新規または拡張構成ファイルのパラメータなど、最新のAutoUpgradeリリースの詳細は、アップグレードするリリースの『Oracle Databaseアップグレード・ガイド』を参照してください。My Oracle Supportノート「AutoUpgradeツール(ドキュメントID 2485457.1)」も参照してください。このノートには、最新のAutoUpgradeの更新に関する情報が含まれています。

この例では、ユーザーoracleが以前のリリースのOracleホームの場所に移動します。この例ではOracle Database 19cです。

cd /u01/app/oracle/product/19.0.0/

次に、OracleユーザーがOracle Database 23cのOracleホームからAutoUpgradeを起動し、ユーザー・ホーム・ディレクトリ/home/oracleに構成ファイルを作成します。

java -jar /u01/app/oracle/product/23/rdbms/admin/autoupgrade.jar -create_sample_file config
Created sample configuration file /home/oracle/sample_config.cfg

構成ファイルを作成したら、優先テキスト・エディタでファイルを開き、環境に必要なパラメータ設定を変更します。

cd /
vi sample_config.cfg

AutoUpgradeを使用したアップグレード時のTDEウォレット・ストアの場所の更新

AutoUpgrade構成ファイルのパラメータを使用して、アップグレード時に透過的データ暗号化(TDE)ウォレット・ストアを更新する方法について説明します。

以前のリリースでは、Oracle WalletをTDEとともに使用した場合、非推奨のsqlnet.oraのパラメータSQLNET.ENCRYPTION_WALLET_LOCATIONを使用して、既存のキーストア・ディレクトリの場所を指定していました。Oracle Database 19c以降のリリースでは、データベース初期化パラメータ・ファイル(PFILE)のWALLET_ROOTシステム・パラメータを使用してキーストアの場所を指定する必要があります。実行する必要がある操作は、ソースのOracle Databaseリリースの構成方法によって異なります。

  • ソースのOracle DatabaseリリースでWALLET_ROOTがすでに設定されている場合、AutoUpgradeによって生成されるパラメータ・ファイルでは、アップグレード時にソース・データベースからWALLET_ROOTシステム・パラメータを自動的に取得し、そのパラメータをターゲット・データベースのパラメータ・ファイルで使用します。

  • ソースのOracle Databaseリリースで初期化パラメータWALLET_ROOTが設定されていない場合は、アップグレード時にAutoUpgradeを使用してそのタスクを完了できます。

  1. 使用するディレクトリのWALLET_ROOT初期化パラメータ値を使用してオペレーティング・システムにテキスト・ファイルを作成し、必要なキーストアのタイプを作成するための構成オプションをTDE_CONFIGURATION動的初期化パラメータに指定します。たとえば、透過的データ暗号化ソフトウェア・キーストアにFILEを使用するようにTDE_CONFIGURATIONを構成すると、Oracle DatabaseによってWALLET_ROOT/tde (小文字)にソフトウェア・キーストアが作成されます。
  2. AutoUpgrade構成ファイルで、AutoUpgrade構成ファイルのパラメータadd_during_upgrade_pfileおよびadd_after_upgrade_pfileを使用して、オペレーティング・システムのそのファイルを参照し、アップグレード時にWALLET_ROOTおよびTDE_CONFIGURATIONを設定します。

たとえば、WALLET_ROOTでパス/u01/app/oracle/admin/hr/walletを使用し、透過的データ暗号化でソフトウェア・キーストアをWALLET_ROOT/tdeに格納する場合、次の行が含まれるtde-upgradeというテキスト・ファイルを作成できます。

WALLET_ROOT=/u01/app/oracle/admin/hr/wallet
tde_configuration="KEYSTORE_CONFIGURATION=FILE"

その後、AutoUpgradeでこれらのパラメータをAutoUpgrade構成ファイルに設定するように指定できます。たとえば、アップグレード中およびアップグレード後に透過的データ暗号化キーストアを設定するには、AutoUpgrade操作の一環として、ローカル構成ファイルに次の行を追加してそのテキスト・ファイルを呼び出します。

#   
#      Example local pfile configuration entries
upg1.add_after_upgrade_pfile=/usr/home/oracle/tde-upgrade
upg1.add_during_upgrade_pfile=/usr/home/oracle/tde-upgrade

2つのデータベース・エントリを持つAutoUpgrade構成ファイル

構成ファイルで複数のデータベースのアップグレード・オプションを指定する方法について説明します。

この例は、2つのデータベースのアップグレードを指定するAutoUpgrade構成ファイルです。構成ファイルは、AutoUpgradeが次のアクションを実行することを指定します。

データベース1

  • Oracle Database 12cリリース2 (12.2) CDBのインプレース・データベース・アップグレード。ソースおよびターゲットのOracleホームは、同じシステム識別子(sid=HR1)を持つ同じサーバー・ハードウェア上の同じOracleベース・ディレクトリ(Oracle Databaseインストール所有者oracle (/u01/app/oracle/)のデータベース・ホーム・ディレクトリ)を使用します。
  • アップグレード中に、CDBのすべてのPDBがアップグレードされます(pdbs=*)
  • アップグレードはただちに開始されます(start_time=now)。
  • データベース・アップグレード・ログは、パス/database/logs/hr (log_dir=/database/logs/hr)に送信されます。
  • タイムゾーンのアップグレードは、すべてのコンテナで実行されます(timezone_upg=yes)

データベース2

  • Oracle Database 18c CDBのインプレース・データベース・アップグレード。ソースおよびターゲットのOracleホームは、同じOracleベース・ディレクトリ(同じシステム識別子(sid=SALES1)を持つ同じサーバー・ハードウェア上のOracle Databaseインストール所有者oracle (/u01/app/oracle/)のデータベース・ホーム・ディレクトリ)を使用します。
  • アップグレードはただちに開始されます(start_time=now)。
  • データベース・アップグレード・ログは、パス/database/logs/sales (log_dir=/database/logs/sales)に送信されます。
  • タイムゾーンのアップグレードは、コンテナ(timezone_upg=no)では実行されません。

両方のデータベースの場合:

  • パラメータupgrade_nodeでは、ホスト名に割り当てられた別名ではなく、実際のシステム・ホスト名(nodename-1)を指定します。(キーワードlocalhostを使用して、現在のシステムを参照することもできます。)
  • グローバルAutoUpgradeログ・ファイル(ジョブ・マネージャ・ログとも呼ばれる)は、パス/database/jobmgr (autoupg_log_dir=/database/jobmgr)の下に配置されます。
#
# Global logging directory pertains to all jobs
#
global.autoupg_log_dir=/database/jobmgr      

#
# Database 1
#
upg1.source_home=/u01/app/oracle/product/12.2.0.2/dbhome_1 
upg1.target_home=/u01/app/oracle/product/19.0.0/dbhome_1 
upg1.sid=HR1                                   
upg1.start_time=now                            
upg1.pdbs=*                                    
upg1.log_dir=/database/logs/hr                 
upg1.upgrade_node=nodename1                  
upg1.run_utlrp=yes  
upg1.timezone_upg=yes 
upg1.target_version=21    

#
# Database 2
#
upg2.source_home=/u01/app/oracle/product/18.0.0/dbhome_1
upg2.target_home=/u01/app/oracle/product/19.0.0/dbhome_1
upg2.sid=SALES1
upg2.start_time=now
upg2.log_dir=/database/logs/sales
upg2.upgrade_node=nodename1
upg2.timezone_upg=no
upg2.target_version=21

Oracle Databaseアップグレードおよび移行のYouTubeチャネルで、Mike Dietrichによって示されている、同様のアップグレード・シナリオOracle Database AutoUpgrade 19c - Upgrading 2 databases in parallel (11:57)を参照できます。

AutoUpgrade構成ファイル・エントリを使用したアップグレードの標準化

AutoUpgradeを使用してアップグレード時にデータベース構成の標準化を強制する方法について説明します。

次の構成ファイルでは、AutoUpgrade構成ファイル・エントリを使用してデータベース構成を標準化する方法を確認できます。グローバルPFILEエントリは、構成ファイル内のすべてのデータベースに適用されます。ローカルPFILEエントリは、構成ファイルの特定のデータベースにのみ適用されます。これらのPFILE値の構文は、PFILE構成と同じOracleルールに従います。

#
#    Example global pfile configuration entries
#
global.del_during_upgrade_pfile=/database/pfiles/global_during_delinit.ora
global.add_during_upgrade_pfile=/database/pfiles/global_during_addinit.ora
global.del_after_upgrade_pfile=/database/pfiles/global_after_delinit.ora
global.add_after_upgrade_pfile=/database/pfiles/global_after_addinit.ora

#   
#      Example local pfile configuration entries
#
upg1.del_during_upgrade_pfile=/database/pfiles/hr_during_delinit.ora
upg1.add_during_upgrade_pfile=/database/pfiles/hr_during_addinit.ora
upg1.del_after_upgrade_pfile=/database/pfiles/hr_after_delinit.ora
upg1.add_after_upgrade_pfile=/database/pfiles/hr_after_addinit.ora

AutoUpgradeプロセス時に、ファイルduring_upgrade_pfile_dbname.oraおよびafter_upgrade_pfile_dbname.oraの両方が作成されます。これらのファイルは、アップグレード時およびアップグレード後にデータベースを起動する際に使用されます。アップグレード時またはアップグレード後にシステム・パラメータを変更する場合は、両方のファイルを変更できます。

最初にグローバルのPFILEエントリが適用され、次にジョブ接頭辞upglで指定されるローカルのPFILEエントリが適用されます。これら2つの構成ファイル内で、パラメータdel_upgrade_pfileのエントリが最初に適用され、その後にパラメータadd_upgrade_pfileのエントリが続きます。これらのPFILE構成エントリのパラメータは、PFILEのターゲットに応じてPFILE during_upgrade_pfile_dbname.oraまたはPFILE after_upgrade_pfile_dbname.oraのいずれかに直接適用されます。

処置:

  • del_during_upgrade_pfile during_upgrade_pfile_dbname.oraからエントリを削除します
  • add_during_upgrade_pfile during_upgrade_pfile_dbname.oraにエントリを追加します。
  • del_after_upgrade_pfile after_upgrade_pfile_dbname.oraからエントリを削除します
  • add_after_upgrade_pfile after_upgrade_pfile_dbname.ora.にエントリを追加します。

パラメータdel_during_upgrade_pfileおよびdel_after_upgrade_pfileによって参照されるファイルには、各行に1つのデータベース・パラメータがあります。行全体がパラメータ名の一部であるため、パラメータに接頭辞を追加できません。次に例を示します。

#
# global.del_during_upgrade_pfile
#
processes
*.open_cursors

この構成設定の結果、構成ファイルに示されている各データベースのPFILEからprocessesパラメータへのすべての参照が削除されますが、open_cursorsパラメータへの参照は削除されません。接頭辞を持つopen_cursorsのインスタンスのみが削除されます。ただし、PFILEから削除されるパラメータには、接頭辞が付いたすべてのパラメータが含まれています。たとえば、*.processesおよびinstance_name.processesは、この構文を使用して両方とも削除されます。

パラメータadd_during_upgrade_pfileおよびadd_after_upgrade_pfileによって参照されるファイルには、書式parameter=valueで各行に1つのパラメータが示されます。PFILEからエントリを削除する場合は、値フィールドを空のままにできます。パラメータの先頭に*.またはinstancename.がある場合、それらの参照は、変更されたPFILEには追加されません。既存のパラメータの値を更新するには、最初にそのパラメータを削除する必要があります。その後、必要な値のパラメータを追加できます。次に例を示します。

#
# global.add_during_upgrade_pfile
#
processes=400
*.open_cursors=250

このグローバル構成ファイル・エントリにより、構成ファイルにリストされた各データベースのPFILEに次のエントリが追加されます。

processes=400
open_cursors=250

パラメータafter_upgrade_pfile_dbnameは、アップグレード後のプロセスでデータベースSPFILEを作成するために使用されます。

一連のPDBの増分アップグレード用のAutoUpgrade構成ファイル

ソースCDBの他のPDBに影響を与えることなく、AutoUpgradeを使用してPDBのサブセットを選択的にアップグレードする方法について説明します。

このシナリオでは、ソースCDB内の他のPDBをアップグレードせずに2つの特定のPDBをアップグレードします。増分アップグレードを実行するには、指定したPDBを以前のリリースのCDBから切断してターゲット・リリースのCDBに接続した後、ターゲットCDB上の以前のリリースのPDBをアップグレードするように、構成ファイルでAutoUpgradeに指示します。切断、接続およびアップグレードするPDBをこのように選択すると、以前のリリースのCDBでPDBの増分アップグレードを実行してダウンタイムを短縮することができます。

次の構成ファイルでは、CDB CDB122をソースCDBとして識別します。ソースCDBには10のPDB (PDB1からPDB10)がありますが、アップグレードされるのはPDB1およびPDB2のみです。アップグレード時に、PDB2というPDBの名前がDEPSALESに変更され、PDB2のデータベース・ファイル名がDEPSALESに変更されます。

global.autoupg_log_dir=/home/oracle/autoupg
upg1.sid=CDB122
upg1.source_home=/u03/app/oracle/product/12.2.0/dbhome_1
upg1.target_home=/u01/app/oracle/product/21.0.0/dbhome_1
upg1.target_cdb=CDB21C
upg1.pdbs=PDB2, PDB1
upg1.target_pdb_name.PDB2=DEPSALES
upg1.target_pdb_name.PDB1=EMPLOYEES
upg1.target_pdb_copy_option.PDB2=file_name_convert=('PDB2','DEPSALES')

この構成ファイルでは、次の操作をAutoUpgradeに指示します。

  • ホーム/u03/app/oracle/product/12.2.0/dbhome_1のソースOracle Database CDB122からPDBを選択します
  • PDB PDB2およびPDB1をターゲットのOracle Database 21c Oracleホーム/u01/app/oracle/product/21.0.0/dbhome_1にアップグレードします
  • PDB2の名前をDEPSALESに変更し、新しいファイル名DEPSALESを使用してPDB2のファイルをコピーします。
  • PDB1の名前をEMPLOYEESに変更します。

スクリプト・ジョブまたはバッチ・ジョブでのAutoUpgradeの実行方法

noconsoleパラメータを使用してAutoUpgradeを呼び出し、非対話型モードで独自のスクリプトでAutoUpgradeを実行する方法について学習します。

デフォルトでは、AutoUpgradeはコンソール・モードで実行されるため、システムでAutoUpgradeジョブを実行しているときに、これらのジョブの特定の側面を監視するコマンドを実行できます。

ノート:

特定の構成ファイルに関連付けられているAutoUpgradeインスタンスは、一度に1つのみ実行できます。

例3-11

この例では、構成ファイルautoupgrade.cfgで指定された設定を使用し、noconsoleパラメータを使用してコンソールをオフにして、AutoUpgradeをデプロイ・モードで実行します。

java -jar autoupgrade.jar -config autoupgrade.cfg -mode deploy -noconsole

noconsoleモードを使用すると、ユーザー入力の要件がなくなるため、このコマンドをスクリプトに入力すると、構成ファイルで指定したアップグレードを実行できます。

AutoUpgradeによる切断/接続再配置アップグレード

切断/接続再配置機能(ホット・クローニング・アップグレードとも呼ばれる)を使用して、アップグレード前に、特定の期間にリフレッシュ可能なPDBを作成する方法を確認します。

切断/接続再配置アップグレードを、他のPDBまたは非CDBデータベースからクローンを作成する方法として使用できます。ソース・データベースが非CDBである場合、AutoUpgradeはアップグレード処理の一環として非CDBをアップグレードし、変換します。この機能は、ソース・リリースとしてOracle Database 12cリリース1 (12.1.0.2)以降のリリースと互換性があります。AutoUgradeバージョン22.5以降、AutoUpgradeは、少なくともOracle Database 12cリリース1 (12.1.0.2)のソースを使用した切断/再配置操作をサポートしています。12.1.0.2ソースが使用されている場合、デプロイ操作ではソースを読取り専用モードにし、ターゲットCDBをローカルUNDOモードにしないようにする必要があります。source_dblink parameterを指定する場合、CLONE_ONLYオプションも必要です。Oracle Databaseリリース11g (11.2)は、AutoUpgradeホット・クローニング機能のソース・バージョンとして互換性がありません。

切断/接続再配置アップグレード方法を使用するには、次の構成を完了する必要があります。

  • クローニングするデータベースに、CREATE SESSIONCREATE PLUGGABLE DATABASESELECT_CATALOG_ROLEおよびGRANT READ ON sys.enc$権限が付与されているユーザーが存在する必要があります。
  • PDBを再配置するCDBで、クローニングするデータベースを指すCDBにデータベース・リンク(@dblink)を作成する必要があります。
  • ターゲットCDBは、ソース・データベースが構成されているすべてのコンポーネントを構成しておく必要があります。そうしないと、アップグレード・プロセスは失敗します。

AutoUpgrade構成ファイルに入力する必要があるため、データベース・リンクをメモします。

次の例では、非CDBとPDBの両方について、プロセス内の各ステップを実行します。次のシナリオは、2つのホストで構成されます。

  • db-node1: ステップ1が実行されるソース・データベースのホストの場所。
  • db-node2: ステップ2が実行されるターゲット・データベースのホストの場所。

ノート:

この例では2つの別々のホストを使用しますが、この手順は単一のホストで実行することもできます。
  1. CREATE SESSIONCREATE PLUGGABLE DATABASEおよびSELECT_CATALOG_ROLE権限を、クローニングするデータベース上でユーザーに付与します。また、SYSで、ユーザーにGRANT READ ON sys.enc$も付与します。この例では、ユーザーcloneがこれらの権限を使用して作成されます

    • 非CDB:

      alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=db-node1)(PORT=1521))';
      ALTER SYSTEM REGISTER;
      CREATE USER clone IDENTIFIED BY some-password;
      GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE, SELECT_CATALOG_ROLE TO clone;
      GRANT READ ON sys.enc$ TO user;
    • PDB:

      alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=db-node1)(PORT=1521))';
      ALTER SYSTEM REGISTER; 
      CREATE USER c##clone IDENTIFIED BY some-password CONTAINER=ALL; 
      GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE, SELECT_CATALOG_ROLE TO c##clone CONTAINER=ALL;
      GRANT READ ON sys.enc$ TO c##clone CONTAINER=ALL;
      PDBでは、特定のPDB名を指定して、ユーザーを作成する範囲をCDB上の単一のPDBに制限することもできます。たとえば:
      CREATE USER c##clone IDENTIFIED BY some-password CONTAINER=PDBX; 
  2. クローニングするソース・システム上のソース・データベースを指すデータベース・リンクを作成して、PDBのクローニング先のCDBを構成します。

    次の例では、データベース・リンクがソース・データベースdb18xを指しています。

    • 非CDB

      次の例では、データベース・リンクがソース・データベースdb18xを指しています。

      CREATE DATABASE LINK db18x_link 
      CONNECT TO clone IDENTIFIED BY some-password 
      USING'(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = db-node1)(PORT = 
      1521))(CONNECT_DATA = (SERVICE_NAME = db18x)))';
    • PDB

      次の例では、データベース・リンクはCDB cdb18xのソースPDB pdbxを指しています。

      CREATE DATABASE LINK pdbxcdb18x_link 
      CONNECT TO c##clone IDENTIFIED BY some-password 
      USING'(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = db-node1) (PORT =
      1521))(CONNECT_DATA = (SERVICE_NAME = pdbx)))';
  3. AutoUpgrade構成ファイルを、クローニングするデータベースの識別に必要な情報で更新します。

    クローニングする各データベースは、ファイル名を変換するためにAutoUpgradeローカル・パラメータtarget_pdb_copy_optionを設定する必要があります。

    ノート:

    ターゲットCDBで、パラメータDB_CREATE_FILE_DESTまたはPDB_FILE_NAME_CONVERTを設定し、ターゲットCDBでこれらのパラメータを有効にする場合は、値prefix.target_pdb_copy_option=file_name_convert=NONEを設定します。ただし、構成ファイルまたはターゲットCDBのいずれかでファイル名とパスを指定しないと、アップグレードは失敗します。

    各データベースのローカル・パラメータの接頭辞を使用すると、同じ構成ファイルで非CDBおよびPDBのアップグレードを組み合せて、非CDBとPDBの両方を同じターゲットCDBに再配置できます。次に、非CDBデータベースdb18xがアップグレード用に構成され、PDB pdbxもアップグレード用に構成される構成ファイルの関連部分の例を示します。この場合、db18xのファイル名は、先頭に付加される名前をDB18xからdb18xに変更するように設定します。ファイル名は次のようになります。

    upg1.sid=db18x 
    upg1.source_home=/source/18x 
    upg1.target_home=/target/19x 
    upg1.target_cdb=cdb19x 
    upg2.sid=cdb18x 
    upg2.pdbs=pdbx 
    upg2.target_cdb=cdb19x 
    upg2.source_home=/source/18x 
    upg2.target_home=/target/19x

    各データベースにはtarget_pdb_copy_optionが設定されています。たとえば、非CDBファイル名は、先頭に付加される文字列がDB18Xからdb18xに変換されます。

    upg1.target_pdb_copy_option.db18x=file_name_convert=('DB18X', 'db18x')

    各データベースでは、ローカル・パラメータsource_dblinkをターゲットCDBで作成したデータベース・リンクに設定する必要があります。

    upg1.source_dblink.db18x=db18x_link

    一貫性を向上させるために、ローカル・パラメータstart_timesource_dblinkと組み合せてオプションのリフレッシュ率(秒)とともに使用し、データのリフレッシュ率を設定し、ジョブの開始時間をスケジュールすることもできます。次の結合したパラメータはAutoUpgradeを開始しますが、アップグレードのデプロイメントに対してAutoUpgradeの開始時から1時間40分の遅延を設定し、ソース・データベース・ファイルからターゲット・データベース・ファイルへのリフレッシュ率を20秒ごととして設定します。

    upg1.source_dblink.db18x=db18x_link 20 
    upg1.start_time=+1h40m

    source_dblinkにリフレッシュ率を設定しない場合、クローニングされたデータベースのデータベース・ファイルは、リフレッシュなしで1回のみクローニングされます。start_timeが設定されていない(アップグレードの処理に遅延がない)場合、source_dblinkリフレッシュ率値は無視されます。

  4. 切断/接続再配置デプロイメントを開始し、このタスク用に作成した構成ファイルを指定します。

    java -jar autoupgrade.jar -config config.cfg -mode deploy

例3-12 データ・ファイルに対してリフレッシュ率を使用しない非CDBおよびPDBの切断/接続再配置の構成ファイル

global.autoupg_log_dir=/home/oracle/xupg 
#database1 
upg1.sid=cdb18x
upg1.target_cdb=cdb19x 
upg1.source_home=/databases/ee/product/18x/dbhome_1 
upg1.target_home=/databases/ee/product/19x/dbhome_1 
upg1.pdbs=pdbx 
upg1.target_pdb_name.pdbx=pdbxr 
upg1.target_pdb_copy_option.pdbx=file_name_convert=('pdbx', 'pdbxr') 
upg1.source_dblink.pdbx=pdbxcdb18x_link 
#database2 
upg2.sid=db18x 
upg2.target_cdb=cdb19x 
upg2.source_home=/databases/ee/product/18x/dbhome_1 
upg2.target_home=/databases/ee/product/19x/dbhome_1 
upg2.target_pdb_copy_option.db18x=file_name_convert=('DB18X', 'db18x') 
upg2.source_dblink.db18x=db18x_link 
upg2.target_pdb_name.db18x=db18x 

例3-13 データ・ファイルに対してデプロイメント遅延およびリフレッシュ率を使用した非CDBおよびPDBの切断/接続再配置の構成ファイル

global.autoupg_log_dir=/home/oracle/xupg 
#database1
upg1.sid=cdb18x 
upg1.target_cdb=cdb19x 
upg1.source_home=/databases/ee/product/18x/dbhome_1 
upg1.target_home=/databases/ee/product/19x/dbhome_1 
upg1.pdbs=pdbx 
upg1.target_pdb_name.pdbx=pdbxr 
upg1.target_pdb_copy_option.pdbx=file_name_convert=('pdbx', 'pdbxr') 
upg1.source_dblink.pdbx=pdbxcdb18x_link 600 
upg1.start_time=+3h 
#database2 
upg2.sid=db18x 
upg2.target_cdb=cdb19x 
upg2.source_home=/databases/ee/product/18x/dbhome_1 
upg2.target_home=/databases/ee/product/19x/dbhome_1 
upg2.target_pdb_copy_option.db18x=file_name_convert=('DB18X', 'db18x') 
upg2.source_dblink.db18x=db18x_link 900 
upg2.target_pdb_name.db18x=db18x 
upg2.start_time=+3h30m

例3-14 PDBの切断/接続再配置のための単純な構成ファイル

global.autoupg_log_dir=/home/oracle/xupg #database1 
upg1.sid=cdb18x 
upg1.target_cdb=cdb19x 
upg1.source_home=/databases/ee/product/18x/dbhome_1 
upg1.target_home=/databases/ee/product/19x/dbhome_1 
upg1.pdbs=pdbx 
upg1.target_pdb_copy_option.pdbx=file_name_convert=('pdbx', 'pdbxr') 
upg1.source_dblink.pdbx=pdbxcdb18x_link
切断/接続アップグレードのその他の例は、Mike Dietrichのブログ"Upgrade Your Database Now!"およびDaniel Overby Hansenのブログ"Databases are Fun"を参照してください。これらのサイトでは、新しいユースケースの例を定期的に紹介しています。次に2つの例を付記します。

AutoUpgrade構成ファイルを使用した修正およびチェックの無視

データベースのチェックおよび修正ステップ全体をスキップするには、修正チェックリスト・ファイルから修正のrunfixフラグを読み取り、その修正のフラグをYESからSKIPに設定するようにAutoUpgradeに指示します。

AutoUpgradeがアップグレード用に自動的に実行する修正のデフォルト・リストをオーバーライドするには、ローカル構成ファイル・パラメータchecklistを使用して、AutoUpgradeに修正ステップの既存のチェックリストをロードします。ローカル・パラメータで指定するチェックリストでは、次のように事前チェック修正を設定できます。

  • YES (デフォルト): チェックを実行し、修正も実行します
  • NO: チェックを実行しますが、修正は実行しません。
  • _SKIP: チェックを実行せず、修正も実行しません。

構成ファイルでは、ローカル・パラメータchecklistを使用して、AutoUpgradeに既存のチェックリスト・ファイルを指定します。

global.autoupg_log_dir=/home/oracle/autoupg
 
upg1.sid=db12204
upg1.source_home=/databases/ee/product/12.2.0/dbhome_1
upg1.target_home=/databases/ee/product/21.1.0/dbhome_1
upg1.checklist=/home/oracle/autoupg/db12204/100/prechecks/db11204_checklist.cfg

修正チェックリスト・ファイルで、DICTIONARY_STATS修正のrunfixフラグは、このステップをスキップするように設定されています。

[SID] [db21.1.0] 
========================================== 
[container] [db21.1.0] 
========================================== 
[checkname] EXISTENCE_OF_DATAPUMP_AQ_TABLES 
[stage] PRECHECKS 
[fixup_available] YES 
[runfix] YES 
[severity] WARNING 
---------------------------------------------------- 
[checkname] DICTIONARY_STATS 
[stage] PRECHECKS 
[fixup_available] YES 
[runfix] _SKIP 
[severity] RECOMMEND 
---------------------------------------------------- 

AutoUpgradeを使用したカスタム・スクリプトの実行

デプロイ・プロセスの一環としてAutoUpgradeを使用して独自のスクリプトを実行する方法について学習します。

4つのパラメータを構成ファイルに構成すると、カスタム・スクリプトを実行できます。

  • before_action

    データベースが稼働しているときにアップグレード前のステージで、データベースをアップグレードする前に、ソースOracleホームでカスタム・スクリプトを実行します。

  • after_action

    構成ファイルで設定されたオプションに応じて、アップグレード後のステージまたはPDBアップグレードのステージで、データベースのアップグレード後にターゲットOracleホームでカスタム・スクリプトを実行します。

  • revert_before_action

    データベースがリストアされる前に、ターゲットOracleホームでカスタム・スクリプトを実行します(通常はデータベースが稼働している場合)。アップグレード・プロセスの性質上、スクリプトの起動時にデータベースを停止できることに注意してください。このスクリプトを使用して、before_actionカスタム・スクリプトによって実行されるアクションを元に戻すことができます。

  • revert_after_action

    データベースがリストアされ、データベースが稼働した後に、ソースOracleホームでカスタム・スクリプトを実行します。このスクリプトを使用して、after_actionカスタム・スクリプトによって実行されるアクションを元に戻すことができます。

これらのパラメータの詳細は、「AutoUpgradeユーティリティ構成ファイル」のパラメータの説明を参照してください。

例3-15 構成ファイルのbefore_actionおよびafter_actionの使用

次の構成ファイルconfig.cfgの例では、ローカル・パラメータbefore_actionを構成ファイルで使用して、リストア前にパス/path/to/a/でスクリプトscript1.shを実行し、ローカル・パラメータafter_actionを使用して、アップグレード後にパス/path/to/a/でスクリプトscript2.shを実行します。

構成ファイルconfig.cfgの内容:
global.autoupg_log_dir=/home/oracle/autoupg
upg1.sid=db12204
upg1.source_home=/databases/ee/product/12.2.0/dbhome_1
upg1.target_home=/databases/ee/product/19.0.0/dbhome_1
upg1.before_action=/path/to/a/script1.sh
upg1.after_action=/path/to/a/script2.sh

構成ファイルは、コマンドラインからAutoUpgradeによってコールされます。

java -jar autoupgrade.jar -config config.cfg -restore -jobs 100,101,...

これらのスクリプトはアップグレード前およびアップグレード後のステージで実行されるため、スクリプトの実行前または実行後に、GRPへのリストアが行われます。スクリプトは実際のGRPプロセス自体には影響せず、これにより、スクリプト・アクションがデータベースに影響を与える可能性がある場合に、再実行がより安全になります。

例3-16 構成ファイルのrevert_before_actionおよびrevert_after_actionの使用

次の構成ファイルconfig.cfgの例では、ローカル・パラメータrevert_before_actionを構成ファイルで使用して、リストア前にパス/path/to/a/でスクリプトscript3.shを実行し、ローカル・パラメータrevert_after_actionを使用してアップグレード後にパス/path/to/a/でスクリプトscript4.shを実行します。

global.autoupg_log_dir=/home/oracle/autoupg
upg1.sid=db12204
upg1.source_home=/databases/ee/product/12.2.0/dbhome_1
upg1.target_home=/databases/ee/product/19.0.0/dbhome_1
upg1.revert_before_action=/path/to/a/script3.sh
upg1.revert_after_action=/path/to/a/script4.sh

再度、構成ファイルを使用して、リストア・ジョブを実行するようにAutoUpgradeに指示します。

java -jar autoupgrade.jar -config config.cfg -restore -jobs 100,101,...

この場合、スクリプトはデータベースの稼働時にターゲットのOracle Databaseバイナリで実行されます。revert_before_actionによってコールされるscript3.shスクリプトは、データベースが稼働しているとき、GRPへのリストアを開始する前に実行され、revert_after_actionによってコールされるscript4.shスクリプトは、以前のリリースへのリストアが完了し、データベースが元のOracleホームで稼働した後、データベースで実行されます。