リプレイ・アップグレードを使用したOracle Databaseリリースのアップグレード

以前のリリースからアップグレードするには、リプレイ・アップグレード手順を使用して、非CDBをPDBに変換およびアップグレードします。

リプレイ・アップグレードを使用したPDBのアップグレード

リプレイ・アップグレードを使用してコンテナ・データベース(CDB)全体およびそのプラガブル・データベース(PDB)をアップグレードすることも、個々のPDBをアップグレードすることもできます。

ノート:

クラシック・パラレル・アップグレードはリプレイ・アップグレードに置き換えられますが、このドキュメントの他の場所での指定に従って、アップグレード前およびアップグレード後のタスクを実行する必要があります。

アップグレードを開始する前に、次のステップを実行する必要があります。

  • 新しいリリースのOracle Databaseソフトウェアのインストール
  • 新しいリリースで新しいCDBを作成するか、既存のCDBを使用します。
  • このガイドの第2章の「Oracle Databaseのアップグレードの準備」の説明に従って、アップグレード前のアクティビティを実行します。

ノート:

リプレイ・アップグレードを使用してPDBを接続し、PDBオープン時にPDBをアップグレードする場合、アップグレードするPDBの数は、Oracle Databaseで使用できるCPUコア(プロセッサ)の数を指定するOracle Database初期化パラメータCPU_COUNTの値の4分の1(¼)以下にすることをお薦めします。クラシック・パラレル・アップグレードでは、一度にアップグレードされるPDBのデフォルト数は、CPU_COUNTの値の2分の1 (1⁄2)以下です。

アップグレードは、リプレイ・アップグレード方法を使用して完了できます。そのためには、PDBのオープン時にアップグレードを使用するか、AutoUpgradeユーティリティを使用します。

アップグレード後、第7章の「Oracle Databaseのアップグレード後の作業」の説明に従って、次の手順を実行する必要があります:

  • Datapatchを実行して、新しいPDBにパッチを適用します。
  • AutoUpgradeを使用して、アップグレード後のチェックを実行します。

PDBプラグインでの自動アップグレードを使用した新しいリリースのCDBへのリプレイ・アップグレード

以前のリリースのPDBを新しいリリースのCDBに接続すると、CDBはPDBのオープン時にPDBがCDBより以前のリリースであることを検出し、リプレイ・アップグレード・プロセスを自動的に開始します。PDBオープン時のアップグレードでは、リプレイ・アップグレード同期化機能を使用してPDBを自動的にアップグレードします。

リプレイ・アップグレードを有効または無効にする方法

デフォルトでは、PDBのアップグレードに対してリプレイ・アップグレードの方法が有効になります。ただし、この方法の使用を有効または無効にできます。

次のSQL問合せを使用すると、リプレイ・アップグレードがアクティブかどうかを判断できます:


select property_name, property_value
from database_properties
where property_name in ('UPGRADE_PDB_ON_OPEN');

リプレイ・アップグレードを無効にするには、CDB$ROOTまたは特定のPDBで次のコマンドを実行します:

ALTER DATABASE UPGRADE SYNC OFF

リプレイ・アップグレードを無効にする場合は、AutoUpgradeを使用してPDBをアップグレードする必要があります。

リプレイ・アップグレードの動作を再度有効にするには、次のコマンドを入力します。

ALTER DATABASE UPGRADE SYNC ON

デフォルトでは、AutoUpgradeはリプレイ・アップグレードを使用しません。クラシック・パラレル・アップグレード・スクリプトが使用されます。AutoUpgradeでリプレイ・アップグレードを強制的に使用する場合は、次の内容をAutoUpgrade構成ファイルに追加します。prefixは、構成ファイルでアップグレードに使用されるアップグレード接頭辞です:

prefix.replay=yes

ノート:

CDB$ROOTに接続しているか、特定のPDBに接続しているかに応じて、個々のPDBに対するリプレイ・アップグレードの方法の使用を管理できます。

  • UPGRADE SYNCCDB$ROOTOFFに設定されている場合、CDBに接続されているどのPDBにもリプレイ・アップグレード・メソッドは使用されません。
  • UPGRADE SYNCCDB$ROOTONに設定されているが、PDBでOFFに設定されている場合、リプレイ・アップグレード・メソッドは、UPGRADE SYNCOFFであるPDBに対して使用されません。ただし、リプレイ・アップグレード・メソッドは、CDBに接続されている他のすべてのPDBに対して使用されます。
  • UPGRADE SYNCCDB$ROOTONに設定され、すべてのPDBに対してONに設定されている場合(デフォルト)、リプレイ・アップグレード・メソッドはCDBに接続されているすべてのPDBに対して使用されます。

リプレイ・アップグレードを使用した非CDBからPDBへのアップグレードについて

リプレイ・アップグレードの方法を使用して、非CDBのOracle Databaseソフトウェアをマルチテナント・アーキテクチャにアップグレードするステップの一部を自動化できます。

リプレイ・アップグレード・メソッドは、このOracle Databaseリリースへの直接アップグレードがサポートされている以前のOracle Databaseリリースからのアップグレードに対してデフォルトで有効になっています。リプレイ・アップグレード・プロセスは、noncdb_to_pdb.sqlなどのスクリプトを実行する従来の方法とは異なります。非CDBの場合、DBMS_PDB.DESCRIBEを実行して非CDBを記述した後、新しいOracle Database CDBに非CDBを接続します。アップグレードのためのリプレイ・アップグレード・メソッドは、次の2つのステップで完了します。

  1. 非CDBデータベースは、新しいOracle Databaseリリースにアップグレードされます。
  2. 非CDBデータ・ディクショナリは、PDBデータ・ディクショナリに変換されます。

これらのステップはいずれも、ALTER PLUGGABLE DATABASE OPENを実行するときにトリガーされます。どちらのステップも、ディクショナリに格納されたSQL文を自動的に再生し、PDBへの非CDBの採用と、新しいリリースへのデータベースのアップグレードのタスクを完了します。

リプレイ・アップグレード・メソッドを使用する利点は、PDBのアップグレードと変換のために実行する必要があるアップグレード・ワークフローを大幅に簡略化できることです。非CDBからPDBへの暗黙的な変換により、Oracle Database 21cより前の非CDBおよびPDBの両方のOracle Databaseリリースを新しいリリースのCDBのPDBに採用およびアップグレードするプロセスが簡略化されます。

リプレイ・アップグレードを使用したPDBとしての非CDBの採用およびアップグレード

アップグレードを簡素化するには、リプレイ・アップグレードの方法を使用して、非CDBをPDBに変換およびアップグレードします。

アップグレードを開始する前に、次のステップを実行する必要があります。

  • 新しいリリースのOracle Databaseソフトウェアのインストール
  • 新しいOracleホームを準備します。
  • このガイドの第2章の「Oracle Databaseのアップグレードの準備」の説明に従って、アップグレード前のアクティビティを実行します。

DBMS_PDBパッケージおよびリプレイ・アップグレード・メソッドを使用して非CDBをPDBとして採用するには、次の手順を実行します。

  1. CDBが存在しない場合は作成するか、既存のCDBを使用します。

  2. アップグレードの準備状況についてデータベースを分析します。AutoUpgradeを分析モードで実行し、サマリー・レポートで分析の結果を確認します。AutoUpgradeは、チェックの完了時にサマリー・レポートの場所を出力します。たとえば:

    export ORACLE_SID=NCDB
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    export ORACLE_TARGET_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
    java -jar autoupgrade.jar -config_values "target_cdb=CDB23" -mode analyze
  3. アップグレード前の分析時に、AutoUpgradeは、アップグレードを開始する前に、データベースに変更が必要かどうかを検出します。修正モードでAutoUpgradeを起動して、それらの変更を実行します。たとえば:

    export ORACLE_SID=NCDB
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    export ORACLE_TARGET_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
    java -jar autoupgrade.jar -config_values "target_cdb=CDB23" -mode fixups
  4. 非CDBを読取り専用モードにします。

  5. 非CDBに接続し、DBMS_PDB.DESCRIBEプロシージャを実行して、非CDBを記述するXMLファイルを作成します。

    現行ユーザーには、SYSDBA管理権限が必要です。ユーザーは、接続時にAS SYSDBAを使用して権限を行使する必要があります。

    たとえば、ncdb.xmlという名前のXMLファイルを/disk1/oracleディレクトリに生成し、次のプロシージャを実行します。

    BEGIN
      DBMS_PDB.DESCRIBE(
        pdb_descr_file => '/disk1/oracle/ncdb.xml');
    END;
    /
    

    このプロシージャが正常に完了した後、XMLファイルおよび非CDBデータ・ファイルを使用して、非CDBをCDBに接続できます。

  6. DBMS_PDB.CHECK_PLUG_COMPATIBILITYファンクションを実行して、非CDBがCDBと互換性があるかどうかを確認します。

    このファンクションを実行する場合は、次のパラメータを設定します。

    • pdb_descr_file - このパラメータをデータベース記述XMLファイルへのフルパスに設定します。

    • pdb_name - 新しいPDBの名前を指定します。このパラメータを省略した場合は、XMLファイル内のPDB名が使用されます。

    たとえば、/disk1/oracle/ncdb.xmlファイルで記述されている非CDBが現在のCDBと互換性があるかどうかを確認するには、次のPL/SQLブロックを実行します。

    SET SERVEROUTPUT ON
    DECLARE
      compatible CONSTANT VARCHAR2(3) := 
        CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
               pdb_descr_file => '/disk1/oracle/ncdb.xml',
               pdb_name       => 'NCDB')
        WHEN TRUE THEN 'YES'
        ELSE 'NO'
    END;
    BEGIN
      DBMS_OUTPUT.PUT_LINE(compatible);
    END;
    /
    

    出力がYESの場合は非CDBに互換性があり、次のステップに進むことができます。出力がNOの場合は、非CDBには互換性がありません。互換性がない理由を確認するには、ビューPDB_PLUG_IN_VIOLATIONSを確認します。続行する前に、すべての違反を修正する必要があります。たとえば、アップグレードを実行するか、datapatchユーティリティを実行して、バージョンまたはパッチの不一致をすべて解決する必要があります。違反を修正してから、DBMS_PDB.CHECK_PLUG_COMPATIBILITYを再度実行して、非CDBがCDBと互換性があることを確認します。

  7. 非CDBを停止します。

  8. 非CDBを上位リリースのCDBに接続します。

    たとえば、次のSQL文は非CDBをプラグインし、そのファイルを新しい場所にコピーして、非CDBからtbs3ユーザー表領域のみを含めます。

    CREATE PLUGGABLE DATABASE ncdb USING '/disk1/oracle/ncdb.xml'
      COPY
      FILE_NAME_CONVERT = ('/disk1/oracle/dbs/', '/disk2/oracle/ncdb/')
      USER_TABLESPACES=('tbs3');
    

    違反がない場合は、新しいPDBをオープンしないでください。これは、後のステップで開きます。

    USER_TABLESPACES句を使用すると、非CDB内の複数のテナントに使用されたデータを異なるPDBに分けることができます。この句を指定したCREATE PLUGGABLE DATABASE文を複数使用して、非CDBに存在する他の表領域のデータを含む別のPDBを作成できます。

  9. リプレイ・アップグレードが有効になっていることを確認するには、次のように入力します:

    select property_name, property_value
    from database_properties
    where property_name in('UPGRADE_PDB_ON_OPEN', 'CONVERT_NONCDB_ON_OPEN');
  10. 新しいPDBに接続して、それを開きます。PDBが開かれるときに、データベースはアップグレードされ、非CDBデータベース・データ・ディクショナリがPDBに変換されます。たとえば:

    ALTER PLUGGABLE DATABASE OPEN

    Oracle Databaseでデータベースのアップグレードを完了するには、新しいPDBを開く必要があります。PDBを読取り専用モードでオープンしようとすると、エラーが返されます。PDBが開かれるときに、非CDBがPDBに採用され、データ・ディクショナリが変換されて、新しいPDBがCDBに統合されます。リプレイ・アップグレードからのメッセージは、トレース・ディレクトリに置かれます。PDBがオープンされてリプレイ・アップグレードが完了すると、そのステータスはNORMALになります。

    アップグレードのステータスを確認するには、次のビューを問い合せます。
    • リプレイ・アップグレード・エラーを確認するには、ビューDBA_REPLAY_UPGRADE_ERRORSを使用します
    • 完全性をチェックするには、DBA_APPLICATIONSを使用します。app_name 'APP$CDB$CATALOG'値のapp_version値を確認します。この値は、PDBの新しいバージョンである必要があります。
    • ビューDBA_APP_ERRORSで文エラーをチェックします。このビューには、エラー・メッセージとエラーに関する文テキスト(app_statement)が表示されます。成功したアップグレードでは、このビューにapp_name='APP$CDB$CATALOG'の行が含まれていないことが必要です。
  11. Datapatchを実行して、新しいPDBにパッチを適用します:

    datapatch -pdbs ncdb
  12. AutoUpgradeを使用して次を指定し、アップグレード後の修正を実行します:

    • ORACLE_SIDは、ターゲット・コンテナ・データベースのシステム識別子を指定します
    • ORACLE_HOMEは、ORACLE_SIDで指定されたデータベースのOracleホームです。
    • inclusion_listには、PDB (以前の非CDB)の名前が含まれます。必要に応じて、さらにPDBを指定できます。
    • dirオプションは、AutoUpgradeがログ・ファイルを格納できるディレクトリを指定します。

    次の例では、ORACLE_SIDCDB23ORACLE_HOME/u01/app/oracle/product/23.0.0/dbhome_1、ログ・ファイル・ディレクトリは/u01/app/oracle/cfgtoollogs/autoupgradeinclusion_listNCDBと指定されています。

    export ORACLE_SID=CDB23
    export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
    java -jar autoupgrade.jar -preupgrade "dir=/u01/app/oracle/cfgtoollogs/autoupgrade,inclusion_list=NCDB" -mode postfixups
    
  13. PDBをバックアップします。

    PDBをバックアップすることをお薦めします。バックアップされていないPDBは、非CDBからのプリプラグイン・バックアップとCDBからのバックアップの組合せを使用してリカバリできます。ただし、リカバリは、通常のリストア操作よりもはるかに煩雑で複雑です。

  14. 第7章の「Oracle Databaseのアップグレード後の作業」の説明に従って、アップグレード後の作業を実行します。

ノート:

PDBの作成時にエラーが返された場合は、作成されたPDBがUNUSABLE状態である可能性があります。ビューCDB_PDBSまたはDBA_PDBSを問い合せることで、PDBの状態を確認できます。PDB作成のエラーについてさらに学習するには、アラート・ログを確認してください。使用できないPDBは削除するしかありません。PDBが使用できない場合は、使用できないPDBと同じ名前のPDBを作成する前にPDBを削除する必要があります。

切断/接続アップグレードを使用した以前のリリースのアップグレード

以前のリリースのPDBは、自動リプレイ・アップグレードを使用してより新しいリリースのCDBに接続することでアップグレードできます。

一般的な前提条件

  • 『Oracle Multitenant管理者ガイド』PDB作成の一般的な前提条件で説明されている前提条件が満たされるようにしてください。

  • PDBについて記述しているXMLファイル、または.pdbアーカイブ・ファイルは、CDBにアクセスできる場所に存在する必要があります。

    USING句でXMLファイルまたは.pdbアーカイブ・ファイルを指定する必要があります。PDBのXMLファイルが使用できないか見つからない場合は、DBMS_PDB.RECOVERプロシージャを使用して、PDBのデータ・ファイルでXMLファイルを生成できます。

  • USING句にXMLファイル(.pdbファイルではなく)を指定する場合は、PDBに関連付けられたファイル(データファイルやウォレット・ファイルなど)が、CDBにアクセスできる場所に存在している必要があります。

  • 接続操作のターゲット・データベースがOracle Data Guard構成内のプライマリ・データベースの場合は、接続されるPDBのファイルの場所をスタンバイ・データベースで特定できることを確認します。

    スタンバイ・データベースで、STANDBY_PDB_SOURCE_FILE_DIRECTORY初期化パラメータを、PDBをインスタンス化するためのソース・データファイルが含まれている場所に設定します。ファイルが見つからない場合、スタンバイ・データベースはOMFの場所でファイルを探します。OMFの場所で見つからない場合は、データファイルをスタンバイ・データベースのOMFの場所にコピーし、スタンバイ・データベースに対するREDO適用を再起動する必要があります。

  • ソースCDBとターゲットCDBのプラットフォームは、次の要件を満たしている必要があります。

    • endiannessが同じである必要があります。

    • ソース・プラットフォームにインストールされているデータベース・オプションは、ターゲット・プラットフォームにインストールされているデータベース・オプションと同じか、サブセットである必要があります。

  • アプリケーションPDBを作成している場合、切断されたPDBのアプリケーション名およびバージョンは、アプリケーションPDBを接続するアプリケーション・コンテナのアプリケーション名およびバージョンと一致する必要があります。

ノート:

透過的データ暗号化で暗号化されたデータを含むPDBをプラグインする場合は、統一モードについてはOracle Database Advanced Securityガイド、分離モードについてはOracle Database Advanced Securityガイドの指示に従います。

文字セットの前提条件

文字セットを一致させるために、次の前提条件を満たす必要があります。

  • PDBが接続されるCDBの文字セットがAL32UTF8でない場合、切断されたPDBを含んでいたCDBとターゲットCDBには互換性のある文字セットおよび各国語文字セットが必要です。互換性を確保するには、文字セットと各国語文字セットが、『Oracle Databaseグローバリゼーション・サポート・ガイド』で指定されている要件を満たしている必要があります。

    PDBが接続されるCDBの文字セットがAL32UTF8である場合、この要件は適用されません。

    ノート:

    Oracle Multitenantでは、あるコンテナのLOBに対する異なる文字セットのコンテナによるデータ・リンク、拡張データ・リンクまたはCONTAINERS()句を使用したアクセスはサポートされません。たとえば、CDBルートとsalespdbの文字セットが異なる場合、CDBルートで実行されるCONTAINERS()問合せはsalespdbのLOBにアクセスできません。

  • アプリケーションPDBを作成している場合、アプリケーションPDBはアプリケーション・コンテナと同じ文字セットおよび各国語文字セットである必要があります。

    CDBのデータベース文字セットがAL32UTF8の場合、アプリケーション・コンテナの文字セットおよび各国語文字セットはCDBと異なっていても構いません。ただし、アプリケーション・コンテナ内のすべてのアプリケーションPDBには、アプリケーション・コンテナと同じ文字セットおよび各国語文字セットが必要です。

前提条件が満たされているかどうかを判断するには、DBMS_PDB.CHECK_PLUG_COMPATIBILITY関数を使用します。次の手順のステップ2では、このファンクションの使用方法を示しています。

  1. SQL*Plusで、現在のコンテナがCDBルートまたはターゲットCDBのアプリケーション・ルートであることを確認します。

    現在のコンテナがCDBルートの場合、PDBはCDBに作成されます。現在のコンテナがアプリケーション・ルートの場合、アプリケーションPDBはアプリケーション・コンテナ内に作成されます。

  2. (オプション)DBMS_PDB.CHECK_PLUG_COMPATIBILITYファンクションを実行して、切断されたPDBがCDBと互換性があるかどうかを確認します。

    1. PDBがまだ切断されていない場合は、DBMS_PDB.DESCRIBEプロシージャを実行して、そのPDBを記述するXMLファイルを作成します。

      PDBがすでに切断されている場合は、ステップ2bに進みます。

      たとえば、salespdb.xmlという名前のXMLファイルを/disk1/oracleディレクトリに生成し、次のプロシージャを実行します:

      BEGIN
        DBMS_PDB.DESCRIBE(
          pdb_descr_file => '/disk1/oracle/salespdb.xml',
          pdb_name       => 'SALESPDB');
      END;
      /
      

      PDBがリモートCDBに存在している場合は、pdb_nameパラメータに@database_link_nameを含めることができます。database_link_nameは、リモートCDBまたはPDBへの有効なデータベース・リンクの名前です。たとえば、リモートCDBへのデータベース・リンクの名前がrcdbの場合、pdb_name値にSALESPDB@rcdbを設定します。

    2. DBMS_PDB.CHECK_PLUG_COMPATIBILITYファンクションを実行します。

      このファンクションを実行する場合は、次のパラメータを設定します。

      • pdb_descr_file - パラメータをXMLファイルへのフルパスに設定します。

      • pdb_name - 新しいPDBの名前を指定します。このパラメータを省略した場合は、XMLファイル内のPDB名が使用されます。

      たとえば、/disk1/usr/salespdb.xmlファイルで記述されているPDBが現在のCDBと互換性があるかどうかを確認するには、次のPL/SQLブロックを実行します。

      SET SERVEROUTPUT ON
      DECLARE
        compatible CONSTANT VARCHAR2(3) := 
          CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
                 pdb_descr_file => '/disk1/usr/salespdb.xml',
                 pdb_name       => 'SALESPDB')
          WHEN TRUE THEN 'YES'
          ELSE 'NO'
      END;
      BEGIN
        DBMS_OUTPUT.PUT_LINE(compatible);
      END;
      /
      

      出力がYESの場合はPDBに互換性があり、次のステップに進むことができます。出力がNOの場合はPDBに互換性がなく、PDB_PLUG_IN_VIOLATIONSビューをチェックして、互換性がない理由を確認します。

    ノート:

    .pdbアーカイブ・ファイルはpdb_descr_fileパラメータで指定できます。
  3. PDBが切断されていない場合は、切断します。

  4. CREATE PLUGGABLE DATABASE ... USING文を実行し、USING句でXMLファイルまたは.pdbアーカイブ・ファイルを指定します。他の句が必要な場合はそれらを指定します。

    作成したPDBはマウント・モードになり、そのステータスはNEWです。PDBのオープン・モードは、V$PDBSビューのOPEN_MODE列を問い合せることで確認できます。CDB_PDBSまたはDBA_PDBSビューのSTATUS列を問い合せて、PDBのステータスを表示できます。

    PDBの新しいデフォルト・サービスが作成されます。サービスの名前はPDBと同じになり、このサービスを使用してPDBにアクセスできます。このサービスにアクセスするクライアントには、Oracle Net Serviceが正しく構成されている必要があります。

  5. 新しいPDBを読取り/書込みモードでオープンします。

    Oracle Databaseで新しいPDBをCDBに統合するには、PDBを読取り/書込みモードでオープンする必要があります。PDBを読取り専用モードでオープンしようとすると、エラーが返されます。PDBが読取り/書込みモードでオープンされると、そのステータスはNORMALになります。

    PDBのオープン時に、PDBとCDBルートの間でバージョンの不一致があった場合は、自動的にアップグレードされます。PDBオープン時のリプレイ・アップグレードの最適化(デフォルト)により、取得表に格納されている文を再実行することによって、手動のエラー修正を回避できます。このメカニズムは、アプリケーションの同期で使用されるものと同じです。

    PDBがオープンされると、データベースでリプレイ・アップグレードが自動的に実行されます。

  6. リプレイ・アップグレードが完了したら、PDBをバックアップします。

    注意:

    PDBは、バックアップしないとリカバリできません。PDBおよびアプリケーション・コンテナの詳細は、『Oracle Multitenant管理者ガイド』を参照してください。

リプレイ・アップグレード・プロセスの失敗とリカバリのシナリオ

リプレイ・アップグレードのログ・ファイルおよびトレース・ファイル内のエラーと問題を確認する方法について説明します。

リプレイ・アップグレードが失敗した場合、PDB_UPGRADE_SYNCプロパティはPDBに対して1つ減分されます。リプレイ・アップグレードが2回失敗すると、catctl.plは、アップグレードを完了するために従来のスクリプト・ベースのパラレル・アップグレード・プロシージャのメソッドを使用することになります。

値をチェックするには、次のSQL問合せを使用します:

select property_value
from database_properties
where property_name='PDB_UPGRADE_SYNC';

リプレイ・アップグレード・エラーの原因を特定するには、エラーが発生した文のアップグレード・ログを確認します。リプレイ・アップグレード・プロシージャの実行後、正常に実行されたかどうかに関係なく、問合せDBA_APP_ERRORSが実行されます。その問合せの結果を確認して、エラーが発生した文の文テキストおよびエラー・メッセージを確認します。ログ内の特定のエラーを表示するには、grepコマンドを使用して'^ORA-'のテキスト文字列を検索し、アップグレード・ログを問い合せることもできます。

もう1つの診断オプションは、トレース・ファイル(.trc)を確認することです。トレース・ファイルには、リプレイ・アップグレード・プロシージャ中に実行された各文の出力が含まれています。ファイルには、文テキスト、文が成功したか失敗したか、エラー・メッセージ(該当する場合)およびプロセス中の経過時間が示されます。接頭辞文字列Replay Upgrade, PDB IDを含む行を探します。ここで、変数IDはPDB IDです。たとえば、Replay Upgrade, PDB 15です。