アップグレード前情報ツールおよびAutoUpgradeのアップグレード前処理

AutoUpgradeをpreupgrade句とともに使用して、アップグレード前情報ツール(preupgrade.jar)を介して以前に提供された機能と同じ機能を取得する方法を学習します。

Oracle Database 19cでは、アップグレード前のチェックにAutoUpgradeツールを使用することをお薦めします。アップグレード前情報ツールを使用して以前に取得したすべての機能が、AutoUpgradeツールを使用して提供されるようになりましたAutoUpgradeツールの使用方法の詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

アップグレード前情報ツールについて

システムがアップグレード可能かどうかを判断するには、従来のアップグレード前情報ツール(preupgrade.jar)を使用できます。

正常なアップグレードを確実に行うために、分析処理モードでAutoUpgradeユーティリティを実行し、AutoUpgradeユーティリティの修正を使用した後、アップグレードを完了する方法をお薦めします。ただし、アップグレードを開始する前に、アップグレード前情報ツールを使用してこれらのタスクを引き続き実行できます。

従来のアップグレード前情報ツールを使用する場合は、アップグレードが完了した後に、ツールで検出される問題の修正を助けるために生成されるアップグレード後スクリプトを使用できます。最新の更新を取得するには、My Oracle Supportノート884522.1.からツールの最新バージョンをダウンロードすることをお薦めします。

ツールはオペレーティング・システムのコマンドラインから実行できます。アップグレード前情報ツールにより、アップグレード開始前に一部の問題を修正するためのアップグレード前スクリプト、およびアップグレード完了後に一部の問題を修正するためのアップグレード後スクリプトが作成されます。

アップグレード前情報ツール(preupgrade.jar)は次のファイルを作成します。

  • ログ・ファイルpreupgrade.log

    ログ・ファイルには、アップグレード前情報ツールの出力が含まれます。

  • PDBの場合はpreupgrade_fixups_pdbname.sql (pdbnameはPDBの名前)

    アップグレードを実行する前に、SQL*Plusでアップグレード前修正スクリプトを手動で実行して、アップグレード前のツールで識別された多くの問題を解決できます。

  • postupgrade_fixups_pdbname.sql (PDBの場合、pdbnameはPDBの名前)またはpostupgrade_fixups.sqlスクリプト(非CDBデータベース)。

    データベースのアップグレードが完了した後に、このスクリプトを実行して問題を修正できます。

アップグレード前情報ツールによって生成されるアップグレード前スクリプト

アップグレード前情報ツールによって生成されるアップグレード前スクリプトを実行することによって、新しいOracle Databaseリリースへのアップグレード前に多くの問題を修正できます。

preupgrade_fixups.sqlとログ・ファイルの場所は、出力フォルダの設定またはOracleベース環境変数の定義によって異なります。

アップグレード前情報ツールでdirオプションを使用して出力ディレクトリを指定した場合、出力ログおよびファイルはファイル・パス/cfgtoollogs/dbunique_name/preupgradeの該当ディレクトリの下に配置されます。ここで、dbunique_nameは、ソースOracle Databaseの名前です。アップグレード前情報ツールの実行時に出力ディレクトリを指定しなかった場合は、次のデフォルトの場所のいずれかに出力されます。

  • DIRで出力ディレクトリを指定していなくても、Oracleベース環境変数を設定した場合は、生成されるスクリプトとログ・ファイルは次のファイル・パスに作成されます。

    Oracle-base/cfgtoollogs/dbunique_name/preupgrade

  • 出力ディレクトリを指定せず、Oracleベース環境変数も定義していない場合は、生成されるスクリプトとログ・ファイルは次のファイル・パスに作成されます。

    Oracle-home/cfgtoollogs/dbunique_name/preupgrade

アップグレード前情報ツールによって作成される修正スクリプトは、ソース・データベースが非CDBデータベースとCDBデータベースのどちらであるかによって異なります。

  • ログ・ファイル(preupgrade.log)。

    ログ・ファイルには、アップグレード前情報ツールのログ出力が含まれます。

  • アップグレード前修正SQLスクリプト。ソース・データベースのタイプによって異なります。

    • 非CDB: preupgrade_fixups.sql

    • CDB: 2つの異なるスクリプト・セット:

      1. preupgrade_fixups.sql: すべてのPDB用の統合スクリプト。

      2. 複数のpreupgrade_fixups_pdbname.sqlスクリプト。pdbnameは、スクリプト生成の対象となるPDBの名前です。個々のスクリプトを特定のPDBで実行します。

    catcon.plを使用するか、SQL*Plusコマンドを使用することによって、スクリプトを実行します。データベースのアップグレードを開始する前に、これらのスクリプトを実行して問題を修正する必要があります。これらのスクリプトにより、アップグレード前ツールによって検出された多くの問題が解決されます。

    スクリプトによって検出された問題には、それぞれ問題の説明と、その問題を解決するために実行できる作業が含まれています。アップグレード前ツールそのものは、エラーを修正するための変更をデータベースに加えるわけではありません。しかし、生成されたスクリプトを実行して、検出されたエラーを修正できます。スクリプトは自動スクリプトが安全に修正できる問題だけを修正します。自動スクリプトが安全に修正できないアップグレード前問題には一般に、ユーザー・アプリケーションのDBAの知識が必要です。それらの問題には手動で対処できます。

アップグレード前情報ツールによって生成されるアップグレード後スクリプト

アップグレード後に、アップグレード前情報ツールによって生成されるアップグレード後スクリプトを実行することによって、アップグレードしたターゲット・データベースの修正の一部を完了できます。

アップグレード前情報ツールによって、アップグレード後修正スクリプトが生成されます。アップグレード後にそのスクリプトを実行することによって、アップグレード後に修正できる問題を修正できます。

アップグレード後SQLスクリプトとログ・ファイルの場所は、出力フォルダの設定またはOracleベース環境変数の定義によって異なります。アップグレード後修正スクリプトは、アップグレード前修正スクリプトと同じディレクトリ・パスに配置されます。

アップグレード前情報ツールでdirオプションを使用して出力ディレクトリを指定した場合、出力ログおよびファイルはファイル・パス/cfgtoollogs/dbunique_name/preupgradeの該当ディレクトリの下に配置されます。ここで、dbunique_nameは、ソースOracle Databaseの名前です。アップグレード前情報ツールの実行時に出力ディレクトリを指定しなかった場合は、次のデフォルトの場所のいずれかに出力されます。

  • DIRで出力ディレクトリを指定していなくても、Oracleベース環境変数を設定した場合は、生成されるスクリプトとログ・ファイルは次のファイル・パスに作成されます。

    Oracle-base/cfgtoollogs/dbunique_name/preupgrade

  • 出力ディレクトリを指定せず、Oracleベース環境変数も定義していない場合は、生成されるスクリプトとログ・ファイルは次のファイル・パスに作成されます。

    Oracle-home/cfgtoollogs/dbunique_name/preupgrade

アップグレード前情報ツールによって作成されるアップグレード後修正スクリプトは、ソース・データベースが非CDBデータベースとCDBデータベースのどちらであるかによって異なります。

スクリプトには、次の2つの異なるセットがあります。

  1. postupgrade_fixups.sql: すべてのPDB用の統合スクリプト

  2. 複数のpostupgrade_fixups_pdbname.sqlスクリプト。pdbnameは、スクリプト生成の対象となるPDBの名前です。個々のスクリプトを特定のPDBで実行します。

自動スクリプトが安全に修正できないアップグレード後問題には一般に、ユーザー・アプリケーションのDBAの知識が必要です。それらの問題には手動で対処できます。

非CDBデータベースに対するアップグレード後修正スクリプトの実行ガイドライン

アップグレード後スクリプトを実行する際には、結果がログ・ファイルにスプールされるように設定して、出力を読めるようにすることをお薦めします。ただし、adminディレクトリには結果をスプールしないでください。

アップグレード前情報ツールの環境変数の設定

アップグレード前情報ツールを実行する前に、ツールを実行するOracleユーザーの環境変数を設定します。

アップグレード前情報ツールのユーザー環境変数を設定する必要があります。この例は、シェル・コマンドを使用してユーザー環境変数を設定し、以前のリリースのOracleホームをポイントする方法を示しています。マルチテナント・アーキテクチャのアップグレードでは、ツールで分析するすべてのPDBのオープンも必要です。

この例ではオペレーティング・システムがLinuxまたはUnix、システムIDがsales01、以前のリリースのOracleホームのパスは/u01/app/oracle/product/12.1.0/dbhome_1です

  1. Oracleインストール所有者(oracle)としてログインします。
  2. アップグレードする以前のリリースのOracleホームをポイントするように、ユーザー環境変数を設定します。

    たとえば:

    $ export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
    $ export ORACLE_BASE=/u01/app/oracle
    $ export ORACLE_SID=sales01
    $ export PATH=.:$ORACLE_HOME/bin:$PATH
  3. (マルチテナント・アーキテクチャのアップグレード): CDBでアップグレード前情報ツールを実行している場合は、コマンドalter pluggable database all openを使用してPDBをオープンし、ツールで分析ができるようにします。
    たとえば: データベースにログインし、次のコマンドを入力してすべてのPDBをオープンします。
    $ sqlplus \ as SYSDBA
    .
    .
    .
    SQL> alter pluggable database all open;

アップグレード前情報ツール(preupgrade.jar)のコマンド

アップグレード前情報ツール(preupgrade.jar)のコマンドを使用して、アップグレード前にシステムをチェックします。

前提条件

アップグレード前情報ツールは新しいリリースのOracleホームのファイル・パスであるORACLE_HOME/rdbms/admin/preupgrade.jarにあります。Oracleは新しいOracle Databaseリリースに必要なシステム・チェックを付けてこれを構成してきました。ただし、ツールが実行するチェックは以前のリリースのOracle Databaseホームで実行されます。以前のリリースのOracleホームをポイントするように、Oracleユーザー環境関数を設定します。

以前のリリースのOracleホームではJavaバージョンを使用して、アップグレード前情報ツールを実行します。マルチテナント・アーキテクチャ(CDBおよびPDB)のアップグレードでは、ツールを実行する前に、ツールで分析するすべてのPDBをオープンします。

ユーザー・アカウントの環境変数を設定して、以前のリリースのORACLE_HOME、ORACLE_BASEおよびORACLE_SIDをポイントするようにします。

ファイル・パス

preupgrade.jarファイルは新しいOracleホームにあります。

New_release_Oracle_home/rdbms/admin/preupgrade.jar

また、選択したパスにpreupgrade.jarバイナリをコピーできます。たとえば:

/tmp/preupgrade.jar

構文

$Earlier_release_Oracle_home/jdk/bin/java -jar $New_release_Oracle_home
/rdbms/admin/preupgrade.jar [FILE|TERMINAL] [TEXT|XML] [DIR output_dir] 

オプション

コマンド・オプション 説明

FILE|TERMINAL

スクリプトの出力場所です。スクリプトの出力ファイルを指定するには、FILEを使用します。出力先端末を指定するには、TERMINALを使用します。値を指定しない場合、デフォルトはFILEになります。TERMINALを指定した場合、画面出力はディスプレイに表示され、スクリプトとログは出力ディレクトリのパスに置かれます。

TEXT|XML

出力タイプです。XML出力を指定するにはXMLを使用します。出力タイプを指定しない場合、デフォルトはTEXTになります。

DIR output_dir

出力は指定したディレクトリに送られます。DIRオプションを使用しないで出力ディレクトリを指定した場合は、出力は次のデフォルトの場所のいずれかに置かれます。

  • DIRを使用して出力ディレクトリを指定していなくても、ORACLE_BASE環境変数を定義した場合は、生成されるスクリプトとログ・ファイルが作成されます。

  • 出力ディレクトリを指定せず、ORACLE_BASE環境変数も定義しなかった場合は、生成されるスクリプトとログ・ファイルは次のファイル・パスに作成されます。

    ORACLE_HOME/cfgtoollogs/dbunique_name/preupgrade

-c "pdb1 pdb2 pdb3" (Windows)

-c 'pdb1 pdb2 pdb3' (LinuxおよびUNIX)

処理に含めるCDB内のコンテナのリスト(許可リスト)を指定します。処理するPDBのスペース区切りリストを指定します。リストを指定するには、LinuxおよびUNIXオペレーティング・システムでは単一引用符を、Windowsシステムでは二重引用符を使用します。

-c-Cも指定しない場合、CDB内のすべてのPDBが処理されます。

-C "pdb1 pdb2 pdb3" (Windows)

-C 'pdb1 pdb2 pdb3' (LinuxおよびUNIX)

処理から除外するCDB内のコンテナのリスト(ブロック・リスト)を指定します。処理から除外するPDBのスペース区切りリストを指定します。リストを指定するには、LinuxおよびUNIXオペレーティング・システムでは単一引用符を、Windowsシステムでは二重引用符を使用します。

-c-Cも指定しない場合、CDB内のすべてのPDBが処理されます。

-loadonly

他のどの操作も実行せずに、READ WRITEモードのデータベースにDBMS_PREUPパッケージをロードします。

このパラメータを使用すると、アップグレード前情報ツールを実行したときにDBMS_PREUPパッケージがロードされてDB (DBまたはコンテナ)がREAD-ONLYモードになるように、特定の非CDBまたはCDBデータベースを準備できます。ツールを使用してデータベースを読取り専用モードで分析する場合は、データベースをREAD-ONLYモードに設定する前に、このコマンドを使用して、READ WRITEモードのデータベースにDBMS_PREUPパッケージをロードする必要があります。

このパラメータは、読取り専用のスタンバイ・データベースでも使用できます。この場合、パッケージをプライマリ・データベースにロードし、スタンバイでパッケージを実行します。

-p password

ユーザーのパスワードを指定します。

データベースに接続するのにオペレーティング・システムの認証を使用しない場合は、-pオプションを使用してコマンドラインでパスワードを指定します。-uオプションを使用して、コマンドラインでユーザー名が指定されているが、-pでパスワードが指定されていない場合は、ツールのプロンプトでパスワード入力が求められます。

-u username

チェックするデータベースにSYSDBAとして接続するために使用するユーザーのユーザー名を指定します。このオプションは、オペレーティング・システムの認証を使用してデータベースに接続しない場合にのみ、使用します。

たとえば、チェックするデータベースのOSDBAグループのメンバーではないユーザーとしてログインします。その場合、そのユーザー・アカウントにはSYSDBAシステム権限に代わるオペレーティング・システムの認証権限がありません。SYSDBAシステム権限を持つユーザーとしてログインするには、-uおよび-pオプションを使用してデータ・ディクショナリ認証を指定します。

-oh oracle_home

チェックするOracleホームを指定します。チェックするOracleホームのパスを指定します。

チェックするOracleホームのパスを指定しない場合は、アップグレード前情報ツールによりOracleホームのユーザー環境変数で指定されたパスがデフォルトとして使用されます。この変数は、LinuxおよびUnixシステムでは$ORACLE_HOME、Windowsシステムでは%ORACLE_HOME%です。

-sid system_identifier

チェックするOracleシステムのIDを指定します。チェックするデータベースのORACLE_SIDを指定します。

-help

コマンドライン構文のヘルプ・テキストを表示します。

例B-1 ソースOracleホームの非CDBの例

  1. 以前のリリースのOracleホームをポイントするようにユーザー環境変数を設定します。

    $ export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
    $ export ORACLE_BASE=/u01/app/oracle
    $ export ORACLE_SID=sales01
    $ export PATH=.:$ORACLE_HOME/bin:$PATH
    
  2. 以前のリリースのOracleホームに設定した環境設定を使用して、以前のリリースのOracle Database Serverに新しいリリースのOracle Databaseのアップグレード前情報ツールを実行します。たとえば:

    $ORACLE_HOME/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/rdbms/admin/preupgrade.jar TERMINAL TEXT

例B-2 ソースOracleホームのCDB

  1. すべてのプラガブル・データベースをオープンします。

    SQL> alter pluggable database all open;
  2. 以前のリリースのOracleホームをポイントするようにユーザー環境変数を設定します。

    $ export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
    $ export ORACLE_BASE=/u01/app/oracle
    $ export ORACLE_SID=sales01
    $ export PATH=.:$ORACLE_HOME/bin:$PATH
    
  3. -cオプションを使用し、包含リストを指定してアップグレード前情報ツールを実行します。この例で包含リストはPDB1とPDB2で、コマンドはLinuxまたはUNIXシステムで実行されます。コマンドの出力は端末に表示され、出力はテキストで表示されます。

    $ORACLE_HOME/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/preupgrade.jar TERMINAL TEXT -c 'pdb1 pdb2'

アップグレード前情報ツールの出力

アップグレード前情報ツール(preupgrade.jar)はDIRコマンドライン・オプションで指定する出力ディレクトリに修正スクリプトとログ・ファイルを作成します。

アップグレード前情報ツールを実行するときに、出力ディレクトリとして指定したディレクトリ内に次のファイルが生成されます。

ログ・ファイル(preupgrade.log)

ファイルpreupgrade.logは、FILEオプションを指定してコマンドを実行するたびにアップグレード前情報ツールにより生成されるレポートです。ログ・ファイルにはアップグレードについてのツールからのすべての推奨事項要件が含まれています。ログ・ファイルは次のパスにあります: $ORACLE_BASE/cfgtoollogs/dbua/upgrade/SID/TERMINALオプションを指定してコマンドを実行すると、このファイルの内容がディスプレイに出力されます。ログ・ファイルの例は、「アップグレード前情報ツールの出力例」の項を参照してください。

XML DBUAファイル(upgrade.xml)

アップグレード前情報ツールのコマンドラインでXMLファイル出力を指定した場合は、preupgrade.logのかわりにupgrade.xmlファイルが生成されます。

アップグレード修正ファイル(preupgrade_fixups.sql)およびアップグレード後修正ファイル(postupgrade_fixups.sql)

アップグレード前情報ツールがアップグレードをブロックまたは妨げる問題を特定します。

使用しているアプリケーションの具体的な目標を自動スクリプトが理解することはできないため、一部の問題はDBAが解決する必要があります。ただし、他の問題は解決が難しいということはありません。そのような場合、アップグレード前情報ツールは問題を解決するために必要なSQL文が含まれたスクリプトを自動的に生成します。これらのスクリプトを使用することで、考えられるアップグレードの問題を解決するためにDBAが実行する必要がある作業を実行、追加、簡素化できます。アップグレード前に問題を解決するSQL文はpreupgrade_fixups.sqlスクリプトに配置されます。アップグレード後に問題を解決するSQL文はpostupgrade_fixups.sqlスクリプトに配置されます。マルチテナント・アーキテクチャのOracle Databaseでアップグレード前情報ツールを実行するときには、すべてのコンテナにわたって統合スクリプトのpreupgrade_fixups.sqlスクリプトとpostupgrade_fixups.sqlを実行できます。catcon.plを使用して統合スクリプトを実行します。

これらの修正ファイルはどちらもアップグレード前情報ツールのDIRコマンドライン・オプションで指定した出力ディレクトリに生成されます。

スクリプトは次のステップを実行してアップグレード前問題やアップグレード後問題を解決します。

  1. アップグレード前情報ツールが特定したそれぞれの問題についてアップグレード前情報ツール・チェックを再実行して、問題がまだ残っているかどうかを判定します。

  2. 問題がまだ残っている場合、問題の修正ルーチンがあるかどうかに応じて、ツールは次のいずれかを実行します。
    • その問題についてOracleが提供している修正ルーチンがない場合、スクリプトがその修正ルーチンを実行します。その後にアップグレード前情報ツール・チェックが再実行され、その問題が解決されたことを確認します。問題が解決している場合、問題が解決されたというメッセージが表示されます。

    • Oracleにより提供された修正ルーチンがない場合、問題がまだ存在しているというメッセージが表示されます。

チェックが完了したら、スクリプトが指摘した問題がまだ存在しているか、確認します。アップグレードする前に、「必須」マークが付いたすべての問題を解決します。推奨される修正や修正情報を解決のために選択できます。preupgrade_fixups.sqlスクリプトとpostupgrade_fixups.sqlスクリプトは何度でも必要な回数だけ実行できます。問題解決計画の一部として、スクリプトを進捗レポートして使用して、残っている問題を追跡できます。

アップグレード前修正およびアップグレード後修正スクリプトにより特定された問題を解決した後で、アップグレードを行う前にもう一度、アップグレード前情報ツール(preupgrade.jar)を再実行することをお薦めします。もう一度ツールを実行すると、解決しようとしたすべての問題が解決されたことを確認できるようになります。

マルチテナント環境のシステム(CDBとPDB)をチェックしている場合、preupgrade_fixups.sqlpostupgrade_fixups.sqlスクリプトには個別のすべてのPDBの修正コードのロールアップが含まれます。それらは、現在のPDBのコードだけが実行されるようにコード化されます。各PDBで同じスクリプトを実行できます。スクリプトはそのPDBの問題だけを修正します。その結果、catcon.plpreupgrade_fixups.sqlpostupgrade_fixups.sqlを使用してCDB全体で修正を実行することが容易です。

アップグレード前情報ツールの出力例

この例では、アップグレード前情報ツールによって推奨される修正の表示方法がわかります(ただし、修正は自動的に実行されません)。

修正スクリプトを実行する方法とタイミングは、ユーザーが制御できます。

次の例は、リリース12.2.0.1 CDBでOracle Database 18cのアップグレード前情報ツールを実行することで生成され、preupgrade.logに書き込まれる出力を示しています。

$ java -jar preupgrade.jar TEXT TERMINAL
Report generated by Oracle Database Pre-Upgrade Information Tool Version
18.0.0.0.0 on 2018-06-13T15:08:45

Upgrade-To version: 18.0.0.0.0

=======================================
Status of the database prior to upgrade
=======================================
      Database Name:  CDB2
     Container Name:  CDB$ROOT
       Container ID:  1
            Version:  12.2.0.1.0
         Compatible:  12.2.0
          Blocksize:  8192
           Platform:  Linux x86 64-bit
      Timezone File:  26
  Database log mode:  NOARCHIVELOG
           Readonly:  FALSE
            Edition:  EE

  Oracle Component                       Upgrade Action    Current Status
  ----------------                       --------------    --------------
  Oracle Server                          [to be upgraded]  VALID         
  JServer JAVA Virtual Machine           [to be upgraded]  VALID         
  Oracle XDK for Java                    [to be upgraded]  VALID         
  Real Application Clusters              [to be upgraded]  OPTION OFF    
  Oracle Workspace Manager               [to be upgraded]  VALID         
  Oracle Label Security                  [to be upgraded]  VALID         
  Oracle XML Database                    [to be upgraded]  VALID         
  Oracle Java Packages                   [to be upgraded]  VALID         

==============
BEFORE UPGRADE
==============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  1.  Run 12.2.0.1.0 $ORACLE_HOME/rdbms/admin/utlrp.sql to recompile invalid
      objects.  You can view the individual invalid objects with
      
        SET SERVEROUTPUT ON;
        EXECUTE DBMS_PREUP.INVALID_OBJECTS;
      
      3 objects are INVALID.
      
      There should be no INVALID objects in SYS/SYSTEM or user schemas before
      database upgrade.

  2.  Review and remove any unnecessary HIDDEN/UNDERSCORE parameters.
      
      The database contains the following initialization parameters whose name
      begins with an underscore:
      
      _exclude_seed_cdb_view
      
      Remove hidden parameters before database upgrade unless your application
      vendors and/or Oracle Support state differently.  Changes will need to be
      made in the pfile/spfile.

  3.  (AUTOFIXUP) Gather stale data dictionary statistics prior to database
      upgrade in off-peak time using:
      
        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
      
      Dictionary statistics do not exist or are stale (not up-to-date).
      
      Dictionary statistics help the Oracle optimizer find efficient SQL
      execution plans and are essential for proper upgrade timing. Oracle
      recommends gathering dictionary statistics in the last 24 hours before
      database upgrade.
      
      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  INFORMATION ONLY
  ================
  4.  To help you keep track of your tablespace allocations, the following
      AUTOEXTEND tablespaces are expected to successfully EXTEND during the
      upgrade process.
      
                                                 Min Size
      Tablespace                        Size     For Upgrade
      ----------                     ----------  -----------
      SYSAUX                             550 MB       616 MB
      SYSTEM                             700 MB      1117 MB
      TEMP                                22 MB       150 MB
      UNDOTBS1                           315 MB       433 MB
      
      Minimum tablespace sizes for upgrade are estimates.

  5.  No action needed.
      
      Using default parallel upgrade options, this CDB with 1 PDBs will first
      upgrade the CDB$ROOT, and then upgrade at most 1 PDBs at a time using 2
      parallel processes per PDB.
      
      The number of PDBs upgraded in parallel and the number of parallel
      processes per PDB can be adjusted as described in Database Upgrade Guide.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database CDB2 container CDB$ROOT
  which are identified above as BEFORE UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/u01/app/oracle/cfgtoollogs/CDB2/preupgrade/preupgrade_fixups.sql

=============
AFTER UPGRADE
=============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  6.  Upgrade the database time zone file using the DBMS_DST package.
      
      The database is using time zone file version 26 and the target 18.0.0.0.0
      release ships with time zone file version 31.
      
      Oracle recommends upgrading to the desired (latest) version of the time
      zone file.  For more information, refer to "Upgrading the Time Zone File
      and Timestamp with Time Zone Data" in the 18.0.0.0.0 Oracle Database
      Globalization Support Guide.

  7.  (AUTOFIXUP) Gather dictionary statistics after the upgrade using the
      command:
      
        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
      
      Oracle recommends gathering dictionary statistics after upgrade.
      
      Dictionary statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans. After a database
      upgrade, statistics need to be re-gathered as there can now be tables
      that have significantly changed during the upgrade or new tables that do
      not have statistics gathered yet.

  8.  Gather statistics on fixed objects after the upgrade and when there is a
      representative workload on the system using the command:
      
        EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
      
      This recommendation is given for all preupgrade runs.
      
      Fixed object statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans.  Those
      statistics are specific to the Oracle Database release that generates
      them, and can be stale upon database upgrade.
      
      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database CDB2 container CDB$ROOT
  which are identified above as AFTER UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/u01/app/oracle/cfgtoollogs/CDB2/preupgrade/postupgrade_fixups.sql


Report generated by Oracle Database Pre-Upgrade Information Tool Version
18.0.0.0.0 on 2018-06-13T15:08:58

Upgrade-To version: 18.0.0.0.0

=======================================
Status of the database prior to upgrade
=======================================
      Database Name:  CDB2
     Container Name:  PDB$SEED
       Container ID:  2
            Version:  12.2.0.1.0
         Compatible:  12.2.0
          Blocksize:  8192
           Platform:  Linux x86 64-bit
      Timezone File:  26
  Database log mode:  NOARCHIVELOG
           Readonly:  TRUE
            Edition:  EE

  Oracle Component                       Upgrade Action    Current Status
  ----------------                       --------------    --------------
  Oracle Server                          [to be upgraded]  VALID         
  Real Application Clusters              [to be upgraded]  OPTION OFF    
  Oracle Workspace Manager               [to be upgraded]  VALID         
  Oracle XML Database                    [to be upgraded]  VALID         

==============
BEFORE UPGRADE
==============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  1.  Run 12.2.0.1.0 $ORACLE_HOME/rdbms/admin/utlrp.sql to recompile invalid
      objects.  You can view the individual invalid objects with
      
        SET SERVEROUTPUT ON;
        EXECUTE DBMS_PREUP.INVALID_OBJECTS;
      
      6 objects are INVALID.
      
      There should be no INVALID objects in SYS/SYSTEM or user schemas before
      database upgrade.

  2.  Review and remove any unnecessary HIDDEN/UNDERSCORE parameters.
      
      The database contains the following initialization parameters whose name
      begins with an underscore:
      
      _exclude_seed_cdb_view
      
      Remove hidden parameters before database upgrade unless your application
      vendors and/or Oracle Support state differently.  Changes will need to be
      made in the pfile/spfile.

  3.  (AUTOFIXUP) Gather stale data dictionary statistics prior to database
      upgrade in off-peak time using:
      
        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
      
      Dictionary statistics do not exist or are stale (not up-to-date).
      
      Dictionary statistics help the Oracle optimizer find efficient SQL
      execution plans and are essential for proper upgrade timing. Oracle
      recommends gathering dictionary statistics in the last 24 hours before
      database upgrade.
      
      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  4.  (AUTOFIXUP) Gather statistics on fixed objects prior the upgrade.
      
      None of the fixed object tables have had stats collected.
      
      Gathering statistics on fixed objects, if none have been gathered yet, is
      recommended prior to upgrading.
      
      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  INFORMATION ONLY
  ================
  5.  To help you keep track of your tablespace allocations, the following
      AUTOEXTEND tablespaces are expected to successfully EXTEND during the
      upgrade process.
      
                                                 Min Size
      Tablespace                        Size     For Upgrade
      ----------                     ----------  -----------
      SYSAUX                             235 MB       500 MB
      SYSTEM                             210 MB       584 MB
      TEMP                                20 MB       150 MB
      UNDOTBS1                           210 MB       412 MB
      
      Minimum tablespace sizes for upgrade are estimates.

  6.  No action needed.
      
      Using default parallel upgrade options, this CDB with 1 PDBs will first
      upgrade the CDB$ROOT, and then upgrade at most 1 PDBs at a time using 2
      parallel processes per PDB.
      
      The number of PDBs upgraded in parallel and the number of parallel
      processes per PDB can be adjusted as described in Database Upgrade Guide.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database CDB2 container PDB$SEED
  which are identified above as BEFORE UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/u01/app/oracle/cfgtoollogs/CDB2/preupgrade/preupgrade_fixups.sql

=============
AFTER UPGRADE
=============

  REQUIRED ACTIONS
  ================
  None

  RECOMMENDED ACTIONS
  ===================
  7.  Upgrade the database time zone file using the DBMS_DST package.
      
      The database is using time zone file version 26 and the target 18.0.0.0.0
      release ships with time zone file version 31.
      
      Oracle recommends upgrading to the desired (latest) version of the time
      zone file.  For more information, refer to "Upgrading the Time Zone File
      and Timestamp with Time Zone Data" in the 18.0.0.0.0 Oracle Database
      Globalization Support Guide.

  8.  (AUTOFIXUP) Gather dictionary statistics after the upgrade using the
      command:
      
        EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
      
      Oracle recommends gathering dictionary statistics after upgrade.
      
      Dictionary statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans. After a database
      upgrade, statistics need to be re-gathered as there can now be tables
      that have significantly changed during the upgrade or new tables that do
      not have statistics gathered yet.

  9.  Gather statistics on fixed objects after the upgrade and when there is a
      representative workload on the system using the command:
      
        EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
      
      This recommendation is given for all preupgrade runs.
      
      Fixed object statistics provide essential information to the Oracle
      optimizer to help it find efficient SQL execution plans.  Those
      statistics are specific to the Oracle Database release that generates
      them, and can be stale upon database upgrade.
      
      For information on managing optimizer statistics, refer to the 12.2.0.1
      Oracle Database SQL Tuning Guide.

  ORACLE GENERATED FIXUP SCRIPT
  =============================
  All of the issues in database CDB2 container PDB$SEED
  which are identified above as AFTER UPGRADE "(AUTOFIXUP)" can be resolved by
  executing the following from within the container

    SQL>@/u01/app/oracle/cfgtoollogs/CDB2/preupgrade/postupgrade_fixups.sql


==================
PREUPGRADE SUMMARY
==================
  /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/preupgrade.log
  /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/preupgrade_fixups.sql
  /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/postupgrade_fixups.sql

Execute fixup scripts across the entire CDB:

Before upgrade:

1. Execute preupgrade fixups with the below command
$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin $ORACLE_HOME/rdbms/admin/catcon.pl -l /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/ -b preup_CDB2 /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/preupgrade_fixups.sql

2. Review logs under /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/

After the upgrade:

1. Execute postupgrade fixups with the below command
$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/perl/lib -I$ORACLE_HOME/rdbms/admin $ORACLE_HOME/rdbms/admin/catcon.pl -l /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/ -b postup_CDB2 /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/postupgrade_fixups.sql

2. Review logs under /u01/app/oracle/cfgtoollogs/CDB2/preupgrade/

Preupgrade complete: 2018-06-13T15:09:00

Oracle Databaseのアップグレードでのアップグレード前情報ツールの警告および推奨事項

新しいリリースのOracle Databaseにアップグレードする前に、アップグレード前情報ツールの警告を分析します。ツールによってレポートされる項目ごとに、問題または警告の修正方法に関する情報が提供されます。

詳細は、インストールされているコンポーネントとスキーマの詳細は、My Oracle Supportノート472937.1を参照してください。NON VALIDステータスのコンポーネント診断の詳細は、My Oracle Supportノート753041.1を参照してください。

アクセス制御リストおよびネットワーク・ユーティリティ・パッケージの更新

この手順を使用して、アクセス制御リスト(ACL)およびネットワーク・ユーティリティ・パッケージを更新します。

Oracle Database 12c以降、UTLパッケージのアクセス制御はOracle Database Real Application Securityを使用して実装されています。UTLパッケージにはUTL_TCP、UTL_SMTP、UTL_MAIL、UTL_HTTPおよびUTL_INADDRが含まれています。アクセス制御にOracle XML DBは必要ありません。

  1. ログイン中のユーザーに、DBMS_LDAP.initで指定されたホストおよびポートのconnect権限があることを確認します。DBMS_LDAP PL/SQLパッケージおよびHttpUriTypeタイプには新しい動作があります。この新しい動作のため、新しいOracle Databaseリリースにアップグレードした後にアクセス制御リスト(ACL)を作成、または更新する必要があります。

    たとえば、アプリケーションがDBMS_LDAPパッケージに依存している場合は、エラー「ORA-24247: アクセス制御リスト(ACL)によりネットワーク・アクセスが拒否されました」が発生する可能性があります。このエラーを防ぐには、ログイン中のユーザーは、DBMS_LDAP.initで指定されたホストおよびポートのconnect権限を持っている必要があります。

  2. 次のパッケージのいずれかをインストールした場合、アップグレード後にこれらのパッケージを再インストールするように求められる可能性があります。

    • UTL_TCP

    • UTL_SMTP

    • UTL_MAIL

    • UTL_HTTP

    • UTL_INADDR

    新しいOracle Databaseリリース用にこれらのパッケージが最新バージョンであることを確認します。

参照:

アクセス制御リストの構成の詳細は、『Oracle Database Real Application Security管理者および開発者ガイド』を参照してください

依存性の評価およびネットワーク・ユーティリティ・パッケージのACLの追加

ネットワーク・ユーティリティ・パッケージの依存性についての警告を受信できます。依存性の評価および適切なアクセス制御リスト(ACL)の追加によるアクセスの提供を行うには、この手順を実行します。

  1. アップグレード前情報ツールを実行します。

  2. 次の例のような警告メッセージがないか、アップグレード前情報ツール(preupgrade.jar)の出力を調べます。

    WARNING: --> Database contains schemas with objects dependent on network packages.
    .... Refer to the Database Upgrade Guide for instructions to configure Network ACLs.
    .... USER WKSYS has dependent objects.
    .... USER SYSMAN has dependent objects.
    .... USER FLOWS_010600 has dependent objects.
    .
  3. ビューDBA_DEPENDENCIESを問い合せて、依存性の詳細を取得します。たとえば:

    SELECT * FROM DBA_DEPENDENCIES
    WHERE referenced_name IN ('UTL_TCP','UTL_SMTP','UTL_MAIL','UTL_HTTP','UTL_INADDR','DBMS_LDAP')
      AND owner NOT IN ('SYS','PUBLIC','ORDPLUGINS');
    
  4. 新しいアクセス制御がアップグレード・テストの一部であることを確認するには、アップグレード後スクリプトを用意して、そのスクリプトをデータベース環境の変数にします。

    パッケージのDBMS_NETWORK_ACL_ADMINを使用して、アクセス制御リスト(ACL)を更新します。更新したアクセス制御パッケージが前のリリース同様、機能できるように、このパッケージを使用して権限を作成し、割り当て、新しいアクセス制御に追加します。DBMS_NETWORK_ACL_ADMINを使用してアクセス制御リストを更新する方法については、『Oracle Database Real Application Security管理者および開発者ガイド』で提供されているスクリプト例を参照してください。

  5. 必要な個別の権限は、アップグレード後に付与します。アクセス権は、元のデータベースでの使用方法に基づいて決定します。

以前のOracle Databaseリリースからのパスワードが指定されたデータベース・リンクについて

この情報は、アップグレードの実行後に元のデータベース・リリースにダウングレードする場合にのみ重要となります。

新しいOracle Databaseリリースへのアップグレード中に、データベース・リンク内のすべてのパスワードは暗号化されます。

  • アップグレード元のリリースにダウングレードするには、ダウングレードする前に、暗号化されたパスワードが指定されたすべてのデータベース・リンクを削除する必要があります。したがって、ダウングレードしたデータベースにはデータベース・リンクは存在しません。

  • 元のリリースにダウングレードできるようにしておく必要がある場合は、影響を受けるデータベース・リンクの情報をSYS.LINK$表から保存しておくことで、ダウングレード後にデータベース・リンクを再作成できます。

  • 以前のリリースの詳細は、アップグレードする前のOracle Databaseリリース用の元のドキュメントを参照してください。使用しているプラットフォーム別の以前のリリースの『Oracle Databaseインストレーション・ガイド』も参照してください。

参照:

認証およびデータベース・リンクの詳細は、『Oracle Database管理者ガイド』を参照してください

TIMESTAMP WITH TIME ZONEデータ型に対するOracle Databaseの警告について

Oracle Databaseのアップグレードには、既存のTIMESTAMP WITH TIME ZONEデータ型に影響する可能性のある、更新されたタイムゾーン・データ型が含まれます。

Oracle Databaseアップグレードに付属のタイムゾーン・ファイルは、一部のタイムゾーン・リージョンの法律および移行ルールに対して行われた変更を反映するために更新されています。これらの変更は、既存のTIMESTAMP WITH TIME ZONEデータ型に影響する場合があります。

データベースをアップグレードする前に、最新のタイムゾーン・ファイルがあることを確認することをお薦めします。アップグレード対象のデータベースのタイムゾーン・ファイルのバージョンが、Oracle Databaseの新しいリリースで使用可能なタイムゾーン・ファイルの最新バージョンでない場合は、アップグレード前情報ツールによって、警告が表示されて続行方法が説明されます。

注意:

タイムゾーン・ファイルのバージョンが一致していない場合、データベースに格納されているTIMESTAMP WITH TIME ZONE型のデータは、アップグレード中に破損する可能性があります。

リリース更新(RU)に含まれるすべてのタイム・ゾーン・ファイル(DST)

Oracle Database 19c RU 19.18.0以降では、使用可能なすべてのDSTパッチがRUに付属しており、Oracle_home/oracore/zoneinfoディレクトリにデプロイされます。DSTパッチをインストールしても、データベース操作には影響しません。ただし、RUとともにパッチをインストールすると、データベースのタイムゾーン・バージョンを簡単に調整できます(そのようにする必要がある場合)。たとえば、トランスポータブル表領域またはフル・トランスポータブル・エクスポート/インポートを使用している場合は、ソース・データベースとターゲット・データベースで同じ文字セットとタイム・ゾーン設定が使用されていることを確認する必要があります。この変更により、宛先データベースをデフォルトとは異なるタイムゾーン・ファイル・バージョンを使用するように簡単に変更できます。

デフォルトでは、AutoUpgradeはデータベースのタイム・ゾーンを最新の使用可能なレベルに変更します。タイム・ゾーンをアップグレードしない場合は、AutoUpgrade構成ファイル内のローカル・パラメータtimezone_upgを明示的にnoに設定する必要があります。たとえば:

upg1.timezone_upg=no

古いデータベース・タイムゾーン・ファイルを使用する場合は、データベース環境変数ORA_TZFILEを古いタイムゾーン・ファイルに設定します。タイムゾーン・ファイルはOracle_home/oracore/zoneinfoにあります。環境変数ORA_TZFILEを使用すると、最も番号の大きいタイムゾーン・ファイルを使用するデフォルトをオーバーライドできます。

タイムゾーン・ファイル・バージョンの手動更新

次の表は、アップグレード中のデータベースのタイムゾーン・ファイルのバージョンが、インストール済のOracle Databaseリリースで指定されているバージョンと異なる場合の、アップグレード前情報ツールの操作方法を示しています。

表B-2 タイムゾーン・ファイルのバージョンの修正を行う場合の選択肢

アップグレード中のデータベースのタイムゾーン・バージョン タイムゾーン・ファイルを修正するとき

新しいデータベース・リリースに含まれている最新バージョンより前のバージョンの場合、アップグレード前情報ツールには「Database is using a time zone file older than version n」と表示されます。

データベースのアップグレードの完了後。

DBMS_DST PL/SQLパッケージを使用して、タイムゾーン・ファイルおよびTIMESTAMP WITH TIME ZONEデータのアップグレード・ステップに関する説明に従います。次のドキュメントを参照してください。

Oracle Databaseグローバリゼーション・サポート・ガイド

新しいデータベース・リリースに含まれているバージョンより新しいバージョンの場合、アップグレード前情報ツールには、「Database is using a time zone file greater than version n.」と表示されます。

データベースのアップグレードの開始前。

使用しているタイムゾーン・ファイルのバージョンに適したRDBMS DSTパッチを使用して、Oracleホームにパッチを適用する必要があります。アップグレードする各データベースにパッチを適用します。適用しない場合、データベースをアップグレードすることなくアップグレード・スクリプトが終了します。RDBMS DSTパッチはMy Oracle SupportノートID 412160.1から入手できます。