パラレル・アップグレード・ユーティリティを使用した手動アップグレード
手動で実行および管理するスクリプトを使用してアップグレードを実行するには、パラレル・アップグレード・ユーティリティ(catctl.pl
)を使用できます。
- Oracle Databaseのパラレル・アップグレード・ユーティリティについて(CATCTL.PLおよびDBUPGRADE)
パラレル・アップグレード・ユーティリティ(catctl.pl
、およびdbupgrade
スクリプト)によって、特定の順序でアップグレードを実行する必要のないコンポーネントを同時にアップグレードできます。 - パラレル・アップグレード・ユーティリティを実行するための一般的なステップ
参照してOracle Databaseのパラレル・アップグレード・ユーティリティの使用方法の概要を把握してください。 - パラレル・アップグレード・ユーティリティ(catctl.pl)のパラメータ
パラレル・アップグレード・ユーティリティ(catctl.pl
)の実行方法を制御します。これらの引数を使用してdbupgrade
シェル・コマンドを実行することもできます。 - パラレル・アップグレード・ユーティリティの使用例
この例を使用して、パラレル・アップグレード・ユーティリティを手動で実行してアップグレードを実行する方法を理解してください。
Oracle Databaseのパラレル・アップグレード・ユーティリティについて(CATCTL.PLおよびDBUPGRADE)
パラレル・アップグレード・ユーティリティ(catctl.pl
、およびdbupgrade
スクリプト)によって、特定の順序でアップグレードを実行する必要のないコンポーネントを同時にアップグレードできます。
Oracle Database 12cリリース1 (12.1)には、パラレル・アップグレード・ユーティリティcatctl.pl
が導入されています。このユーティリティでは、データベース・ディクショナリをパラレルにロードし、データベースをアップグレードするために複数のSQLプロセスを使用することで、アップグレードの実行にかかる合計時間を短縮します。コンポーネントのパラレル・アップグレードを実行することで、CPU容量を十分に活用できます。手動によるアップグレードとDatabase Upgrade Assistant (DBUA)を使用して実行するアップグレードの両方でアップグレード処理を簡易化するための改善を引き続き行います。DBUAおよび手動アップグレード手順では、新しいパラレル・アップグレード・ユーティリティを活用します。
シェル・コマンド、dbupgrade
を実行できます。このコマンドはcatctl.pl
をPerlから実行する必要がなく、コマンド・ラインから開始します。
dbupgrade
シェル・コマンドはファイル・パス$ORACLE_HOME/bin
(LinuxおよびUNIXの場合)、および%ORACLE_HOME%\bin
(Windowsの場合)にあります。catctl.pl
に有効なコマンド引数をシェル・コマンドに指定できます。コマンドは新しいOracleホーム・パスから直接実行するか、またはユーザー環境変数を設定してそのファイル・パスをポイントします。
たとえば:
デフォルト値による実行:
$ ./dbupgrade
/tmp
に配置されたログ・ディレクトリを指定して実行:
$ ./dbupgrade -l /tmp
優先度リストを使用して、パラレル・アップグレード・ユーティリティを実行することもできます。たとえば:
$ ./dbupgrade -L priority_list_name
優先度リストを使用する場合は、アップグレードでPDBの特定のリストを含めたり除外できます。
$ ./dbupgrade -E
パラレル・アップグレード・ユーティリティを実行するための一般的なステップ
参照してOracle Databaseのパラレル・アップグレード・ユーティリティの使用方法の概要を把握してください。
パラレル・アップグレード・ユーティリティ(catctl.pl
、これはシェル・コマンドdbupgrade
を使用して起動します)はデータ・ディクショナリとコンポーネントを並行でロードします。並行でロードすると全体的なアップグレード時間が短縮されます。パラレル・アップグレード・ユーティリティを実行する前に、アップグレード前に通常行うデータベースのバックアップ手順に従います。また、前提条件として、preupgrade
句を使用してAutoUpgradeを実行し、アップグレードを続行する前にデータベース管理者が対処する必要がある問題を特定する必要があります。
パラレル・アップグレード・ユーティリティを使用してデータベースをアップグレードするための一般的なステップは次のとおりです。
- 現行のデータベースをバックアップします。
- 新しいリリースのOracle Databaseソフトウェアをインストールします。
-
ソース・データベースで
preupgrade
パラメータを指定してAutoUpgradeを実行し、AutoUpgradeで修正されない問題を修正します。 - 現在のデータベースを停止します。
- 新しいリリースのデータベース・ソフトウェアにアクセスするように新しいOracleホーム環境を設定し、ディレクトリ
ORACLE_HOME/rdbms/admin
からSQL*Plusを起動します。 SYSDBA
システム権限を使用してユーザー・アカウントにログインし、アップグレードするデータベースに接続します。CONNECT / AS SYSDBA
-
データベースをアップグレード・モードで起動します。構成タイプに応じたコマンドを使用します。
SQL> startup upgrade; SQL> alter pluggable database all open upgrade;
ノート:
UPGRADE
キーワードは、アップグレード用に環境を準備する操作を実行します。起動コマンドで
PFILE
オプションを使用して、初期化パラメータ・ファイルの場所を指定する必要があります。データベースをアップグレード・モードで起動すると、
catctl.pl
スクリプトを実行するまでは、固定ビューへの問合せのみ、エラーにならずに実行できます。catctl.pl
を実行するまでは、PL/SQLの使用を試みたり、他のビューに問合せを実行しようとすると、エラーが返されます。サポートが終了した初期化パラメータを示すエラーが表示された場合は、そのサポートが終了した初期化パラメータをノートにとり、アップグレードを継続します。次回、データベースを停止したときに、そのサポートが終了した初期化パラメータを削除します。
-
SQL*Plusを終了します。
-
新しいOracleホームからパラレル・アップグレード・ユーティリティを実行します。
ユーティリティはシェル・コマンド(LinuxおよびUnixでは
dbupgrade
、Microsoft Windowsの場合はdbupgrade.cmd
)として、またはPerlコマンド(catctl.pl
)として実行できます。たとえば、LinuxおよびUnixの場合は次のようにします。
cd $ORACLE_HOME/bin ./dbupgrade
たとえば、Microsoft Windowsでは次のように指定します。
cd %ORACLE_HOME%\bin dbupgrade
パラレル・アップグレード・ユーティリティによって、アップグレード処理が開始されます。
ノート:
パラレル・アップグレード・ユーティリティはアップグレードを実行するために他のファイルを使用します。LinuxおよびUnixシステムでは、これらのファイルには
catconst.pm
、catcom.pm
、sqlpatch
、sqlpatch.pl
またはsqlpatch.pm
およびorahome
が含まれます。Windowsシステムでは、これらのファイルにはorahome.exe
が含まれます。これらのファイルを変更または削除しないでください。
関連項目
パラレル・アップグレード・ユーティリティ(catctl.pl)のパラメータ
パラレル・アップグレード・ユーティリティ(catctl.pl
)の実行方法を制御します。これらの引数を使用してdbupgrade
シェル・コマンドを実行することもできます。
ノート:
シェル・コマンド・ユーティリティdbupgrade
はcatctl.pl
を開始します。dbupgradeユーティリティはORACLE_HOME/bin
ディレクトリにあります。コマンド・プロンプトでシェル・コマンド・ユーティリティを使用して、パラレル・アップグレード・ユーティリティを起動できます。デフォルト値を使用してユーティリティを実行するか、catctl.pl
の入力パラメータを使用してパラレル・アップグレード・ユーティリティの引数を指定できます。
表4-1 パラレル・アップグレード・ユーティリティ(catctl.pl)のパラメータ
パラメータ | 説明 |
---|---|
|
アップグレードするPDBの空白区切りの包含リストを指定します。たとえば、PDB1、PDB2、PDB3およびPDB4のあるOracle Multitenantデプロイメントで、PDB1とPDB2を含めながら、指定しないPDBを除外できます。PDB1とPDB2はアップグレードされますが、PDB3とPDB4はアップグレードされません。 LinuxおよびUNIX(一重引用符を使用):
Windows (二重引用符を使用):
|
|
アップグレードするPDBの空白区切りの除外リストを指定します。たとえば、PDB1、PDB2、PDB3およびPDB4のあるOracle Multitenantデプロイメントで、除外リストを使用してPDB1とPDB2を除外しながら、指定しないPDBを含めることができます。PDB1とPDB2はアップグレードされませんが、PDB3とPDB4はアップグレードされます。 LinuxおよびUNIX(一重引用符を使用):
Windows (二重引用符を使用):
ノート:
|
|
処理するファイルが含まれているディレクトリの場所を指定します。 |
|
スクリプトの実行中にecho OFFに設定します。デフォルトはecho ONです。 |
|
アップグレード・エミュレーションを実行できます。
アップグレード・エミュレーションを実行するには、パラレル・アップグレード・ユーティリティを実行する前にすべてのアップグレードの準備を完了してから、
|
|
以前のアップグレード・エラーを強制的にクリーンアップします。 非CDBデータベースでは、 |
|
スプール・ログ・ファイルの作成時に使用する識別子を指定します。 |
|
スプール・ログ・ファイルで使用するディレクトリの場所を指定します。 デフォルトの場所は
|
|
Oracle Database のアップグレード中に優先度リストを使用してPDBをアップグレードし、優先度リスト名を指定します。優先度リストによって、アップグレード中にデータベースの優先度ステータスが更新されます。この優先度リストは、将来のアップグレードでも維持されます。 デフォルトで、CDB$ROOTおよびPDB$SEEDデータベースは、常に最初に処理されます。これらは、優先度リストに追加されていなくても、最初に処理されます。優先度リストに含まれるすべてのPDBは、優先度リストに含まれないPDBより先に処理されます。 |
|
PDBのアップグレード中にCDB$ROOTをUPGRADEモードで維持します。 非CDBでは、このパラメータは無視されます。 CDBのアップグレードでこのパラメータ設定を使用すると、CDBとそのすべてのPDBがアップグレード・モードになり、合計アップグレード時間が短縮できます。ただし、CDBとそのすべてのPDBがアップグレードされるまで、どのPDBも起動できません。 デフォルトでは、 |
|
パラレル操作で使用する処理の数を指定します。 非CDBの場合: マルチテナント・アーキテクチャ・データベース(CDB)の場合: 同時にアップグレードされるPDBの数は
非CDBの場合: マルチテナント・アーキテクチャ・データベース(CDB)の場合: |
|
データベースをアップグレードする時に使用するSQL処理の数を指定します。 非CDBでは、このパラメータは無視されます。 CDBでは、最大値は8です。最小値は1です。デフォルト値は2です。 |
|
指定したフェーズから再開します。アップグレードを再実行する場合、正常に完了しているフェーズは再開されません。 |
|
指定したフェーズから停止します。 |
|
失敗したフェーズからアップグレードを再開します。実行されていないアップグレード・フェーズだけが再実行されるように、 |
|
セッションを初期化するSQLスクリプトを指定します。 |
|
パラレルではなく、シリアル・アップグレードを指定します。 Oracle Database 12.2以降では、 |
|
ユーザー・スキーマベースの表領域をオフラインにします。 |
|
ユーザー名を指定し、パスワードを要求します。 |
|
フェーズのみを表示します。 |
|
|
|
たとえば、1に設定する場合、-Z 1を入力します。 |
パラレル・アップグレード・ユーティリティの使用例
この例を使用して、パラレル・アップグレード・ユーティリティを手動で実行してアップグレードを実行する方法を理解してください。
パラレル・アップグレード・ユーティリティ(catctl.pl
)は、AutoUpgradeおよびDBUAと統合されています。catctl.pl
Perlスクリプトでは、クラシック・アップグレードを使用してCDB$ROOT
をアップグレードします。パラレル・アップグレード・ユーティリティは、コマンドライン・スクリプトdbupgrade
を使用して手動で実行することもできます。コマンドライン・パラメータを使用してパラレル・アップグレード・ユーティリティを実行し、アップグレードの実行方法を指定します。たとえば、パラレル操作を使用せずにシリアル・モードでユーティリティを実行するには、-n 1
オプションを指定します。
例4-1 CDBおよび非CDBでのパラメータを使用したパラレル・アップグレード・ユーティリティの実行
パラレル・アップグレード・ユーティリティの実行時に-n 4
オプションを使用すると、アップグレード処理によってcatupgrd0.log
、catupgrd1.log
、catupgrd2.log
およびcatupgrd3.log
が作成されます。すべてのcatupgrd
#.log
ファイルをチェックして、アップグレードが成功したことを確認してください。アップグレードに失敗し、問題を修正してパラレル・アップグレード・ユーティリティを再実行した場合、以前のログ・ファイルは上書きされます(-l
パラメータを使用して別のログ・ディレクトリを指定した場合を除く)。
たとえば:
cd $ORACLE_HOME/bin
dbupgrade -n 4 -l $ORACLE_HOME/diagnostics
例4-2 パラレル・アップグレード・ユーティリティを使用した複数のプラガブル・データベース(PDB)に対するパラレル・アップグレードの実行
これらの例では、パラメータ設定によって、パラレル・アップグレード・ユーティリティによる複数のPDBに対するアップグレードの実行方法がどのように変化するかを示します。
ノート:
-
CDB$ROOT
は、SQLプロセスの最小値が4に、最大値が8にデフォルトで設定されます -
-N
のデフォルト値は2です。 -
PDB$SEED
は、アップグレード・サイクルでは常に1つのPDBとしてカウントされます -
パラレル・アップグレード・ユーティリティのパラメータ
-n
のデフォルトは、CPU_COUNT
パラメータの値です
次の例のシステムは、CPU_COUNT
の値が24であるOracle Multitenant Oracle Databaseシステムです。
パラメータ-n
および-N
の値を指定せずに(つまり、-Nのデフォルト値2を受け入れ、-n
のデフォルト値をCPU_COUNT
パラメータの値24として受け入れます)、パラレル・アップグレード・ユーティリティを実行します。次のパラレル処理が発生します。
-
12のPDBがパラレルにアップグレードされます(
CPU_COUNT
を2で割る) -
1つのPDBに対して2つのパラレル処理が実行されます
-n
の値を64に、-N
を4に指定します。次のパラレル処理が発生します。
-
16のPDBがまとめてアップグレードされます(64を4で割る)
-
1つのPDBに対して4つのパラレル処理が実行されます
-n
の値を20に、-N
を2に指定します。次のパラレル処理が発生します。
-
10のPDBがまとめてアップグレードされます(20を2で割る)
-
1つのPDBに対して2つのパラレル処理が実行されます
-n
の値を10に、-N
を4に指定します。次のパラレル処理が発生します。
-
2つのPDBがまとめてアップグレードされます(10を4で割って切捨て)。
-
1つのPDBに対して4つのパラレル処理が実行されます
-n
の値を指定せずに(つまり、-n
のデフォルト値(CPU_COUNT
パラメータの値)を受け入れます)、-N
の値を1と指定します。次のパラレル処理が発生します。
-
24のPDBがまとめてアップグレードされます(
CPU_COUNT
値を1で割る) -
1つのPDBに対して1つの処理が実行されます
-n
の値を20に指定し、-N
の値を指定しません(つまり、-N
のデフォルト値である2を受け入れます)。次のパラレル処理が発生します。
-
10のPDBがまとめてアップグレードされます(20を2で割る)
-
1つのPDBに対して2つのパラレル処理が実行されます