Oracle Databaseのアップグレード処理のテスト

Oracle Databaseのアップグレードのテスト計画には、これらのテスト手順が含まれる必要があります。

アップグレード前の処理、アップグレード処理およびアップグレード後の処理のすべてをテストするデータベース環境の完全な作業用コピーを作成することをお薦めします。

現行の本番Oracle Databaseに影響を与えないテスト環境を作成できます。たとえば、Oracle Data Guardでは、フィジカル・スタンバイ・データベースおよびスナップショット・スタンバイ・データベースの作成が可能です。

テスト環境は、選択するアップグレード方法によって異なります。

  • DBUAを使用する場合または手動アップグレードを実行する場合は、現行の本番データベースのテスト・バージョンを作成します。

  • データ・ポンプ・エクスポート/インポートを使用する場合は、現行の本番データベースのサブセットを使用して、段階的にエクスポートおよびインポートします。

テスト環境を使用してデータベースのアップグレードを行います。ベスト・プラクティスは、ダウンサイズしたコピーまたはテスト・データに対してではなく、アップグレードするデータベースの正確なコピーに対してアップグレード処理のテストを実行することです。正確なコピーを実現できない場合は、テスト環境に移動する代表的なデータのサブセットを慎重に選択し、そのデータでアップグレードをテストします。

参照:

優先度リスト・エミュレーションを使用したアップグレードのテストの例

マルチテナント・アーキテクチャのOracle Databaseにパラレル・アップグレード・ユーティリティを使用してアップグレード・エミュレーションを実行し、アップグレードを実行する前に優先度リストや他のパラメータ設定をテストできます。

マルチテナント・アーキテクチャのOracle DatabaseシステムのOracle Database 12cリリース2 (12.2)以上では、優先度リストを使用して、特定のPDBをアップグレードまたは除外したり、特定のアップグレード優先度順を設定できます。優先度エミュレーションを使用してパラレル・アップグレード・ユーティリティを実行することで、実際にアップグレードを実行せずに優先度リストをテストできます。パラレル・アップグレード・ユーティリティのエミュレーション機能を使用して、優先度リストを使用するアップグレード計画をテストします。

アップグレード・エミュレーション・テストの準備

エミュレーションを実行する前に、ソースおよびターゲットのアップグレードの場所を設定して、実際のアップグレードを準備する場合と同じようにデータベースを準備する必要があります。アップグレードは実際には発生しませんが、パラレル・アップグレード・ユーティリティによって、実際のアップグレードがどのように実行されるかを示したログ・ファイルが生成されます。

ノート:

-Eパラメータを使用してエミュレーション・モードでパラレル・アップグレード・ユーティリティを実行することで、優先度リストがどのように実行されるかをテストしたり、他のアップグレード・パラメータの選択がアップグレード中にどのように実行されるかをテストできます。たとえば、-nおよび-Nパラメータを使用して行うリソース割当ての選択がどのように実行されるかについて、詳細情報を取得するアップグレード・エミュレーションを実行できます。

優先度リスト・エミュレーションを実行するための構文

パラレル・アップグレード・ユーティリティで通常使用するパラメータ設定をどれでも使用できます。ただし、優先度リストを作成する必要があり、パラレル・アップグレード・ユーティリティを-Eパラメータとともに実行してアップグレード・エミュレーションを実行するように設定するときに、-Lパラメータを使用してそのリストを呼び出す必要があります。

次に、優先度リスト・エミュレーションを使用してパラレル・アップグレード・ユーティリティを実行するために最低限必要な構文の例を示します(priority_list_nameは優先度リスト・ファイルの名前)。


catctl -E -L priority_list_name catupgrd.sql

例2-6 優先度リスト・エミュレーションを使用したパラレル・アップグレード・ユーティリティの実行の例

次の例では、plist.txtという名前のこの優先度リストを使用します。

1,CDB$ROOT
2,PDB$SEED
3,CDB1_PDB2
4,CDB1_PDB4
4,CDB1_PDB3
5,CDB1_PDB5
5,CDB1_PDB1

次のコマンドでは、この優先度リストを呼び出してパラレル・エミュレーションを実行します。

$ORACLE_HOME/perl/bin/perl catctl.pl -L plist.txt -E -n 4 -N 2 catupgrd.sql

このコマンドでは、次のパラメータ設定を使用します。

  • -Eでは、パラレル・アップグレード・ユーティリティによってアップグレード手順をエミュレーション・モードで実行するように指定します。

  • -n 4では、アップグレードで4つのプロセスを割り当ててパラレル・アップグレード操作を実行するように指定します。

  • -N 2では、アップグレードで2つのSQLプロセッサを実行してPDBをアップグレードするように指定します。同時実行されるPDBアップグレードの最大数は、-Nの値で割られた-nの値になるため、このアップグレードでは、最大2つの同時PDBアップグレードが実行されます。

  • -Lでは、アップグレード優先度を設定するためにコマンドで読み取る優先度リストを指定します。

パラレル・アップグレード・ユーティリティでエミュレートされたアップグレードを実行すると、実際のアップグレード中に表示されるものと同じ出力が画面に表示されます。

アップグレード・エミュレーションが完了すると、ログ・ファイル(catctl_prority_run.list)が生成されますが、これはデフォルトのログ・ディレクトリに格納されるか、-lパラメータで指定したログ・ディレクトリの場所に格納されます。この例では、他のログ・ディレクトリを指定せず、CDB1というコンテナ・データベースでアップグレードを実行するため、出力は、パスOracle_base/cfgtoollogs/CDB1/runに配置されます(Oracle_baseはアップグレードを実行するユーザーのOracleベースで、CDB1はアップグレードを実行するコンテナ・データベース(CDB)の名前です)。

ログ・ファイルcatctl_priority_run.lstにはアップグレード・エミュレーション中にアップグレードがどのような優先順位で実行されたかのリストが表示されます。また、パラレル・アップグレード・ユーティリティによるPDBアップグレードのグループ化の方法を示します。実際にアップグレードを実行する前に、グループ化と優先度が含まれた優先実行を調べることができます。アップグレードによって生成されるログ・ファイルは、アップグレードが完了した後の画面にも表示されます。

アップグレード・ログの最後に、CDB$ROOTが最初にアップグレードされることが示されます。CDB$ROOTのアップグレードの完了後、パラレル・アップグレード・ユーティリティでは、優先度リストの優先度設定に従って、次のPDBの同時アップグレードが実行されます。

  1. PDB$SEEDおよびCDB1_PDB2。出力ログは、PDB$SEEDの場合、pdb_seedとして指定されているログ識別子(ログID)で、CDB_1PDB2の場合、ログID mayapdb2で生成されます

  2. CDB1_PDB3およびCDB1_PDB4。ログIDは、mayapdb3およびmayapdb4として指定されます

  3. CDB1_PDB5およびCDB1_PDB6。ログIDは、mayapdb5およびmayapdb6として指定されます

  4. CDB1_PDB1。ログIDは、mayapdb1として指定されます。

Oracle Call Interface (OCI)およびプリコンパイラ・アプリケーションのアップグレード

Oracle Databaseの新しいリリースで使用するすべてのOracle Call Interface (OCI)およびプリコンパイラ・アプリケーションをアップグレードします。

現行の本番データベースをアップグレードする前に、これらのアプリケーションをテスト・データベースでテストすることをお薦めします。