プライマリ・コンテンツに移動
Oracle® Databaseアップグレード・ガイド
12cリリース1 (12.1)
B71306-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

6 以前のリリースへのOracle Databaseのダウングレード

Oracle Databaseのサポートされているリリースでは、最後にアップグレードしたリリースにデータベースをダウングレードできます。たとえば、最近、リリース11.2.0.4からOracle Database 12cにアップグレードし、互換性のある初期化パラメータを12.1以上に変更しなかった場合、リリース11.2.0.4にダウングレードできます。ご使用のOracle Database 12cがリリース12.1.0.2で、互換性のある初期化パラメータを12.1.0.2に変更しなかった場合、リリース12.1.0.1などにダウングレードできます。

この章の内容は次のとおりです。


関連項目:

オペレーティング・システム固有のダウングレードの説明については、ご使用のオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。

6.1 Oracle Databaseのダウングレードがサポートされているリリース

データベースがアップグレードされる前の元のOracle Databaseのリリースに基づいて、メジャー・リリースとパッチ・セット・リリースの両方をダウングレードできます。メジャー・リリースのダウングレードは、Oracle Database 11gリリース2 (11.2.0.2)と後続の11.2リリース、およびOracle Database 11gリリース1 (11.1.0.7)へのダウングレードがサポートされています。パッチ・セットのダウングレードは、Oracle Databaseリリース11.2のパッチ・セットへのダウングレードがサポートされています(リリース11.2.0.1は除く)。

表6-1に、ダウングレードでサポートされるリリースのサマリーを示します。この表を使用する際には、「Oracle Databaseをダウングレードするときの非互換性の確認」で互換性についても確認してください。

表6-1 ダウングレードがサポートされているリリースおよびエディション

Oracle Databaseのリリースまたはエディション ダウングレード可能 注意

12.1.0.2

Y

COMPATIBLE初期化パラメータを12.1.0.2に設定すると、データベースをダウングレードできません。

互換性が12.1.0.1に設定されている場合のみ、プラガブル・データベース(PDB)に対するダウングレードが可能になります。

CDBのダウングレード、またはPDBの切断およびダウングレードには、パッチ・セット更新PSU4が必要です。PSUは、https://support.oracle.com/にあるMy Oracle Support (MOS)でダウンロードできます。最新のパッチ・セットおよび必要な追加修正のセットを入手するには、MOSノート756671.1を参照してください。(「パッチと更新版」ページの一般検索ボックスで検索します。)

Oracle Database 12cの最小の互換性設定は11.0であるため、リリース10.2.0.5にダウングレードすることはできません。

12.1.0.1

Y

12.1.0.1 PDBを12.1.0.1データベースから切断し、同じPDBを12.1.0.2データベースに接続してアップグレードすると、12.1.0.2データベースの互換性のある初期化パラメータが12.1.0.1.0より後の場合はPDBをダウングレードできません。

Oracle Database 12cの最小の互換性設定は11.0であるため、リリース10.2.0.5にダウングレードすることはできません。

Oracle Enterprise Manager

N

サポートされている以前のリリースにダウングレードする場合、Oracle Enterprise Managerの制御を再構成する必要があります。「Oracle Databaseのダウングレード後のOracle Enterprise Managerのリストア」を参照してください。

Oracle Database Express Edition

N

Oracle Database Express Editionからアップグレードされたデータベースをダウングレードすることはできません。



重要:

次の情報は、ダウングレードできる場合に互換性に関して理解するためには、非常に重要です。

  • COMPATIBLE初期化パラメータを12.1.0.2に設定すると、データベースをダウングレードできません。

  • 互換性が12.1.0.1に設定されている場合のみ、プラガブル・データベース(PDB)に対するダウングレードが可能になります。

  • リリース12.1.0.1のPDBを12.1.0.1データベースから切断した後、このPDBをリリース12.1.0.2データベースに接続した場合、このPDBをダウングレードすることはできません。

  • PSU4 (つまりパッチ・セット更新)は、CDBのダウングレード、またはPDBの切断およびダウングレードに必要です。最新のパッチ・セットおよび必要な追加修正のセットを入手するには、https://support.oracle.com/のMy Oracle Support (MOS)でMOSノート756671.1を参照してください。



注意:

Oracle Database 12cの最小の互換性設定は11.0であるため、リリース10.2.0.5にダウングレードすることはできません。また、Oracle Database Express Editionからアップグレードされたデータベースをダウングレードすることはできません。

サポートされている以前のリリースでは、Oracle Databaseのダウングレードについて、次の推奨事項があります。

  • このリリースにはマルチテナント・アーキテクチャが含まれ、マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)用の機能が提供されます。そのため、このリリースへのアップグレード後にCOMPATIBLE初期化パラメータを最上位レベルに設定すると、ダウングレードする機能が妨げられます。

  • このリリースでは、SELECTに加えて、新しいオブジェクト権限READが含まれています。ダウングレード後に、次が行われます。

    • SELECTおよびREADオブジェクト権限がある場合、READ権限が削除されます。

    • READオブジェクト権限のみがある場合、これはSELECTオブジェクト権限に変換されます。

    READおよびSELECTオブジェクト権限の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  • ダウングレードできる最も古いリリースは、Oracle Databaseリリース11.1.0.7です。Oracle Database 12cの互換性の最低は11.0のため、リリース12.1にアップグレードした後に、互換性を11.0以上に設定する必要があります。互換性が設定されると、データベースのディスク上の構造が変更され、互換性設定によって制御される新しい機能が有効になります。そのため、11.1.0.7より前のリリースへのダウングレードは選択できません。

  • アップグレードするデータベースにOracle XML DBが存在しない場合は、ダウングレード時にOracle XML DBがアンインストールされます。たとえば、Oracle Database 11gリリース2 (11.2)とともにOracle XML DBをインストールしなかった場合、Oracle Database 12cへのアップグレード時にOracle XML DBがインストールされます(このリリースに含まれるため)。Oracle Database 11gリリース2 (11.2)へのダウングレード時には、Oracle XML DBは削除されます。

  • Oracle Database 12cへのアップグレード時に、Database (DB) Controlリポジトリは削除されます。ダウングレードする場合は、ダウングレードした以前のリリースでDatabase (DB) Controlを再び使用するために再構成する必要があります。「Oracle Enterprise Manager Database Controlの構成およびデータの保存」を参照してください。

  • Oracle Enterprise Managerのダウングレードはサポートされていません。サポートされている以前のリリースにダウングレードする場合、Oracle Enterprise Managerの制御を再構成する必要があります。「Oracle Databaseのダウングレード後のOracle Enterprise Managerのリストア」を参照してください。

  • Oracle Database 12cのOracle Clusterwareでは、Windows上でのOracle Databaseリリース10.2およびリリース11.1へのダウングレードはサポートされていません。リリース11.2より前のリリースには、フレッシュ・インストールが必要です。

6.2 Oracle Databaseのダウングレード時の非互換性の確認

ご使用のデータベースの互換性レベルをチェックして、非互換性があるかどうかを確認します(非互換性がある場合は、ダウングレードできません)。Oracle Database 12cデータベースの互換性レベルが12.1.0の場合はダウングレードできません。

Oracle Database 11gリリース2 (11.2.0.2)、Oracle Database 11gリリース2 (11.2.0.3)またはOracle Database 11gリリース2 (11.2.0.4)にダウングレードする場合は、COMPATIBLE初期化パラメータを11.2.0以下に設定する必要があります。リリース11.2.0.1へのダウングレードはサポートされていません。

Oracle Database 11gリリース1(11.1.0.7)にダウングレードする場合は、COMPATIBLE初期化パラメータを11.1.0以下に設定する必要があります。Oracle Database 11gリリース1では、リリース11.1.0.7へのダウングレードのみがサポートされています。


注意:

Oracle ASMディスク・グループでは、データベースのアップグレード時にディスク・グループの互換性を12.1.0.0.0に変更した場合は、以前のリリースへのダウングレード時にOracle ASMディスク・グループをマウントできなくなります。

ダウングレードの前にOracle ASMディスク・グループの互換性を手動でリストアする必要があります。そうしない場合、ダウングレード後に、インスタンスはディスク・グループをマウントできません。

ASMディスク・グループの互換性の詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。


6.3 Oracle Databaseのダウングレード前の全体バックアップの実行

サポートされている以前のリリースにダウングレードする前に、Oracle Database 12cデータベースの完全バックアップを実行することを強くお薦めします。


関連項目:

RMANバックアップの実行方法は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

6.4 Oracle Databaseをダウングレードする前に必要な手順の実行

アップグレード前の以前のリリースにダウングレードする前に、必須の準備を完了する必要があります。たとえば、まず、データベース内のコンポーネントを無効にする必要があるかどうかを決定する必要があります。

ダウングレードの準備をするには、次の手順を実行します。

  1. Oracle Databaseリリース12.1.0.2で、CDBをダウングレードするか、またはPDBを切断およびダウングレードする場合、最初にPSU4 (パッチ・セット更新4)を適用する必要があります。https://support.oracle.com/にあるMy Oracle Supportにアクセスして、PSU4および必要な追加修正のセットを入手します。パッチ・セットの情報およびリンクは、MOSノート756671.1に掲載されています。「パッチと更新版」ページの一般検索ボックスで756671.1を検索します。これはダウングレードするための要件です。

  2. Oracle Databaseリリース11.1にダウングレードする場合、ダウングレード手順を開始する前に、新しく作成するデータベース・リンクのパスワードを確認します。これらは、リリース11.2または12.1の実行中に作成した可能性があるデータベース・リンクです。Oracle Databaseリリース11.1にダウングレードした後でデータベース・リンク・パスワードをリセットする必要があるため、データベース・リンク・パスワードが必要です。詳細は、「ダウングレード後のデータベース・リンクのパスワードの問題」を参照してください。

  3. データベースでOracle Database Vaultを有効化している場合は、データベースをダウングレードする前にOracle Database Vaultを無効化します。

    Oracle Database Vaultが有効化されているかどうかを確認するには、次のようにV$OPTION動的ビューを問い合せます。

    この問合せに示すとおりの大文字/小文字を使用してOracle Database Vaultを入力します。出力がTRUEの場合は、Oracle Database Vaultが有効化されているため、無効化する必要があります。手順は、『Oracle Database Vault管理者ガイド』を参照してください。

  4. データベースでOracle Label Securityを使用していて、リリース11.2以前にダウングレードする場合、新しいOracle Database 12cのOracleホームでOracle Label Security (OLS)事前処理ダウングレードolspredowngrade.sqlスクリプトを実行します。リリース12.1.0.2からリリース12.1.0.1にダウングレードする場合、olspredowngrade.sqlを実行する必要はありません。


    重要:

    Oracle Label SecurityおよびOracle Database Vaultを使用するデータベースでは、Oracle Database 12cからデータベース・リリース11.2 (以前)にダウングレードする前に、olspredowngrade.sqlスクリプトを実行する必要があります。

    1. Oracle Label Securityが有効化されているかどうかを確認するには、次のようにV$OPTION動的ビューを問い合せます。

      SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Oracle Label Security';
      
    2. olspredowngrade.sqlスクリプトを実行します。

      SQL> @ORACLE_HOME/rdbms/admin/olspredowngrade.sql
      

      詳細は、Oracle Label Security管理者ガイドを参照してください。

  5. 統合監査が有効化されている場合は、統合監査証跡をオプションでバックアップおよび消去します。

    1. 統合監査レコードが存在するかどうかを確認します。

    2. 既存の監査データを表にバックアップします。次に例を示します。

      SQL> CREATE TABLE UA_DATA AS (SELECT * FROM V$UNIFIED_AUDIT_TRAIL);
      
    3. 監査証跡をクリーンアップします。

      EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => FALSE);
      
  6. 以前にタイムゾーン・ファイルの最新バージョンをインストールし、DBMS_DST PL/SQLパッケージを使用してTIMESTAMP WITH TIME ZONEデータをそのバージョンにアップグレードした場合は、ダウングレード先のリリースに同じバージョンのタイムゾーン・ファイルをインストールします。データベースのアップグレード後にDBMS_DSTを使用してTIMESTAMP WITH TIME ZONEデータをそのタイム・ゾーン・ファイルの最新バージョンにアップグレードした場合は、ダウングレード先のリリースにこの最新バージョンのタイムゾーン・ファイルをインストールします。これにより、TIMESTAMP WITH TIME ZONEデータが取得中に論理的に破損することがなくなります。

    データベースで現在使用されているタイムゾーン・ファイルのバージョンを確認するには、次のようにV$TIMEZONE_FILEに問い合せます。

    SQL> select * from  V$TIMEZONE_FILE;
    

    現在のOracleホームからダウングレードするOracheホームにタイムゾーン・ファイルをコピーします。たとえば、問合せの結果を確認した後で、次から選択します。

    %ORACLE_HOME%\oracore\zoneinfo\timezlrg_18.dat
    %ORACLE_HOME%\oracore\zoneinfo\timezone_18.dat
    

    タイムゾーン・ファイルのアップグレードの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を、DBMS_DSTパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  7. Oracle Database 12cへのアップグレード時にORA_TZFILE環境変数をタイム・ゾーン・ファイルのフルパス名に設定した場合は、後でデータベースをダウングレードする際にその設定を解除する必要があります。

    Oracleホーム・ディレクトリには、次の2つのタイムゾーン・ファイルがあります。

    • デフォルトのタイム・ゾーン・ファイル(データベース・サーバー用)は、次の場所にあります。

      $ORACLE_HOME/oracore/zoneinfo/timezonelrg.dat
      
    • 小規模なタイム・ゾーン・ファイルは(一般にクライアントで使用されます)、次の場所にあります。

      $ORACLE_HOME/oracore/zoneinfo/timezone.dat
      

    ORA_TZFILE変数の設定を解除しなかった場合、小さい方のタイムゾーン・ファイルを使用してデータベースに接続すると、次のエラーが発生する可能性があります。

    SP2-1503: Unable to initialize Oracle call interface
    SP2-0152: ORACLE may not be functioning properly
    

    日時データ型およびタイムゾーン・サポートの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

  8. オプション: Oracle Database 11gリリース1 (11.1.0.7)にダウングレードする際にデータベースにOracle Application Expressがある場合は、Oracle Database 12c ORACLE_HOME/apex/ディレクトリからOracleホーム外部のディレクトリ(システムの一時ディレクトリなど)にapxrelod.sqlファイルをコピーする必要があります。

    このファイルの新しい場所を記録します。この手順で後ほど必要になります。

  9. 固定オブジェクトに基づいてオブジェクトを作成した場合は、これらのオブジェクトを削除して、ORA-00600エラーの発生を回避します。ダウングレード後にこれらのオブジェクトを再作成できます。

  10. データベースにOracle Enterprise Managerが構成されている場合は、Enterprise Managerユーザーを削除します。

    DROP USER sysman CASCADE;
    

    注意:

    この手順を実行すると、MGMT*シノニムが無効になる場合があります。ダウングレードしたデータベースでOracle Enterprise Managerの制御を使用するには、Oracle Enterprise Managerを再構成する必要があります。

6.5 CDBまたは非CDBのOracle Databaseのダウングレード

Oracle Database 12cデータベースを、サポートされているメジャー・リリースまたは関連するパッチ・セット・アップグレードにダウングレードするための手順が提供されています。リリース12.1.0.2以上からリリース12.1.0.1にダウングレードする場合、マルチテナント・コンテナ・データベース(CDB)またはCDB内の1つのプラガブル・データベース(PDB)にあるすべてのデータベースをダウングレードできます。Oracle Database 12cより前のOracle Databaseリリースでは、マルチテナント・アーキテクチャを使用しませんでした。1つのPDBをダウングレードするためのプロシージャについては、「単一のプラガブルOracle Database (PDB)のダウングレード」を参照してください。

この項の手順は、「Oracle Databaseのダウングレードがサポートされているリリース」を理解していることを前提としています。

CDBであるかどうかに関係なく、サポートされている以前のリリースにデータベースをダウングレードするには、次の手順を実行します。

  1. Oracle Database 12cのOracleホーム・ディレクトリの所有者として、システムにログインします。

  2. システム・プロンプトで、ORACLE_HOME/rdbms/adminディレクトリへ移動します(ORACLE_HOMEはシステムのOracleホームです)。


    注意:

    クラスタ・データベースをダウングレードしている場合は、データベースを完全に停止し、CLUSTER_DATABASE初期化パラメータをFALSEに設定します。ダウングレードが完了した後、このパラメータの設定をTRUEに戻す必要があります。

  3. SQL*Plusを使用して、SYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。

    sqlplus sys as sysdba
    Enter password: password
    
  4. 新しいOracle Database 12cのOracleホームの所有者として、システムにログインします。

  5. ORACLE_HOME/rdbms/adminディレクトリから、SQL*Plusを起動します。

  6. アップグレード対象のデータベースにDBA権限のあるアカウントを使用して接続します。

    CONNECT / AS SYSDBA
    
  7. 使用するOracle Databaseインスタンス・タイプに応じて、SQL*Plusで次のコマンドを発行し、ダウングレード・モードでインスタンスを起動します。PFILEオプションを使用して、初期化パラメータ・ファイルの場所を指定する必要がある場合があります。

    非CDBインスタンスの場合

    SQL> startup downgrade pfile=pfile_name
    

    CDBインスタンスの場合

    SQL> startup downgrade pfile=pfile_name
    SQL> alter pluggable database all open downgrade;
    

    初期化パラメータ・ファイルPFILEの場所を指定します。初期化パラメータの起動時の指定および初期化パラメータ・ファイルの詳細は、『Oracle Database管理者ガイド』を参照してください。

  8. オプション: 非CDBをダウングレードする場合、変更および問題を追跡するために、結果をログ・ファイルにスプールするようにシステムを設定できます。(CDBは自動的にcatcon_logsに出力をスプールするため、CDBの場合はこの手順をスキップできます。)

    SQL> SPOOL downgrade.log
    
  9. catdwgrd.sqlを実行します。

    非CDBの場合:

    SQL> @catdwgrd.sql
    

    CDBの場合:

    $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -d 
     $ORACLE_HOME/rdbms/admin -e -b catdwgrd -l <output directory> -r 
     catdwgrd.sql
    

    CDBの例では、catcon.plcatdwgrdとともに実行されます。最初にPERLを起動します。-dパラメータは、catcon.plcatdwgrdの入手先を指定します。-lパラメータは、ログ・ファイルの出力ディレクトリを指定します(rdbms/adminディレクトリに書き込むかわりとなります)。-rパラメータを使用して、2つのスクリプトを一緒に実行する必要があります。


    注意:

    • Oracle Database 12cに付属するcatdwgrd.sqlスクリプトのバージョンを使用する必要があります。

    • Oracle Database 12c環境でcatdwgrd.sqlを実行する必要があります。

    • 2つのスクリプトを同時に一緒に実行するには、-rパラメータを指定する必要があります。

    • catdwgrd.sqlスクリプトによって、データベース内のすべてのOracle Databaseコンポーネントがサポートされているアップグレード元のメジャー・リリースまたはパッチ・リリースにダウングレードされます。


    catdwgrd.sqlスクリプトまたは残りの手順のいずれかのスクリプトを実行中になんらかの問題が発生した場合は、問題を解決してスクリプトを再実行します。必要に応じて、この章で説明されているスクリプトのいずれかを実行できます。


    注意:

    コンポーネントのダウングレードに失敗した場合、ORA-39709エラーが表示され、SQL*Plusセッションは、Oracle Databaseデータ・ディクショナリをダウングレードせずに終了します。すべてのコンポーネントは、Oracle Databaseのデータ・ディクショナリをダウングレードする前に、正常にダウングレードする必要があります。catdwgrd.sqlスクリプトを再実行する前に、問題を特定して修正する必要があります。

  10. 非CDBの場合のみ、スクリプト結果のログ・ファイルへのスプーリングをオフにします。

    SQL> SPOOL OFF
    

    次に、スプール・ファイルを確認して、ダウングレード中にエラーが発生しなかったかどうかを検証します。手順8で、スプール・ファイル名をdowngrade.logとしました。このファイルで見つけた問題を修正し、必要に応じてダウングレード・スクリプトを再実行します。


    注意:

    ダウングレード・スクリプトを初めて実行した結果を保存する場合は、再実行する前に、downgrade.logを他の名前に変更してください。

  11. インスタンスを停止します。

    SQL> SHUTDOWN IMMEDIATE
    
  12. SQL*Plusを終了します。

  13. ご使用のオペレーティング・システムがLinuxまたはUNIXの場合、次の環境変数がダウングレード先のリリースのディレクトリを指定するように変更してください。

    • ORACLE_HOME

    • PATH

    また、oratabファイル、およびORACLE_HOME値を設定するすべてのクライアント・スクリプトが、ダウングレードされたOracleホームを指していることを確認する必要があります。

    ご使用のオペレーティング・システムでのその他の重要な環境変数の設定に関する詳細は、オペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。

  14. ご使用のオペレーティング・システムがWindowsの場合、次の手順を実行します。

    1. Oracle Database 12cデータベースのすべてのOracleサービス(OracleServiceSID Oracleサービスなど)を停止します(SIDはインスタンスの名前)。

      たとえば、SIDがORCLの場合、コマンド・プロンプトで次のように入力します。

      C:\> NET STOP OracleServiceORCL
      

      WindowsでのOracleサービスの停止の詳細は、Oracle Databaseプラットフォーム・ガイドfor Microsoft Windowsを参照してください。

    2. コマンド・プロンプトでORADIMコマンドを発行して、Oracleサービスを削除します。

      たとえば、SIDがORCLの場合、次のコマンドを入力します。

      C:\> ORADIM -DELETE -SID ORCL
      
    3. コマンド・プロンプトでORADIMコマンドを使用して、ダウングレードするデータベースのOracleサービスを作成します。

      C:\> ORADIM -NEW -SID SID -INTPWD PASSWORD -MAXUSERS USERS
      -STARTMODE MANUAL -PFILE ORACLE_HOME\DATABASE\INITSID.ORA
      

      ORADIMを使用したOracle Databaseインスタンスの管理の詳細は、Oracle Databaseプラットフォーム・ガイドfor Microsoft Windowsを参照してください。ORADIMの構文には次の変数が含まれます。

      変数 説明
      SID ダウングレードするデータベースのSIDと同じSID名です。
      PASSWORD データベース・インスタンスのパスワードです。SYSDBA権限で接続するユーザー用のパスワードです。-INTPWDオプションは必須ではありません。パスワードの入力を求められた場合は、このWindowsプラットフォームの標準のユーザー・アカウントのパスワードを使用します。
      USERS SYSDBA権限およびSYSOPER権限を付与できるユーザーの最大数です。
      ORACLE_HOME ダウングレード先のデータベースのOracleホーム・ディレクトリです。-PFILEオプションを使用して、(Oracleホーム・ディレクトリのドライブを含む)フルパス名を指定する必要があります。初期化パラメータの起動時の指定および初期化パラメータ・ファイルの詳細は、『Oracle Database管理者ガイド』を参照してください。

      たとえば、SIDORCLPASSWORDTWxy5791USERSの最大数が10、ORACLE_HOMEディレクトリがC:\ORANTの場合、次のコマンドを入力します。

      C:\> ORADIM -NEW -SID ORCL -INTPWD TWxy5791 -MAXUSERS 10
           -STARTMODE MANUAL -PFILE C:\ORANT\DATABASE\INITORCL.ORA
      

      注意:

      ORADIMコマンドによって、Oracleホームのユーザー・アカウントのパスワードの入力が求められます。ORADIMを使用して、他のオプションを指定できます。

      データベースをダウングレードする際に、Windowsレジストリの設定を変更する必要はありません。必要な変更は、すべてORADIMユーティリティによって自動的に行われます。


  15. ダウングレード先のリリースの構成ファイル(パラメータ・ファイル、パスワード・ファイルなど)をリストアします。

    Oracle RACデータベースの場合は、次のコマンドを実行して、データベースを単一インスタンス・モードに戻します。

    SET CLUSTER_DATABASE=FALSE
    

    注意:

    クラスタ・データベースをダウングレードしている場合は、このクラスタ・データベースのインスタンスが構成されているすべてのノードでこの手順を実行してください。CLUSTER_DATABASE初期化パラメータをFALSEに設定します。ダウングレードが完了した後、この初期化パラメータの設定をTRUEに戻す必要があります。

    Oracle RACでの初期化パラメータの使用の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。


  16. システム・プロンプトで、ダウングレードする以前のリリースのORACLE_HOME/rdbms/adminディレクトリに移動します。

  17. SQL*Plusを開始して、SYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。

    非CDBの場合:

    SQL> CONNECT / AS SYSDBA
    SQL> STARTUP UPGRADE
    

    CDBの場合:

    connect / as sysdba
    startup database mount;
    alter database open upgrade;
    alter pluggable database all open upgrade;
    
  18. オプション: 非CDBの場合、変更および問題を追跡するために、結果をログ・ファイルにスプールするようにシステムを設定します。この手順はCDBには必要ありません。

    SQL> SPOOL reload.log
    
  19. catrelod.sqlを実行します。

    非CDBの場合:

    SQL> @catrelod.sql
    

    CDBの場合:

    $ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -e -b catrelod -d '''.''' catrelod.sql
    

    catrelod.sqlスクリプトによって、ダウングレードしたデータベース内の各データベース・コンポーネントに該当するバージョンが再ロードされます。

  20. Oracle Database 11gリリース1 (11.1.0.7)にダウングレードする際にデータベースにOracle Application Expressがある場合は、apxrelod.sqlスクリプトをコピーしたディレクトリに移動します。apxrelod.sqlスクリプトを実行して、Oracle Application Expressを手動で再ロードします。

    SQL> @apxrelod.sql
    

    apxrelod.sqlスクリプトを実行すると、次のエラーが原因でパッケージAPEX_030200.WWV_FLOW_HELPINVALIDになることを回避できます。

    PLS-00201: identifier 'CTX_DDL' must be declared
    
  21. 非CDBでスプーリングをオンにした場合、スクリプト結果のログ・ファイルへのスプーリングをオフにします。

    SQL> SPOOL OFF
    

    次に、スプール・ファイルを確認して、すべてのパッケージおよびプロシージャのコンパイルが成功したかどうかを検証します。このログ・ファイルで見つけた問題を処理し、必要に応じて適切なスクリプトを再実行します。

  22. 通常の操作のために、インスタンスを停止し、再起動します。

    SQL> SHUTDOWN IMMEDIATE
    SQL> STARTUP
    

    PFILEオプションを使用して、初期化パラメータ・ファイルの場所を指定する必要がある場合があります。初期化パラメータの起動時の指定および初期化パラメータ・ファイルの詳細は、『Oracle Database管理者ガイド』を参照してください。

  23. データベースがOracle Label Security用に構成されている場合は、この手順を実行します。

    1. olstrig.sqlスクリプトを、Oracle Database 12cのOracleホームからダウングレード後のデータベースのリリースのOracleホームにコピーします。

    2. ダウングレード先のリリースのOracleホームからolstrig.sqlを実行し、Oracle Label Securityのポリシーを適用して、表のDMLトリガーを再作成します。

      SQL> @olstrig.sql
      

      Oracle Label Securityの詳細は、Oracle Label Security管理者ガイドを参照してください。

  24. utlrp.sqlスクリプトを実行します。

    非CDBの場合:

    SQL> @utlrp.sql
    

    CDBの場合、catcon.plを実行して、utlrp.sqlを起動し、残りのすべてのストアドPL/SQLおよびJavaコードを再コンパイルします。次の構文を使用します。

    $ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -e -b utlrp -d '''.''' utlrp.sql
    

    utlrp.sqlスクリプトは、以前INVALID状態だったパッケージ、プロシージャ、型などのすべての既存のPL/SQLモジュールを、再コンパイルします。ログ・ファイルutlrp0.logは、再コンパイルの結果を記録して生成されます。

  25. SQL*Plusを終了します。

  26. クラスタ・データベースをダウングレードする場合は、次のコマンドを実行してOracle Clusterwareのデータベース構成をダウングレードする必要があります。

    $ srvctl downgrade database -d db-unique-name -o oraclehome -t to_version
    

    [ここで、db-unique-nameはインスタンス名ではなくデータベース名であり、oraclehomeは、ダウングレードされるデータベースの古いOracleホームの場所で、to_versionは、データベースがダウングレードされるデータベースのリリースです。(例: 11.2.0.3.0)]


    注意:

    このコマンドは、データベースのダウングレード後のOracleホームからではなく、現在のOracle Database 12cのOracleホームから実行してください。

データベースがダウングレードされました。

6.6 単一のプラガブルOracle Database (PDB)のダウングレード

Oracle Database 12cの最新リリースをダウングレードする場合、CDB全体をダウングレードせずに1つのPDBをダウングレードできます。たとえば、リリース12.1.0.2のCDBからPDBを切断し、それをダウングレードした後、リリース12.1.0.1のCDBに接続するか、そのデータベースをスタンドアロン・データベースに変換することができます。

この項の手順は、「Oracle Databaseのダウングレードがサポートされているリリース」を理解していることを前提としています。

手順1   PDBのダウングレード

この手順では、PDBをリリース12.1.0.1にダウングレードします。

  1. リリース12.1.0.2のPDBをDOWNGRADEモードで起動します。これを行うとき、CDBは標準モードになります。

    SQL> alter pluggable database CDB1_PDB1 open downgrade;
    
  2. catdwgrdを実行してPDBをダウングレードします。この例ではPDB1です。

    次のように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
    

    例では、catcon.plcatdwgrdとともに実行されます。最初にPERLを起動します。-dパラメータは、catcon.plcatdwgrdの入手先を指定します。-lパラメータは、ログ・ファイルの出力ディレクトリを指定します(rdbms/adminディレクトリに書き込むかわりとなります)。2つのスクリプトを同時に一緒に実行するには、-rパラメータを使用する必要があります。

  3. PDBを閉じます。

手順2   CDBからのPDBの切断

この手順では、ダウングレードされたPDBをリリース12.1.0.2のCDBから切断します。

  1. 12.1.0.2のCDBに接続します。

  2. 切断するPDBを閉じます。

    SQL> alter pluggable database PDB1 close;
    
  3. ダウングレードされた12.1.0.1のPDBを切断します。

    SQL> alter pluggable database PDB1 unplug into 'path/PDB1.xml';
    

    「プラガブル・データベースが変更されました。」が表示されます。

手順3   ダウングレードされた12.1.0.1のPDBの接続

この手順では、ダウングレードされた12.1.0.1のPDBを12.1.0.1のCDBに接続します。これを行うには、このCDBでPDBを作成する必要があります。この例では、PDB1を作成します。

  1. 12.1.0.1のCDBに接続します。

  2. 12.1.0.1のPDBを接続します。

    SQL> create pluggable database PDB1 using 'path/PDB1.xml';
    

    「プラガブル・データベースが作成されました。」が表示されます。

  3. この手順の後続のステップで示すスクリプトを実行するには、PDBをアップグレード・モードで開きます。

    SQL> alter pluggable database PDB1 open upgrade;
    
  4. PDBに接続します。

    SQL> alter session set container=PDB1;
    
  5. PDBでcatrelodを実行します。

    SQL> @$ORACLE_HOME/rdbms/admin/catrelod.sql
    

    catrelod.sqlスクリプトによって、ダウングレードしたデータベース内の各データベース・コンポーネントに該当するバージョンが再ロードされます。

  6. PDBでutlrpを実行します。

    SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
    

    utlrp.sqlスクリプトは、以前INVALID状態だったパッケージ、プロシージャ、型などのすべての既存のPL/SQLモジュールを、再コンパイルします。

6.7 Oracle Databaseのダウングレードのダウングレード後の作業

変更が、互換性、コンポーネントおよびサポートされるプロトコルに影響するため、Oracle Databaseのダウングレード後に追加の作業が必要になる場合があります。

この項には次のトピックが含まれます:

6.7.1 Oracle DatabaseダウングレードでのOracle XML DB認証の推奨事項

ダイジェスト認証がサポートされていないOracle Database 12cより前のリリースにダウングレードする場合、ダイジェスト認証が無効化され、認証の選択肢として使用できなくなります。これは、Oracle XML DBリポジトリのHTTP認証に影響します。ダイジェスト認証を使用せず、かわりにデフォルトの構成を使用している場合は、これ以上のアクションは必要ありません。


関連項目:

データベースのインストール、アップグレードおよびダウングレードに対するOracle XML DBを使用した認証の詳細は、『Oracle XML DB開発者ガイド』を参照してください。

6.7.2 リリース11.1.0.7にダウングレードする際のネットワーク・リスナーの再作成

Oracle Database 11gリリース1 (11.1.0.7)にダウングレードする場合は、ダウングレード手順の実行後にリスナーを再作成する必要があります。Oracle Net Managerを実行して古いリスナーを削除し、新しいリスナーを作成します。

  • Oracle Enterprise ManagerのコンソールからOracle Net Managerを起動するには、「ツール」メニューから「サービス管理」を選択し、「Oracle Net Manager」を選択します。

  • Windowsの場合、「スタート」メニューから「プログラム」を選択し、「Oracle - HOME_NAME」を選択します。次に、「Configuration and Migration Tools」を選択し、「Net Manager」を選択します。


    関連項目:

    『Oracle Database Net Services管理者ガイド』

6.7.3 Oracle Databaseのダウングレード後のOracle Database Vaultの再有効化

Oracle Database Vaultを使用している場合は、データベースをダウングレードする前にこれを無効にするように指示されている場合があります。ダウングレード後にOracle Database Vaultを使用するには、これを再有効化する必要があります。


関連項目:

完全な手順は、『Oracle Database Vault管理者ガイド』を参照してください。

6.7.4 Oracle Clusterwareの構成のリストア

Oracle Clusterware構成をOracle Clusterware 12cリリース1 (12.1)のアップグレード前の状態にリストアできます。構成をリストアするには、アップグレード前のリリースをリストアする必要があります。Oracle Database 12cのアップグレード処理中またはアップグレード処理後に実行した構成変更は削除され、リカバリできません。


関連項目:

  • 『Oracle Grid Infrastructureインストレーション・ガイドfor Linux』

  • 『Oracle Grid Infrastructureインストレーション・ガイドfor Microsoft Windows x64(64-Bit)』

  • 『Oracle Clusterware管理およびデプロイメント・ガイド』


6.7.5 Oracle Databaseのダウングレード後のOracle Enterprise Managerのリストア

この項で説明するリストア・タスクは、なんらかの形式でダウングレード中であり、Oracle Enterprise Managerがホストに構成されている場合にのみ実行する必要があります。Oracle Enterprise Managerを以前の状態にリストアするには、Oracle Enterprise Managerの構成ファイルおよびデータをアップグレードの前に保存しておく必要があります。構成をリストアするには、まずこの項の説明に従ってOracle Enterprise Manager構成アシスタント(EMCA)を実行し、「Enterprise Manager Database Controlをリストアするためのemdwgrdユーティリティの実行」の説明に従ってemdwgrdユーティリティを実行します。

これがOracle Clusterwareを使用したOracle RACデータベースである場合は、emca -restoreコマンドを実行する前にsrvctlを使用してデータベースを登録する必要があります。これは、ダウングレード後のデータベースのリリースのORACLE_HOME/binから実行する必要があります。


関連項目:

srvctlに関する詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。

適切なオプションを指定してemca -restoreコマンドを実行し、Oracle Enterprise Manager Database ControlまたはOracle Enterprise Manager Grid Controlを古いOracleホームにリストアします。重要: この手順では、Oracle Database 12cバージョンのemcaを使用します。emcaの詳細は、『Oracle Database管理者ガイド』を参照してください。

emcaに指定するオプションは、データベースがシングル・インスタンス・データベースか、Oracle RACデータベースか、Oracle ASMデータベースかによって異なります。

Oracle ASMがない単一インスタンスのOracle Databaseでのemcaの実行

ORACLE_HOME/bin/emca -restore db

次の情報の入力を求められます。

  • リストアするデータベースのOracleホーム

  • データベースSID

  • リスナー・ポート番号

Oracle ASMがないOracle RACデータベースでのemcaの実行

ORACLE_HOME/bin/emca -restore db -cluster

次の情報の入力を求められます。

  • リストアするデータベースのOracleホーム

  • データベースの一意の名前

  • リスナー・ポート番号

単一インスタンスのOracle ASMインスタンスでのemcaの実行

ORACLE_HOME/bin/emca -restore asm

次の情報の入力を求められます。

  • リストアするデータベースのOracleホーム

  • Oracle ASMポート

  • Oracle ASM SID

Oracle RACインスタンス上のOracle ASMでのemcaの実行

ORACLE_HOME/bin/emca -restore asm -cluster

次の情報の入力を求められます。

  • リストアするデータベースのOracleホーム

  • Oracle ASMポート

Oracle ASMがある単一インスタンスのOracle Databaseでのemcaの実行

ORACLE_HOME/bin/emca -restore db_asm

次の情報の入力を求められます。

  • リストアするデータベースのOracleホーム

  • データベースSID

  • リスナー・ポート番号

  • Oracle ASMポート

  • Oracle ASMホーム

  • Oracle ASM SID [+ASM]

Oracle RACデータベースおよびOracle ASMインスタンスでのemcaの実行

ORACLE_HOME/bin/emca -restore db_asm -cluster

次の情報の入力を求められます。

  • リストアするデータベースのOracleホーム

  • データベースの一意の名前

  • リスナー・ポート番号

  • Oracle ASMポート

  • Oracle ASM Oracleホーム

  • Oracle ASM SID [+ASM]

emcaの出力は、指定するオプションおよびプロンプトで入力する値によって様々です。この手順は、Oracle RAC環境内のすべてのノードに対して繰り返す必要があります。

ここで、Oracle Enterprise Manager Database Controlおよびデータをリストアするためにemdwgrdユーティリティを実行する必要があります。

6.7.5.1 Enterprise Manager Database Controlをリストアするためのemdwgrdユーティリティの実行

emca -restoreプロシージャの終了後に、emdwgrdユーティリティを使用して、Oracle Enterprise Manager Database Controlおよびデータをリストアする準備ができます。Oracle Database 12cホームからemdwgrdユーティリティを実行する必要があります。次に、ORACLE_HOMEおよび他の環境変数を、アップグレードが実行されたOracleホームを指すように設定する必要があります。

次の手順は、LinuxおよびUNIX用です。この手順をWindowsで実行する場合は、emdwgrdemdwgrd.batに置き換えてください。

次の手順に従って、Oracle Enterprise Manager Database Controlおよびデータをリストアします。

  1. ORACLE_HOMEを、データベースがアップグレードされる前のOracleホームに設定します。

  2. ORACLE_SIDを、アップグレード後にダウングレードされたデータベースのSIDに設定します。

  3. データベースがアップグレードされる前のOracleホームを指すように、PATHLD_LIBRARY_PATHおよびSHLIB_PATHを設定します。

  4. Oracle Database 12cのOracleホームに移動します。

    cd ORACLE_HOME/bin
    
  5. 次のいずれかを実行します。

    1. 単一インスタンス・データベースの場合は、次のコマンドを実行します。SIDはアップグレード後にダウングレードされたデータベースのSIDで、save_directoryは、Database Controlのファイルおよびデータの保存時に選択した記憶域の場所へのパスです。

      emdwgrd -restore -sid SID -path save_sirectory -tempTablespace TEMP
      
    2. Oracle RACデータベースの場合、クラスタ・ノード間のリモート・コピーが必要です。構成済のリモート・コピーを示す環境変数を定義します。次に例を示します。

      setenv EM_REMCP /usr/bin/scp
      

      その後、次のrestoreコマンドを実行します。

      emdwgrd -restore -tempTablespace TEMP -cluster -sid SID10g -path save_directory
      

      Oracleホームが共有デバイス上にある場合は、前述のコマンドラインに-sharedを追加します。

  6. emdwgrdにより要求された場合は、SYSおよびSYSMANパスワードを入力します。

  7. emdwgrdが終了すると、Oracle Enterprise Manager Database Controlは古いOracleホームにダウングレードされます。

6.7.6 以前のバージョンへのOracle Application Expressのリストア

アップグレードされたデータベースに、バージョン4.2より前のバージョンのOracle Application Expressがある場合、データベースをダウングレードすると、Oracle Application Expressもダウングレードされます。以前のバージョンのOracle Application Expressソースから、SYS所有のオブジェクトWWV_FLOW_VALおよびWWV_DBMS_SQLをコンパイルする必要があります。

  1. 作業ディレクトリを、以前のバージョンのApplication Expressソースのコア・ディレクトリに変更します。

  2. データベースにSYS/SYSDBAとして接続します。

  3. 次のスクリプトを表示されている順に実行します。

    1. @wwv_flow_val.plb

    2. @wwv_dbms_sql.sql

    3. @wwv_dbms_sql.plb

  4. Oracle XML DB Protocol Serverの埋込みPL/SQLゲートウェイを使用していた場合、次のように、イメージ・ディレクトリを以前のバージョンにリストアする必要があります。

    1. 作業ディレクトリを、以前のバージョンのApplication Expressソースに変更します。

    2. 次の例のように、以前のバージョンのソースへのパスを渡すSYS as SYSDBAとして接続されたapxldimg.sqlを起動します。

      @apxldimg.sql /tmp/apex32
      

6.8 Oracle Databaseのダウングレードのトラブルシューティング

Oracleでは、Oracle Databaseをダウングレードする際に発生する可能性のある問題に関してトラブルシューティング情報を提供しています。この項では、発生する可能性のある既知の問題と必要な場合に対応するための回避策について説明します。

この項には次のトピックが含まれます:

6.8.1 Oracle Multimediaのダウングレードおよびimrelod.sqlスクリプトのエラー

Oracle Databaseをリリース12.1からリリース11.2.0.2にダウングレードする場合、リリース11.2.0.2に付属するimrelod.sqlスクリプトからエラーが発生する場合があります。

ORA-20000: レジストリ内のOracle ORDIMコンポーネントのステータスがDOWNGRADEDです。Oracle Multimediaをアップグレード、ダウングレードまたはパッチ適用する前にOracle ORDIMをインストールし、有効化しておく必要があります。
原因: imrelod.sqlスクリプトがORDIMのステータスを認識していないために、このエラーが発生します。
処置: 処置は必要ありません。このエラーは無視しても支障ありません。

6.8.2 Oracle Database Vaultおよびdvrelod.sqlスクリプトのエラー

Oracle Databaseをリリース12.1からリリース11.2.0.3にダウングレードする場合に、Oracle Database Vaultを使用するデータベースで、リリース11.2.0.3に付属するdvrelod.sqlスクリプトからエラーが発生する場合があります。

ORA-31011: XML解析に失敗しました; リリース11.2.0.3へのOracle Database Vaultのダウングレード
原因: dvrelod.sqlスクリプトはXML解析のステータスを認識していません。
処置: 処置は必要ありません。このエラーは無視しても支障ありません。

6.8.3 アップグレードの成功または失敗後のGrid Infrastructureスタンドアロン(Oracle Restart)のダウングレード

Oracle Restartをダウングレードするには、構成解除してからOracle Grid Infrastructureを再インストールする必要があります。その後、データベースおよびサービスを戻すことができます。


関連項目:

  • My Oracle Support(http://support.oracle.com)のサポート・ノート1364412.1

  • アップグレード後のOracle Clusterwareのダウングレードの詳細は、『Oracle Grid Infrastructureインストレーション・ガイドfor Linux』または『Oracle Grid Infrastructureインストレーション・ガイドfor Microsoft Windows x64 (64-Bit)』を参照してください。


6.8.4 Oracle ACFSおよびOracle Grid Infrastructureのダウングレードの問題

Oracle ASM Cluster File System (Oracle ACFS)を使用していて、Oracle Grid Infrastructure 12c (クラスタまたはOracle Restartスタンドアロン・サーバーのどちらの場合も)にアップグレードする場合、Oracle Grid Infrastructure 11g リリース2 (11.2)へのダウングレードを選択し、リリース11.2のソフトウェア・スタックの開始を試みる前にリリース11.2のOracleホームからコマンドacfsroot installを実行する必要があります。


関連項目:

ご使用のオペレーティング・システム・プラットフォームの問題および解決策の最新の情報については、『Oracle Databaseプラットフォーム共通日本語README』およびリリース・ノートを参照してください。

6.8.5 ダウングレード後のデータベース・リンクのパスワードの問題

Oracle Databaseリリース11.1にダウングレードした後、リリース11.2または12.1で作成されたデータベース・リンクのパスワードをリセットする必要があります。「Oracle Data Pumpのエクスポートを使用した、既存のすべてのデータベース・リンクが含まれるダンプ・ファイルの作成」を参照してください。データベース・リンク・パスワードをリセットしないと、そのデータベース・リンクを使用しようとすると内部エラーが表示されます。なお、Oracleサーバーがデータベース・リンクのパスワードを取得できないときにOracleトレース・ファイルに記録される内部エラーは、「ORA-00600: [kzdlk_zt2 err], [18446744073709551601]」です。

リリース11.1にダウングレードした後にデータベース・リンクのパスワードをリセットするには、ALTER DATABASE LINKコマンドを使用して元のパスワードをIDENTIFIED BY句に指定することで、パスワードを元のパスワードに戻します。ALTER DATABASE LINKについては『Oracle Database SQL言語リファレンス』を、データベース・リンクによって確立される接続の管理については『Oracle Database管理者ガイド』を参照してください。

このパスワードの問題がないOracle Databaseリリース11.2または12.1の実行中に新しいデータベース・リンクを作成する場合は、CREATE DATABASE LINKコマンドのIDENTIFIED BY VALUES句の使用方法について、Oracleサポートへお問い合せいただけます。

6.8.5.1 Oracle Data Pumpのエクスポートを使用した、既存のすべてのデータベース・リンクが含まれるダンプ・ファイルの作成

ダウングレードを実行する前に、Oracle Data Pumpのエクスポートを使用して、既存のすべてのデータベース・リンクが含まれるダンプ・ファイルを作成してください。これには、新しく作成したデータベース・リンクも含まれます。この手順では、expdpコマンドでFULL=YおよびINCLUDE=DB_LINKパラメータを使用します。既存のすべてのデータベース・リンクが含まれるダンプ・ファイルを作成するには、次の手順を実行します。

  1. SQL*Plusにログインします。

    sqlplus system/manager
    
  2. ダンプ・ディレクトリが存在する場合は削除します。

    SQL> DROP DIRECTORY dpump_dir;
    SQL> CREATE DIRECTORY dpump_dir AS '/location_to_write_datapump_dump_file';
    
  3. 次のようにデータベース・リンクをエクスポートします。

    $ expdp system/manager FULL=Y directory=dpump_dir 
      dumpfile=saved_dblinks.dmp INCLUDE=DB_LINK;
    
  4. トラブルシューティング用のオプション手順です。ダウングレードの後、ダウングレードしたいずれかのデータベース・リンクが適切に動作していない(たとえば、内部エラーORA-00600が表示される)場合、次のように、これを削除してダンプ・ファイルからインポートすることで、その後は意図したとおりに動作するようになります。

    $ impdp system/manager directory=dpump_dir dumpfile=saved_dblinks.dmp;