8 以前のリリースへのOracle Databaseのダウングレード
Oracle Databaseのサポートされているリリースでは、最後にアップグレードしたリリースにデータベースをダウングレードできます。
たとえば、Oracle Database 12cリリース1 (12.1.0.2)を19cにアップグレードし、compatible初期化パラメータを19.1.0に変更しなかった場合、リリース12.1.0.2にダウングレードできます。
- Oracle Databaseのダウングレードがサポートされているリリース
データベースがアップグレードされる前の元のOracle Databaseのリリースに基づいて、メジャー・リリースとリリース更新またはパッチ・セット・リリースの両方をダウングレードできます。 - プライマリでのスタンバイ・データベースのダウングレードの準備
Oracle Data Guardスタンバイ・データベースを使用している場合は、スタンバイ・データベースをダウングレードするために使用できる手順をプライマリ・データベースで確認します - Oracle Databaseのダウングレード時のCOMPATIBLEパラメータの確認
アップグレード後にCOMPATIBLE
が変更された場合、Oracle Databaseをダウングレードできなくなります。 - Oracle Databaseのダウングレード前の全体バックアップの実行
サポートされている以前のリリースにダウングレードする前に、新しいOracle Databaseリリースの完全バックアップを実行することをお薦めします。 - Oracle Databaseをダウングレードする前に必要なステップの実行
アップグレード前の以前のリリースにOracle Databaseをダウングレードする前に、ここに説明されている必要な準備ステップを完了します。 - スクリプトを使用したCDBまたは非CDBのOracle Databaseのダウングレード
ダウングレードを自動化するために、Oracle Database 19c以降、dbdowngrade
ユーティリティ・スクリプトが提供されています。以前のリリースと同様に、必要に応じてcatdwgrd.sql
を手動で実行することもできます。 - 単一のプラガブルOracle Database (PDB)のダウングレード
Oracle Databaseをダウングレードする場合、CDB全体をダウングレードせずに1つのPDBをダウングレードできます。 - Oracle Application Expressが含まれるPDBのダウングレード
このプロシージャを使用すると、Oracle Application Expressが含まれるPDBをダウングレードするときにINVALID OBJECTS OWNED BY APEX_050000エラーを回避できます。 - Oracle Databaseのダウングレード後のタスク
Oracle Databaseのリリースをダウングレードした後、互換性、コンポーネントおよびサポートされるプロトコルに影響する変更により、追加のタスクを完了する必要がある場合があります。 - Oracle Databaseのダウングレードのトラブルシューティング
このトラブルシューティング情報を使用して、Oracle Databaseのダウングレード時に発生する可能性のある問題に対処します。
Oracle Databaseのダウングレードがサポートされているリリース
データベースがアップグレードされる前の元のOracle Databaseのリリースに基づいて、メジャー・リリースとリリース更新またはパッチ・セット・リリースの両方をダウングレードできます。
ダウングレードがサポートされているリリース
非CDB Oracle Databaseは、Oracle Database 19cからOracle Database 18c、Oracle Database 12cおよびOracle Database 11gリリース11.2.0.4にダウングレードできます。
PDBまたはCDBはOracle Database 18c、Oracle Database 12cリリース12.2およびOracle Database 12cリリース12.1.0.2にダウングレードできます。
ノート:
Oracle Database 12c,リリース1 (12.1)以降では、非CDBアーキテクチャは非推奨です。今後のリリースでサポートが終了する可能性があります。
次の表に、ダウングレードがサポートされているリリースに関する追加情報を示します。この表を使用する際には、「Oracle Databaseをダウングレードするときの非互換性の確認」で互換性についても確認してください。
表8-1 ダウングレードがサポートされているリリースおよびエディション
Oracle Databaseのリリースまたはエディション | ダウングレード(可/不可) | ノート |
---|---|---|
18 |
可 |
現時点では追加情報はありません。 |
12.2.0.1および12.1.0.2 |
可 |
COMPATIBLE初期化パラメータを12.1.0.2に設定した後は、データベースをダウングレードできません。 非CDBは、19から18、または12.2から12.1.0.2、または11.2.0.4 (サポートされているすべてのアップグレード・リリース)にダウングレードできます。 CDBをダウングレードする前に、またはPDBを切断してダウングレードする前に、最新のリリース更新、リリース・リビジョン、バンドル・パッチまたはパッチ・セット更新(BPまたはPSU)をインストールします。パッチは、My Oracle Supportでダウンロードできます。My Oracle Support ノート756671.1を参照して、最新のパッチ・セットを取得してください。 新しいOracle Databaseリリースの最小の互換性設定より前のリリースにダウングレードすることはできません。 |
Oracle Enterprise Manager |
不可 |
サポートされている以前のリリースにダウングレードする場合、Oracle Enterprise Managerの制御を再構成する必要があります。 アップグレードを開始する前に、 |
Oracle Database Express Edition |
不可 |
Oracle Database Express Editionからアップグレードされたデータベースをダウングレードすることはできません。 |
ダウングレード前に確認する推奨事項
サポートされている以前のリリースでは、Oracle Databaseのダウングレードについて、次の推奨事項があります。
-
マルチテナント・アーキテクチャは、マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)用のアーキテクチャ機能を提供します。マルチテナント・アーキテクチャにアップグレードし、このリリースへアップグレードした後にcompatible初期化パラメータを最大レベルに設定した場合は、アップグレード後にデータベースをダウングレードできなくなります。
-
このリリースでは、
SELECT
に加えて、新しいオブジェクト権限READ
が含まれています。アップグレード後、このオブジェクト権限の次の影響に注意してください。-
SELECT
およびREAD
オブジェクト権限を持っている場合、READ
権限は削除されます。 -
前に
READ
オブジェクト権限のみを持っていた場合、READ
オブジェクト権限はSELECT
オブジェクト権限に変換されます。
READおよびSELECTオブジェクト権限の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
-
-
アップグレードするデータベースにOracle XML DBがインストールされていない場合、ダウングレード中にOracle XML DBはアンインストールされます。たとえば、Oracle Database 11gリリース2 (11.2)とともにOracle XML DBをインストールしなかった場合、XML DBはOracle Database 12cとともにインストールされます。データベースをダウンロードする場合は、ダウングレードの一部としてOracle XML DBがアンインストールされます。Oracle XML DBはOracle Database 12cリリース1 (12.1)以降のリリースでは、デフォルトで組み込まれています。
-
Oracle Database 12cへのアップグレード時に、Database (DB) Controlリポジトリは削除されます。以前のリリースにダウングレードする場合、Database (DB) Controlを再構成してダウングレード後も使用できるようにする必要があります。
-
Oracle Enterprise Managerのダウングレードはサポートされていません。サポートされている以前のリリースにダウングレードする場合、Oracle Enterprise Managerの制御を再構成する必要があります。
プライマリでスタンバイ・データベースをダウングレードする準備
Oracle Data Guardスタンバイ・データベースを使用している場合は、スタンバイ・データベースをダウングレードするために使用できる手順をプライマリ・データベースで確認します
スタンバイ・データベースを中断することなく、データベースをダウングレードできます。Oracle Data Guard構成にフィジカル・スタンバイ・データベースまたはロジカル・スタンバイ・データベースが存在する場合にOracle Databaseをダウングレードするには、Oracle Data Guard概要および管理のOracle Data Guard構成でのデータベースのパッチ適用、アップグレードおよびダウングレードの説明に従って、ダウングレード・シナリオの手順を使用します
Oracle Databaseのダウングレード時のCOMPATIBLEパラメータの確認
アップグレード後にCOMPATIBLE
が変更された場合、Oracle Databaseをダウングレードできなくなります。
COMPATIBLE
パラメータを更新して、Oracle Databaseリリースの互換性レベルを現在のリリースに設定した場合は、以前のリリースにダウングレードできません。この問題は、新しいリリースではデータ・ディクショナリが変更されており、ダウングレードを妨げるその他の機能変更がある可能性もあるために起こります。
ダウングレードする前にデータベースのCOMPATIBLE
パラメータ設定を確認するには、次のコマンドを入力します。
SQL> SELECT name, value, description FROM v$parameter WHERE name =
‘compatible’;
ノート:
Oracle ASMディスク・グループの場合、アップグレード後にcompatible.asm
パラメータをアップグレードされたリリース値に変更した場合、前のリリースにダウングレードすると、Oracle ASMディスク・グループをマウントできません。compatible.asm
の値は、ディスク・グループをマウントできるOracle ASMの最低限のリリースを設定します。
ダウングレードの一部として、ダウングレードされたリリース・レベルに新しいディスク・グループを作成し、ダウングレードされた互換性のあるASMディスク・グループにデータをリストアする必要があります。
Oracle Databaseのダウングレード前の全体バックアップの実行
サポートされている以前のリリースにダウングレードする前に、新しいOracle Databaseリリースの完全バックアップを実行することをお薦めします。
レベル0の完全バックアップを完了する時間がない場合は、少なくともレベル1のバックアップを完了してください。
Oracle Databaseをダウングレードする前に必要なステップの実行
アップグレード前の以前のリリースにOracle Databaseをダウングレードする前に、ここに説明されている必要な準備ステップを完了します。
ダウングレードを開始する前に、データベース・リリース間の非互換性を解決しておく必要があります。たとえば、状況に応じて、ダウングレードを開始する前に、データベースのコンポーネントを無効化する必要があるかどうかを判断します。
-
データベースでOracle Database Vaultを有効化している場合は、データベースをダウングレードする前にOracle Database Vaultを無効化します。
DBA_DV_STATUSを使用して、Oracle Database Vaultが有効になっているかどうかを確認します。
SQL> SELECT * FROM DBA_DV_STATUS;
出力がTRUEの場合は、Oracle Database Vaultが有効化されているため、無効化する必要があります。
マルチテナント・アーキテクチャのOracle Databaseシステムで、
CDB$ROOT
にCDB_DV_STATUS
を使用して、CDBに接続されているすべてのPDBのOracle Database Vaultステータスを検出します。SQL> SELECT * FROM CDB_DV_STATUS;
-
統合監査が有効化されている場合は、統合監査証跡をバックアップおよび消去できます。
-
統合監査レコードが存在するかどうかを確認します。
SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL;
-
既存の監査データを表にバックアップします。たとえば:
SQL> CREATE TABLE UA_DATA AS (SELECT * FROM UNIFIED_AUDIT_TRAIL);
-
監査証跡をクリーンアップします。
EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => FALSE);
-
-
ダウングレードする前に、データベースで使用しているタイム・ゾーン・ファイルのバージョンがダウングレード対象のデータベースのOracleホームに含まれていることを確認します。
データベースで現在使用されているタイムゾーン・ファイルのバージョンを確認するには、次のコマンドを使用して
V$TIMEZONE_FILE
を問い合せます。SQL> select * from V$TIMEZONE_FILE;
たとえば:
問合せにより列
V$TIMEZONE_FILE.FILENAME
にtimezlrg_20.dat
が返されたら、対象のOracleホームにそのファイルが存在するかどうかを確認します。LinuxおよびUnix
$ORACLE_HOME/oracore/zoneinfo/timezlrg_20.dat
Windows
%ORACLE_HOME%\oracore\zoneinfo\timezlrg_20.dat
必要なタイム・ゾーン・ファイルが対象のOracleホームにない場合は次のいずれかを実行します。
-
現在のバージョンのタイム・ゾーン・ファイルをパッチとしてインストールしており、パッチ番号を覚えている場合は、その同じパッチ番号を使用して、My Oracle Support Webサイトから対象リリースに対応するタイム・ゾーン・ファイルをダウンロードします。
-
My Oracle Support Webサイトのパッチ検索機能を使用して、正しいパッチを見つけてください。入力する検索基準は次のとおりです。「製品」に「Oracle Database」、「リリース」にターゲット・リリース、そして「説明に次を含む」に「DST」
-
My Oracle Support Webサイトでパッチが見つからない場合は、Oracle Supportでサービス・リクエストを記録します。
必要なパッチを見つけてダウンロードしたら、対象のOracleホームにインストールします。
-
-
固定オブジェクトに基づいてオブジェクトを作成した場合は、これらのオブジェクトを削除して、ORA-00600エラーの発生を回避します。ダウングレード後にこれらのオブジェクトを再作成できます。
-
データベースにOracle Enterprise Managerが構成されている場合は、Enterprise Managerユーザーを削除します。
DROP USER sysman CASCADE;
ノート:
Enterprise Managerユーザーを削除すると、MGMT*
シノニムが無効になる場合があります。ダウングレードしたデータベースでOracle Enterprise Managerの制御を使用するには、Oracle Enterprise Managerを再構成する必要があります。
スクリプトを使用したCDBまたは非CDBのOracle Databaseのダウングレード
ダウングレードを自動化するために、Oracle Database 19c以降、dbdowngrade
ユーティリティ・スクリプトが提供されています。以前のリリースと同様に、必要に応じてcatdwgrd.sql
を手動で実行することもできます。
- Dbdowngradeを使用したCDBおよび非CDBのOracle Databaseのダウングレード
以前のデータベース・リリースにダウングレードするには、ダウングレード・スクリプトdbdowngrade
を実行することをお薦めします。 - catdwgrd.sqlを使用したCDBまたは非CDBのOracle Databaseの手動ダウングレード
手動スクリプトを実行する必要があるか、過度のスレッドの問題を回避する場合、手動でcatdwgrd.sql
スクリプトを実行して、サポートされているメジャー・リリースまたは以前のリリース更新にOracle Databaseをダウングレードできます。
Dbdowngradeを使用したCDBおよび非CDBのOracle Databaseのダウングレード
以前のデータベース・リリースにダウングレードするには、ダウングレード・スクリプトdbdowngrade
を実行することをお薦めします。
Oracle Database 19c以上では、ダウングレード・ユーティリティ・スクリプト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は、その後のリリースではアップグレードされたままになります。
前提条件:
-
Oracle Database 19cからOracle Database 18c、Oracle Database 12.2またはOracle Database 12.1にダウングレードする場合、マルチテナント・コンテナ・データベース(CDB)またはCDB内の1つのプラガブル・データベース(PDB)にあるすべてのデータベースをダウングレードできます。Oracle Database 12cより前のOracle Databaseリリースでは、マルチテナント・アーキテクチャを使用しませんでした。
- 包含リストなしでダウングレードする場合、
dbdowngrade
スクリプトを実行する前にすべてのPDBコンテナを開く必要があります。
dbdowngrade
スクリプトの実行結果として、ユーティリティはcatdwgrd
およびcatcon.pl
を実行します。これらのスクリプトは、ダウングレードするリリースの推奨値を使用してダウングレードを実行します。ダウングレード・スクリプトによって生成されるログ・ファイルは、次の3つのオプションのいずれかで見つかった最初のディレクトリの下に順番に配置されます。
-
orabasehome
コマンドで識別されるOracleベース・ホーム -
orabase
コマンドで識別されるOracleベース・ホーム -
oracle_home
コマンドで識別されるOracleホーム
$ $ORACLE_HOME/bin/orabasehome
/u01/app/oracle/product/19.0.0/dbhome_1
この例では、$ORACLE_BASEディレクトリは/u01/app/oracle/product/19.0.0/dbhome_1
で、ログは/u01/app/oracle/product/19.0.0/dbhome_1/cfgtoollogs/downgrade
にあります。ディレクトリでは、ログ・ファイルの先頭に文字列catdwgrd
が付きます。
ノート:
-
読取り/書込みのOracleホーム: コマンド
orabaseconfig
およびorabasehome
は、両方ともORACLE_HOMEの環境設定を返します。 -
読取り専用Oracleホーム:コマンド:
orabaseconfig
は、パス$ORACLE_BASE/homes
内のOracleベースの読取り専用パス構成を返します。
catdwgrd.sqlを使用したCDBまたは非CDBのOracle Databaseの手動ダウングレード
手動スクリプトを実行する必要があるか、過度のスレッドの問題を回避する場合、手動でcatdwgrd.sql
スクリプトを実行して、サポートされているメジャー・リリースまたは以前のリリース更新にOracle Databaseをダウングレードできます。
Oracle Database 19cからOracle Database 18c、Oracle Database 12.2またはOracle Database 12.1にダウングレードする場合、マルチテナント・コンテナ・データベース(CDB)またはCDB内の1つのプラガブル・データベース(PDB)にあるすべてのデータベースをダウングレードできます。Oracle Database 12cより前のOracle Databaseリリースでは、マルチテナント・アーキテクチャを使用しませんでした。
ノート:
Oracle Database 12cリリース1 (12.1)以上では、非CDBアーキテクチャは非推奨です。今後のリリースでサポートが終了する可能性があります。
このプロシージャの完了時に、データベースがダウングレードされます。
単一のプラガブルOracle Database (PDB)のダウングレード
Oracle Databaseをダウングレードする場合、CDB全体をダウングレードせずに1つのPDBをダウングレードできます。
Oracle Database 12cリリース2 (12.2)より新しいOracle Databaseリリースでは、個々のPDBをダウングレードできます。たとえば、アップグレードしたCDBからPDBを切断し、PDBをダウングレードした後、これを以前のリリースのCDBに接続するか、そのPDBデータベースをスタンドアロン・データベースに変換することができます。
PDBのダウングレード
この手順の例では、PDBをリリース12.1.0.2にダウングレードします。
-
PDBをDOWNGRADEモードで起動します。これを行うとき、CDBは標準モードになります。
SQL> alter pluggable database CDB1_PDB1 open downgrade;
-
dbdowngrade
ユーティリティを使用するか、catcon.pl
を使用してcatdwgrd
を手動で実行して、PDBをダウングレードします。これらの各オプションでは、ダウングレードするPDBは
PDB1
です。-
dbdowngrade
ユーティリティを使用してダウングレードします。次のようにdbdowngradeスクリプトを使用してPDBをダウングレードします。
cd $ORACLE_HOME/bin ./dbdowngrade -c 'PDB1'
-
catcon.p
を使用して、catdwgrd
によって手動でダウングレードします。次のように
catdwgrd
を実行します。$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -d $ORACLE_HOME/rdbms/admin -n 1 -l <output directory> -e -b catdwgrd -c 'PDB1' catdwgrd.sql
例では、
catdwgrd
はcatcon.pl
とともに実行されます。-d
パラメータは、catcon.pl
にcatdwgrd
の入手先を指定します。-l
パラメータは、ログ・ファイルの出力ディレクトリを指定します(rdbms/admin
ディレクトリに書き込むかわりとなります)。2つのスクリプトを同時に一緒に実行するには、-r
パラメータを使用する必要があります。ダウングレードのログ・ファイルは、Oracleベース・ホーム(コマンド
orabasehome
またはorabase
で識別されるOracleベースか、コマンドoracle_home
で識別されるOracleホーム)にこの順番で配置されます。
-
-
PDBをクローズします。
PDBのCDBからの切断
このステップでは、ダウングレードされたPDBをリリース12.2.0.1のCDBから切断します。
-
アップグレードしたCDBに接続します。
-
切断するPDBをクローズします。
SQL> alter pluggable database PDB1 close;
-
ダウングレードした12.1.0.2 PDBを切断し、変数
path
システムのパスに置き換えます。SQL> alter pluggable database PDB1 unplug into 'path/pdb1.xml';
切断が完了すると、次のレスポンスが表示されます。
Pluggable database altered
ダウングレードされた12.1.0.2 PDBの接続
このステップでは、ダウングレードされた12.1.0.2のPDBを12.1.0.2のCDBに接続します。これを行うには、このCDBでPDBを作成する必要があります。次の例は、PDB1というプラガブル・データベースの作成方法を示しています。
-
12.1.0.2のCDBに接続します。
-
12.1.0.2のPDBを接続します。
SQL> create pluggable database PDB1 using 'path/pdb1.xml';
このコマンドを実行すると、
「プラガブル・データベースが作成されました。」
が返されます。 -
PDBをアップグレード・モードで開きます。
SQL> alter pluggable database PDB1 open upgrade;
-
PDBに接続します。
SQL> alter session set container=PDB1;
-
PDBで
catrelod
を実行します。SQL> @$ORACLE_HOME/rdbms/admin/catrelod.sql
catrelod.sql
スクリプトによって、ダウングレードしたデータベース内の各データベース・コンポーネントに該当するバージョンが再ロードされます。 -
PDBで
utlrp
を実行します。SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
utlrp.sql
スクリプトは、以前INVALID
状態だったパッケージ、プロシージャ、型などのすべての既存のPL/SQLモジュールを、再コンパイルします。
Oracle Application Expressが含まれるPDBのダウングレード
このプロシージャを使用すると、Oracle Application Expressが含まれるPDBをダウングレードするときにINVALID OBJECTS OWNED BY APEX_050000エラーを回避できます。
PDBを以前のリリースにダウングレードした後、次のようなSQL文を入力してOracle Application Expressユーザーを削除します。
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -b drop_apex5
-c 'PDB1' -- --x'drop user apex_050000 cascade'
この例では、PDB名は「PDB1」
です。
Oracle Databaseをダウングレードする場合のダウングレード後の作業
Oracle Databaseのリリースをダウングレードした後、互換性、コンポーネントおよびサポートされるプロトコルに影響する変更により、追加のタスクを完了する必要がある場合があります。
- ダウングレード後のリリース更新およびその他のパッチの再適用
アップグレード後かつダウングレード前に、元のOracleホームに新しいパッチをインストールしていた場合は、ダウングレードが実行されて、catrelod.sql
が正常に完了したら、インストールしたパッチが適用されていることを確認します。 - Oracle Databaseのダウングレード後のOracle RACの再有効化
ダウングレード後、Oracle Real Application Clusters (Oracle RAC)を再有効化できます。 - Oracle Databaseのダウングレード後のOracle Database Vaultの再有効化
ダウングレード時にOracle Database Vaultを無効化するよう指示があった場合、これを実行する必要があります。 - Oracle Clusterwareの構成のリストア
構成をリストアするには、アップグレード前のリリースをリストアする必要があります。 - Oracle Databaseのダウングレード後のOracle Enterprise Managerのリストア
この項で説明されているリストア作業が必要になるのは、ダウングレードを実行する際に、Oracle Enterprise Managerがホストで構成されている場合のみです。 - 以前のリリースへのOracle APEXのリストア
Oracle Databaseのアップグレードと同時にOracle APEX (以前のOracle Application Express)もアップグレードした場合、ダウングレード後に以前のリリースに戻すステップを実行する必要があります。 - ダウングレード後のディクショナリ統計の収集
ダウンロード後に高いパフォーマンスを保証するためには、次のプロシージャを使用してディクショナリ統計を収集します。 - ダウングレード後の修正したオブジェクト統計の再収集
ダウングレード後に、Oracle Databaseで代表的なワークロードを実行し、修正されたオブジェクト統計を再収集します。 - ダウングレード後の失効しているCBO統計の再収集
Oracle Databaseのダウングレードが完了した後に、Oracle Cost-Based Optimizer (CBO)統計を再収集することをお薦めします。 - ダウングレード後のレジストリ・コンポーネントの有効性の確認
レジストリ・コンポーネントの有効性を確認し、無効なコンポーネントを特定します。
ダウングレード後のリリース更新およびその他のパッチの再適用
アップグレード後かつダウングレード前に、元のOracleホームに新しいパッチをインストールしていた場合は、ダウングレードが実行されて、catrelod.sql
が正常に完了したら、インストールしたパッチが適用されていることを確認します。
新しいパッチをインストールした場合、datapatch
ツールを実行して、ダウングレードしたデータベースにこれらのパッチを適用します。アップグレード後にOracleホームのバイナリおよびファイルを変更しなかった場合、catrelod.sql
を実行した後にdatapatch
を実行する必要はありません。ただし、新しいパッチがインストールされているかどうか疑問がある場合は、datapatch
を実行します。パッチがデータベースに適用されていることを確認するために必要な回数だけdatapatch
を実行できない安全上の懸念はありません。
Oracle Databaseのダウングレード後のOracle RACの再有効化
ダウングレード後に、Oracle Real Application Clusters (Oracle RAC)を再度有効にできます。
ダウングレードにCLUSTER_DATABASE=FALSE
を設定したOracle RACデータベースでのダウングレードでは、CLUSTER_DATABASE=TRUE
を再度設定し、RACクラスタ内のすべてのインスタンスから開始できるようになりました。
Oracle Databaseのダウングレード後のOracle Database Vaultの再有効化
ダウングレード時にOracle Database Vaultを無効化するよう指示があった場合、これを実行する必要があります。
Oracle Database Vaultを使用している場合、ダウングレードする前にこれを無効にするように指示されている可能性があります。ダウングレード後にOracle Database Vaultを使用するには、登録して再度有効にする必要があります。
Oracle Clusterwareの構成のリストア
構成をリストアするには、アップグレード前のリリースをリストアする必要があります。
Oracle Clusterware構成をOracle Clusterwareのアップグレード前の状態にリストアできます。新しいOracle Databaseのアップグレード処理中またはアップグレード処理後に実行した構成変更は削除され、リカバリできません。
Oracle Databaseのダウングレード後のOracle Enterprise Managerのリストア
この項で説明されているリストア作業が必要になるのは、ダウングレードを実行する際に、Oracle Enterprise Managerがホストで構成されている場合のみです。
Oracle Enterprise Managerをリストアするには、最初にOracle Enterprise Manager Configuration Assistant (EMCA)を実行してから、emdwgrd
ユーティリティを実行します。
- ダウングレード後のOracle Enterprise Managerのリストアの要件
12.1より前のリリースへのダウングレード後にOracle Enterprise Managerをリストアできるようにするには、アップグレード前にこれらの要件を満たす必要があります。 - EMCAの実行によるダウングレード後のOracle Enterprise Managerのリストア
これらのトピックを参照して、ダウングレード後にOracle Enterprise Managerをリストアするためのリストア・シナリオを選択します。 - Enterprise Manager Database Controlをリストアするためのemdwgrdユーティリティの実行
Oracle Enterprise Manager Database Controlおよびデータをリストアするには、emca -restore
の実行後にemdwgrd
ユーティリティを使用します。
ダウングレード後のOracle Enterprise Managerのリストアの要件
12.1より前のリリースへのダウングレード後にOracle Enterprise Managerをリストアできるようにするには、アップグレード前にこれらの要件を満たす必要があります。
emca -restore
を使用してOracle Enterprise Managerを以前の状態にリストアするには、次の要件を満たす必要があります。
-
アップグレードの前に、Oracle Enterprise Managerの構成ファイルおよびデータのバックアップを保存していること
-
この手順で新しいOracle Databaseリリースのホームに存在する
emca
バイナリを実行すること
Oracle Clusterwareシステムで、Oracle RACデータベースのOracle Enterprise Managerをリストアするには、emca -restore
を実行する前にsrvctl
を使用してデータベースを登録しておく必要があります。emca -restore
は、データベースのダウングレード先となる以前のOracle DatabaseリリースのORACLE_HOME/bin
ディレクトリから実行する必要があります。
適切なオプションを指定してemca -restore
コマンドを実行し、Oracle Enterprise Manager Database ControlまたはOracle Enterprise Manager Grid Controlを古いOracleホームにリストアします。
ダウングレードするデータベースが単一インスタンス・データベースか、Oracle RACデータベースか、Oracle ASMデータベースかによって、emca
の異なるオプションを指定します。
EMCAの実行によるダウングレード後のOracle Enterprise Managerのリストア
これらのトピックを参照して、ダウングレード後にOracle Enterprise Managerをリストアするためのリストア・シナリオを選択します。
- Oracle ASMがない単一インスタンスのOracle Databaseでのemcaの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースを管理します。 - Oracle ASMがないOracle RACデータベースでのEMCAの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースを管理します。 - 単一インスタンスのOracle ASMインスタンスでのEMCAの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースとストレージを管理します。 - Oracle RACインスタンス上のOracle ASMでのemcaの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースとストレージを管理します。 - Oracle ASMがある単一インスタンスのOracle Databaseでのemcaの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースとストレージを管理します。 - Oracle RACデータベースおよびOracle ASMインスタンスでのemcaの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースとストレージを管理します。
Oracle ASMがない単一インスタンスのOracle Databaseでのemcaの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースを管理します。
このコマンドを使用してEnterprise Manager Configuration Assistantを実行します。
ORACLE_HOME/bin/emca -restore db
次の情報の入力を求められます。
-
リストアするデータベースのOracleホーム
-
データベースのSID
-
リスナー・ポート番号
Oracle ASMがないOracle RACデータベースでのEMCAの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースを管理します。
この手順を使用してEnterprise Manager Configuration Assistantを実行します。
ORACLE_HOME/bin/emca -restore db -cluster
次の情報の入力を求められます。
-
リストアするデータベースのOracleホーム
-
データベースの一意の名前
-
リスナー・ポート番号
単一インスタンスのOracle ASMインスタンスでのEMCAの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースとストレージを管理します。
このコマンドを使用してEnterprise Manager Configuration Assistantを実行します。
ORACLE_HOME/bin/emca -restore asm
次の情報の入力を求められます。
-
リストアするデータベースのOracleホーム
-
Oracle ASMポート
-
Oracle ASM SID
Oracle RACインスタンス上のOracle ASMでのemcaの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースとストレージを管理します。
このコマンドを使用してEnterprise Manager Configuration Assistantを実行します。
ORACLE_HOME/bin/emca -restore asm -cluster
次の情報の入力を求められます。
-
リストアするデータベースのOracleホーム
-
Oracle ASMポート
Oracle ASMがある単一インスタンスのOracle Databaseでのemcaの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースとストレージを管理します。
このコマンドを使用してEnterprise Manager Configuration Assistantを実行します。
ORACLE_HOME/bin/emca -restore db_asm
次の情報の入力を求められます。
-
リストアするOracle DatabaseのOracleホーム
-
データベースのSID
-
リスナー・ポート番号
-
Oracle ASMポート
-
Oracle ASMホーム
-
Oracle ASM SID [+ASM]
Oracle RACデータベースおよびOracle ASMインスタンスでのemcaの実行
Enterprise Manager Configuration Assistant (emca
)を使用してデータベースとストレージを管理します。
このコマンドを使用してEnterprise Manager Configuration Assistantを実行します。
ORACLE_HOME/bin/emca -restore db_asm -cluster
次の情報の入力を求められます。
-
リストアするデータベースのOracleホーム
-
データベースの一意の名前
-
リスナー・ポート番号
-
Oracle ASMポート
-
Oracle ASM Oracleホーム
-
Oracle ASM SID [+ASM]
emca
の出力は、指定するオプションおよびプロンプトで入力する値によって様々です。Oracle RAC環境では、Oracle RACのすべてのクラスタ・メンバー・ノードでこのステップを繰り返す必要があります。
ここで、Oracle Enterprise Manager Database Controlおよびデータをリストアするためにemdwgrd
ユーティリティを実行する必要があります。
Enterprise Manager Database Controlをリストアするためのemdwgrdユーティリティの実行
Oracle Enterprise Manager Database Controlおよびデータをリストアするには、emca -restore
の実行後にemdwgrd
ユーティリティを使用します。
emdwgrd
を使用するには、次の操作を実行する必要があります。
-
ORACLE_HOMEおよび他の環境変数を、アップグレードが実行されたOracleホームを指すように設定します。
-
新しいOracle DatabaseリリースのOracleホームから
emdwgrd
ユーティリティを実行します。
次の手順は、LinuxおよびUNIX用です。これをWindowsで実行する場合は、emdwgrd
をemdwgrd.bat
に置き換えてください。
-
ORACLE_HOMEを、データベースがアップグレードされる前のOracleホームに設定します。
-
ORACLE_SIDを、アップグレード後にダウングレードされたデータベースのSIDに設定します。
-
データベースがアップグレードされる前のOracleホームを指すように、PATH、LD_LIBRARY_PATHおよびSHLIB_PATHを設定します。
-
新しいOracle DatabaseリリースのOracleホームに移動します。
cd $ORACLE_HOME/bin
-
次のいずれかの手順を使用して
emdwgrd
を実行します。-
単一インスタンス・データベースの場合は、次のコマンドを実行します。
SID
はアップグレード後にダウングレードされたデータベースのSIDで、save_directory
は、Database Controlのファイルおよびデータの保存時に選択した記憶域の場所へのパスです。emdwgrd -restore -sid SID -path save_directory -tempTablespace TEMP
-
Oracle RACデータベースの場合、クラスタ・ノード間のリモート・コピーが必要です。構成済のリモート・コピーを示す環境変数を定義します。たとえば:
setenv EM_REMCP /usr/bin/scp
その後、次のオプションを使用してemdwgrd -restoreを実行します。
emdwgrd -restore -tempTablespace TEMP -cluster -sid SID_OldHome -path save_directory
Oracleホームが共有デバイス上にある場合、-sharedを
emdwgrd
コマンドのオプションに追加します。
-
-
emdwgrd
により要求された場合は、SYSおよびSYSMANパスワードを入力します。 -
emdwgrd
が終了すると、Oracle Enterprise Manager Database Controlは古いOracleホームにダウングレードされます。
以前のリリースへのOracle APEXのリストア
Oracle Databaseのアップグレードと同時にOracle APEX (以前のOracle Application Express)もアップグレードした場合、ダウングレード後に以前のリリースに戻すステップを実行する必要があります。
データベースのダウングレード後にOracle APEXのダウングレードを完了するには、『Oracle Application Expressインストレーション・ガイド』にリストされたすべてのステップを実行して、お使いのOracle APEXのリリースを以前のリリースに戻します。戻すためのステップは、お使いのアーキテクチャが非CDBか、またはマルチテナント・アーキテクチャ(CDB) Oracle Databaseかによって異なります。
ノート:
データベースをアップグレードしたとき、同時にOracle APEXをアップグレードした場合、実行する必要があるのはこのステップのみです。
ダウングレード後のディクショナリ統計の収集
ダウンロード後に高いパフォーマンスを保証するためには、次のプロシージャを使用してディクショナリ統計を収集します。
ダウングレードしたリリースのデータ・ディクショナリ表の統計が収集されるように、データベースのダウングレード後にディクショナリ統計を収集することをお薦めします。
ノート:
ダウングレード・プロセスの後、データ・ディクショナリにはダウングレード済のディクショナリに保持されている変更が存在する可能性があることに注意してください。これらの変更は重要ではありません。ダウングレード済のデータ・ディクショナリは、以前のリリースのデータ・ディクショナリと機能的に同等です。
-
非CDBのOracle Databaseの場合:
DBMS_STATS.GATHER_DICTIONARY_STATS
プロシージャを使用して、統計を収集することをお薦めします。たとえば、次のSQL文を入力します。SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
-
CDB (マルチテナント・アーキテクチャ) Oracle Databaseの場合:
catcon
を使用して、マルチテナント・アーキテクチャ全体のデータ・ディクショナリ統計を収集することをお薦めします。コンテナ・データベースのすべてのPDBのディクショナリ統計を収集するには、次の構文を使用します。
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -l /tmp -b gatherstats -- --x"exec dbms_stats.gather_dictionary_stats"
特定のPDBに関するディクショナリ統計を収集するには、次のような構文を使用します。
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -l /tmp -c 'SALES1' -b gatherstats -- --x"exec dbms_stats.gather_dictionary_stats"
前述の例では、
SALES1
というデータベースを指定することにより、実行するコマンドのPDB包含リストを-c SALES1
オプションで指定しています。オプション-b gatherstats
では、ログの基底名を指定します。オプション--x
は、実行するSQLコマンドを指定します。SQLコマンドそのものは、引用符で囲みます。
ダウングレード後の修正したオブジェクト統計の再収集
ダウングレード後に、Oracle Databaseで代表的なワークロードを実行し、修正されたオブジェクト統計を再収集します。
固定オブジェクトは、X$表とその索引です。V$パフォーマンス・ビューは、X$を通じて定義されます。ダウングレード後に、修正したオブジェクト統計を再収集して、リストアしたデータベースのオプティマイザが正しい実行計画を生成できるようにします。こうした実行計画により、データベースのパフォーマンスを改善できます。代表的な統計を取得しないと、実行計画が最適ではなくなる可能性があり、パフォーマンス問題が発生する場合があります。
固定オブジェクトの統計を収集するには、DBMS_STATS.GATHER_FIXED_OBJECTS_STATS
PL/SQLプロシージャを使用します。DBMS_STATS.GATHER_FIXED_OBJECTS_STATS
では、init.ora/spfile
およびSPFILE
からすべての非表示またはアンダースコアのパラメータおよびイベントを削除するための推奨事項も表示されます。
固定オブジェクトの統計を収集するには、次のPL/SQLプロシージャを実行します。
SQL> execute dbms_stats.gather_fixed_objects_stats;
参照:
GATHER_FIXED_OBJECTS_STATS
プロシージャの使用の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
ダウングレード後の失効しているCBO統計の再収集
Oracle Databaseのダウングレードが完了した後に、Oracle Cost-Based Optimizer (CBO)統計を再収集することをお薦めします。
Oracle Databaseをアップグレードし、新しいCBO統計を収集すると、アップグレードしたデータベースは新しいデータベース統計を持ちます。アップグレードしたデータベースは新しいヒストグラム・タイプも含むことができます。このため、データベースをダウングレードしたときには、新しいリリースで収集した統計は前のリリースとは異なる可能性があります。この問題はデータ・ディクショナリ表と一般のユーザー表の両方に当てはまります。
GATHER_DATABASE_STATSか、または通常、ディクショナリおよびアプリケーション・スキーマで失効している統計を更新するのに使用する収集コマンドを使用して、失効している統計を再収集します。
たとえば:
-
非CDBのOracle Databaseの場合: 統計を再収集するには、
GATHER_DATABASE_STATS
プロシージャを、オプション'GATHER STALE'
を指定して使用することをお薦めします。たとえば:SQL> execute dbms_stats.gather_database_stats(options=>'GATHER STALE');
-
CDB (マルチテナント・アーキテクチャ) Oracle Databaseの場合: マルチテナント・アーキテクチャ全体にわたるデータ・ディクショナリ統計を再収集するには、
catcon
の使用をお薦めします。コンテナ・データベースのすべてのPDBの失効しているディクショナリ統計を収集するには、次の構文を使用します。
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -l /tmp -b gatherstats -- --x"exec dbms_stats.gather_database_stats(options=>'GATHER STALE')"
特定のPDBに関するディクショナリ統計を収集するには、次のような構文を使用します。
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -l /tmp -c 'SALES1' -b gatherstats -- --x"exec dbms_stats.gather_database_stats(options=>'GATHER STALE')"
前述の例では、
SALES1
というデータベースを指定することにより、実行するコマンドのPDB包含リストを-c SALES1
オプションで指定しています。オプション-b gatherstats
では、ログの基底名を指定します。オプション--x
は、実行するSQLコマンドを指定します。SQLコマンドそのものは、引用符で囲みます。
ダウングレード後のレジストリ・コンポーネントの有効性の確認
レジストリ・コンポーネントの有効性を確認し、無効なコンポーネントを特定します。
CDB_REGISTRY
ビューを使用できます。DBA_REGISTRY
を使用して個々のPDBを確認することもできます。すべてのコンポーネントがVALID
またはOPTION OFF
のいずれかであることを確認します。
例8-1 CDB_REGISTRYビューを使用したCDBでのレジストリの確認
set line 200
set pages 1000
col COMP_ID format a8
col COMP_NAME format a34
col SCHEMA format a12
col STATUS format a10
col VERSION format a12
col CON_ID format 99
select CON_ID, COMP_ID, comp_name, schema, status, version from CDB_REGISTRY order by 1,2;
例8-2 DBA_REGISTRYビューを使用した非CDBまたはPDBでのレジストリの確認
set line 200
set pages 1000
col COMP_ID format a8
col COMP_NAME format a34
col SCHEMA format a12
col STATUS format a10
col VERSION format a12
col CON_ID format 99
select CON_ID, COMP_ID, comp_name, schema, status, version from DBA_REGISTRY order by 1,2;
Oracle Databaseのダウングレードのトラブルシューティング
このトラブルシューティング情報を使用して、Oracle Databaseのダウングレード時に発生する可能性のある問題に対処します。
この項には、ダウングレード時に発生する可能性のある既知のエラーと、それらのエラーに対処するための回避策が含まれます。
- catdwgrd.sqlスクリプトを使用したOracle Databaseコンポーネントのダウングレード中のエラー
この項を使用して、ダウングレード中にcatdwgrd.sql
スクリプトを実行するときに発生するエラー(ORA-20001
: ダウングレードを続行できませんなど)のトラブルシューティングを行います。 - アップグレードの成功または失敗後のOracle Grid Infrastructure (Oracle Restart)のダウングレード
Oracle Restartをダウングレードするには、Oracle Grid Infrastructureを構成解除してから再インストールする必要があります。その後、データベースおよびサービスを戻すことができます。 - Oracle Messaging Gatewayを使用したデータベースのダウングレード・エラー
Oracle Messaging Gatewayを使用して構成されたデータベースをダウングレードすると、ORA-02303
エラーが発生することがあります。
catdwgrd.sqlスクリプトを使用したOracle Databaseコンポーネントのダウングレード中のエラー
この項を使用して、ダウングレード中にcatdwgrd.sql
スクリプトを実行するときに発生するエラー(ORA-20001
: ダウングレードを続行できませんなど)のトラブルシューティングを行います。
catdwgrd.sql
スクリプトはOracle Databaseのデータベース内のすべてのコンポーネントを、アップグレード前の当初のメジャー・リリースにダウングレードします。このスクリプトはデータ・ディクショナリをダウングレードする前に実行する必要があります。スクリプトの実行時に何か問題が発生した場合は、問題の原因を修正してからスクリプトを再実行します。
発生する可能性のあるエラーには、「ORA-39709
: コンポーネントのダウングレードが不完全です; stringのダウングレードは中断されました」および「ORA-06512
」があります。これらのエラーが発生した場合、ダウングレードを続行できません。
-
原因: データ・ディクショナリのダウングレード前にダウングレードする必要のある1つ以上のコンポーネントがダウングレードされていません。
-
処置: ログ・ファイルを確認して、
catdwgrd.sql
スクリプトが停止し、ダウングレードが中断する前に、どのようなエラーが発生したかを判断します。
これらの例を確認して、この問題の修正方法を理解します。
エラーには一般に、ダウングレードの完了を妨げている問題を修正するために何をする必要があるかが説明されています。エラー・メッセージの説明に従ってください。エラーの原因を修正した後に、catdwgrd.sql
スクリプトを再実行します。
たとえば、チェックによりCDB$ROOTのダウングレード中にCDBのダウングレードが失敗した場合は、エラー・メッセージの説明に従って、条件エラーを修正します。エラーを修正した後に、catcon.pl
を指定してcatdwgrd.sql
を再実行します。-c
オプションを使用して、包含リスト'CDB$ROOT PDB1'
でコマンドを実行します。-r
オプションを使用して、コマンドを最初にPDBで、次にCDB$ROOTで実行します。たとえば:
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -d $ORACLE_HOME/rdbms/admin -e -b catdwgrd -l /scratch/rac/downgradeLogs -c 'CDB$ROOT, PDB1, PDB2' -r catdwgrd.sql
例8-3 ORA-06512によるORA-20001エラー
ダウングレードが中止されました。ログ・ファイルを確認したところ、catdwgrd.sql
がこのエラーで終了したことがわかりました。
DECLARE * ERROR at line 1: ORA-20001: Downgrade cannot proceed -
Unified Audit Trail data exists. Please clean up the data first
using DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL. ORA-06512: at line 65
ORA-06512: at line 42
CDB$ROOT
およびすべてのPDBで統合監査証跡を削除する必要があります。
-
統合監査証跡の存在を確認します。
SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL; COUNT(*) ---------- 4538
-
CDB上で監査証跡を削除します。
たとえば、この場合監査証跡タイプは
DBMS_AUDIT.MGMT.AUDIT
になります。EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL DBMS_AUDIT_MGMT.AUDIT
-
CDB$ROOT
でcatdwngrd.sql
を実行します。PDBに依然として統合監査データが存在する場合、スクリプトはORA20001で失敗します。62 execute immediate 63 'select count(*) from audsys.'||'"'||tab_name||'"' into no_rows; 64 65 -- If audit trail has some data, raise the application error 66 IF no_rows > 0 THEN 67 RAISE_APPLICATION_ERROR(-20001, ErrMsg); 68 END IF; 69 END IF; 70 END IF; 71 EXCEPTION 72 WHEN NO_DATA_FOUND THEN 73 NULL; 74 WHEN OTHERS THEN 75 RAISE; 76 END; 77 / DECLARE * ERROR at line 1: ORA-20001: Downgrade cannot proceed - Unified Audit Trail data exists.Please clean up the data first using DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL. ORA-06512: at line 75
-
個々のPDBに接続し、統合監査証跡があるかどうかを確認します。すべてのPDBの統合監査証跡をクリアします。たとえば、PDB1という名前のPDBに統合監査証跡がある場合、次のようになります。
ALTER SESSION SET container = PDB1; SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL; COUNT(*) ---------- 1330
-
統合監査証跡を特定します。
SQL> CREATE TABLE UA_DATA AS (SELECT * FROM UNIFIED_AUDIT_TRAIL);
-
監査証跡を削除します。
この例では、監査証跡タイプは
DBMS_AUDIT_MGMT.AAUDIT_TRAIL_UNIFIED
であり、USE_LAST_ARCH_TIMESTAMP
値はFALSE
に設定されているため、最終アーカイブ・タイムスタンプを考慮せずにすべての監査レコードが削除され、CONTAINER
値がDBMS_AUDIT_MGMT.CONTAINER_ALL
に設定されているため、すべてのPDB上の監査レコードが削除されます。BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, USE_LAST_ARCH_TIMESTAMP => FALSE, CONTAINER => DBMS_AUDIT_MGMT.CONTAINER_ALL END; /
-
PDBおよびCDBレベルで
catdwngrd.sql
を再実行します。たとえば:$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c 'CDB$ROOT,PDB1' -d $ORACLE_HOME/rdbms/admin -e -b catdwgrd -l /u01/oracle/product/19.0.0/downgrade_logs -r catdwgrd.sql
-
CDBおよびPDBでスクリプトが正常に完了して
ORA-20001
エラーがログに表示されなくなるまで、監査証跡を検索して削除するプロセスを繰り返し、catdwgrd.sql
を実行します
アップグレードの成功または失敗後のOracle Grid Infrastructure (Oracle Restart)のダウングレード
Oracle Restartをダウングレードするには、Oracle Grid Infrastructureを構成解除してから再インストールする必要があります。その後、データベースおよびサービスを戻すことができます。
Oracle Messaging Gatewayを使用したデータベースのダウングレード・エラー
Oracle Messaging Gatewayを使用して構成されたデータベースをダウングレードすると、ORA-02303
エラーが発生することがあります。
Oracle Messaging Gatewayオブジェクトを含むOracle Databaseをダウングレードすると、次のエラーが発生することがあります。
ORA-02303: cannot drop or replace a type with type or table dependents
- 原因
catrelod.sql
スクリプトで、以前のOracle Databaseリリースとは異なるタイプのOracle Messaging Gatewayオブジェクトを再ロードしようとしています。 - 処置 処置は必要ありません。このエラーは無視できます。