スクリプトを使用したOracle Database 23aiのダウングレード
ダウングレードを自動化するために、dbdowngradeユーティリティ・スクリプトが提供されています。以前のリリースと同様に、必要に応じてcatdwgrd.sqlを手動で実行することもできます。
- Dbdowngradeを使用した以前のリースへのOracle Databaseのダウングレード
以前のデータベース・リリースにダウングレードするには、ダウングレード・スクリプトdbdowngradeを実行することをお薦めします。 - catdwgrd.sqlを使用したOracle Databaseの手動ダウングレード
Oracle Databaseを手動でダウングレードする場合、または過剰なスレッドについて心配している場合は、手動でcatdwgrd.sqlスクリプトを実行できます。
dbdowngradeを使用したOracle Databaseの以前のリリースへのダウングレード
以前のデータベース・リリースにダウングレードするには、ダウングレード・スクリプトdbdowngradeを実行することをお薦めします。
Oracleはダウングレード・ユーティリティ・スクリプトdbdowngradeを提供しています。dbdowngradeユーティリティを使用すると、ダウングレードに適切な値が設定され、ダウングレードの開始方法が簡略化されます。具体的には、catcon.plへの基礎となるコールが推奨値を使用することが保証されるため、過剰なスレッドが生成されるために発生するエラーが削減されます。この機能は、マルチテナント・アーキテクチャ(CDB)データベースのダウングレードに特に役立ちます。ダウングレードに使用されるリソースの数を制御する場合は、以前のリリースと同様にcatdwgrd.sqlスクリプトを手動で実行できます。以前のデータベース・リリースにダウングレードすると、その以前のリリースに対するリリース更新を適用できます。
dbdowngradeシェル・コマンドはファイル・パス$ORACLE_HOME/bin (LinuxおよびUNIXの場合)、および%ORACLE_HOME%\bin (Windowsベースのシステムの場合)にあります。CDBをダウングレードする場合、スクリプトに引数として包含リストを指定できます。
マルチテナント・アーキテクチャ・データベース(CDB)をダウングレードする場合、dbdowngradeスクリプトには、包含リストを使用するかどうかに応じて2つの動作があります。
-
包含リストがない場合。ダウングレードは、CDBで開いているすべてのコンテナ(PDBおよびCDB)で実行されます。
CDB全体をダウングレードする場合は、包含リストなしでダウングレードを実行します。このシナリオでは開いているコンテナがすべてダウングレードされます。
dbdowngradeスクリプトを開始する前に、CDB内のすべてのPDBを手動で開く必要があります。 -
包含リストがある場合。ダウングレードは包含リスト内のPDBでのみ実行され、ダウングレード操作中に
CDB$ROOTはダウングレードされません。包含リストにリストされているPDBのセットのみをダウングレードする場合は、包含リストでダウングレードを実行します。このシナリオでは、切断および接続のアップグレードを使用する場合、包含リストにリストされているPDBのセットのみがダウングレードされます。包含リストにないCDBおよびPDBは、その後のリリースではアップグレードされたままになります。
前提条件:
- マルチテナント・コンテナ・データベース(CDB)内のすべてのデータベース、またはCDB内の1つのプラガブル・データベース(PDB)をダウングレードできます。
COMPATIBLEパラメータを増やした後、データベースのダウングレードはできません。- アップグレード元のリリースにのみダウングレードできます。
- 包含リストなしでダウングレードする場合、
dbdowngradeスクリプトを実行する前にすべてのPDBコンテナを開く必要があります。
dbdowngradeスクリプトの実行結果として、ユーティリティはcatdwgrdおよびcatcon.plを実行します。これらのスクリプトは、ダウングレードするリリースの推奨値を使用してダウングレードを実行します。
これらのスクリプトはログ・ファイルを作成します。-l filepathを指定してdbdowngradeを実行すると(filepathはログ・ファイルを作成するパス)、dbdowngradeによって指定したディレクトリが作成され、そこにログ・ファイルが配置されます。たとえば:
./dbdowngrade -l /databases/downgrade/logs
ログ・ファイルのディレクトリを指定しない場合、ダウングレード・スクリプトによって生成されるログ・ファイルは、次の3つのオプションのうち最初に見つかったディレクトリの下に、優先順位に従って配置されます。
-
orabasehomeコマンドで識別されるOracleベース・ホーム -
orabaseコマンドで識別されるOracleベース・ホーム -
oracle_homeコマンドで識別されるOracleホーム
$ $ORACLE_HOME/bin/orabasehome
/u01/app/oracle/product/23.0.0/dbhome_1この例では、$ORACLE_BASEディレクトリは/u01/app/oracle/product/23.0.0/dbhome_1で、ログは/u01/app/oracle/product/23.0.0/dbhome_1/cfgtoollogs/downgradeにあります。ディレクトリでは、ログ・ファイルの先頭に文字列catdwgrdが付きます。
dbdowngradeスクリプトの実行方法をさらに管理するには、次の追加オプションを指定できます。
-d directory-pathcatdwgrd.sqlファイルを格納するディレクトリ・パス(directory-pathで定義)を指定します。-ecatdwgrd.sqlの実行中にエコーをオフにすることを指定します(デフォルトはonに設定されています)。-n numberdbdowngradeコマンドで使用するパラレル・プロセスの数を指定します。デフォルトでは、プロセスの数はCPUの数を2で割った数(cpu_count/2)になります。-b log-file-name-base手動ダウングレード・スクリプトcatdwgrdによって生成されたログ・ファイルに別のベース・ファイル名(変数log-file-name-baseに指定する値)を指定します。別のベース・ファイル名を指定しない場合、デフォルトのファイル・ベース名はcatdwgrdです。-hdbdowngradeでコマンド・オプションのリストを表示するように指定します。dbdowngadeスクリプトは、コマンド・オプションを画面に出力して終了します。
ノート:
-
読取り/書込みのOracleホーム: コマンド
orabaseconfigおよびorabasehomeは、両方ともORACLE_HOMEの環境設定を返します。 -
読取り専用Oracleホーム:コマンド:
orabaseconfigは、パス$ORACLE_BASE/homes内のOracleベースの読取り専用パス構成を返します。
関連トピック
catdwgrd.sqlを使用したOracle Databaseの手動ダウングレード
Oracle Databaseを手動でダウングレードする場合、または過剰なスレッドについて心配している場合は、手動でcatdwgrd.sqlスクリプトを実行できます。
catdwgrd.sqlスクリプトを使用して、Oracle Databaseをサポートされている以前のメジャー・リリースまたは以前のリリース更新にダウングレードできます。
Oracle Database 23aiからOracle Database 21cにダウングレードする場合、マルチテナント・コンテナ・データベース(CDB)またはCDB内の1つのプラガブル・データベース(PDB)にあるすべてのデータベースをダウングレードできます。Oracle Database 12cより前のOracle Databaseリリースでは、マルチテナント・アーキテクチャを使用しませんでした。
ノート:
Oracle Database 21c以降、非CDBアーキテクチャはサポートされなくなりました。非CDBをアップグレードしてPDBに変換した場合、可能なのはPDBへのダウングレードのみです。非CDBからPDBへの変換は元に戻せません。Oracle Database 23ai以降では、Oracle Label Securityがサポートされなくなりました。
このプロシージャの完了時に、データベースがダウングレードされます。