スクリプトを使用した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-path
catdwgrd.sql
ファイルを格納するディレクトリ・パス(directory-path
で定義)を指定します。-e
catdwgrd.sql
の実行中にエコーをオフにすることを指定します(デフォルトはonに設定されています)。-n number
dbdowngrade
コマンドで使用するパラレル・プロセスの数を指定します。デフォルトでは、プロセスの数はCPUの数を2で割った数(cpu_count/2
)になります。-b log-file-name-base
手動ダウングレード・スクリプトcatdwgrd
によって生成されたログ・ファイルに別のベース・ファイル名(変数log-file-name-base
に指定する値)を指定します。別のベース・ファイル名を指定しない場合、デフォルトのファイル・ベース名はcatdwgrd
です。-h
dbdowngradeでコマンド・オプションのリストを表示するように指定します。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がサポートされなくなりました。
このプロシージャの完了時に、データベースがダウングレードされます。