Oracle Databaseのアップグレード処理のテスト
Oracle Databaseのアップグレードのテスト計画には、これらのテスト手順が含まれる必要があります。
アップグレード前の処理、アップグレード処理およびアップグレード後の処理のすべてをテストするデータベース環境の完全な作業用コピーを作成することをお薦めします。
現行の本番Oracle Databaseに影響を与えないテスト環境を作成できます。たとえば、Oracle Data Guardでは、フィジカル・スタンバイ・データベースおよびスナップショット・スタンバイ・データベースの作成が可能です。
テスト環境は、選択するアップグレード方法によって異なります。
-
DBUAを使用する場合または手動アップグレードを実行する場合は、現行の本番データベースのテスト・バージョンを作成します。
-
データ・ポンプ・エクスポート/インポートを使用する場合は、現行の本番データベースのサブセットを使用して、段階的にエクスポートおよびインポートします。
テスト環境を使用してデータベースのアップグレードを行います。ベスト・プラクティスは、ダウンサイズしたコピーまたはテスト・データに対してではなく、アップグレードするデータベースの正確なコピーに対してアップグレード処理のテストを実行することです。正確なコピーを実現できない場合は、テスト環境に移動する代表的なデータのサブセットを慎重に選択し、そのデータでアップグレードをテストします。
- 優先度リスト・エミュレーションを使用したアップグレードのテストの例
マルチテナント・アーキテクチャのOracle Databaseにパラレル・アップグレード・ユーティリティを使用してアップグレード・エミュレーションを実行し、アップグレードを実行する前に優先度リストや他のパラメータ設定をテストできます。 - Oracle Call Interface (OCI)およびプリコンパイラ・アプリケーションのアップグレード
Oracle Databaseの新しいリリースで使用するすべてのOracle Call Interface (OCI)およびプリコンパイラ・アプリケーションをアップグレードします。
参照:
-
データベースのアップグレードのテストの詳細は、『Oracle Database Testingガイド』を参照してください。
-
データ・ポンプのエクスポートおよびインポート・ユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください。
-
フィジカル・スタンバイ・データベースおよびスナップショット・スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください。
親トピック: Oracle Databaseのアップグレードの準備
優先度リスト・エミュレーションを使用したアップグレードのテストの例
マルチテナント・アーキテクチャの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の同時アップグレードが実行されます。
-
PDB$SEED
およびCDB1_PDB2
。出力ログは、PDB$SEED
の場合、pdb_seed
として指定されているログ識別子(ログID)で、CDB_1PDB2
の場合、ログIDmayapdb2
で生成されます -
CDB1_PDB3
およびCDB1_PDB4
。ログIDは、mayapdb3
およびmayapdb4
として指定されます -
CDB1_PDB5
およびCDB1_PDB6
。ログIDは、mayapdb5
およびmayapdb6
として指定されます CDB1_PDB1
。ログIDは、mayapdb1
として指定されます。