Oracle Databaseのアップグレード前情報ツールの使用

アップグレード前情報ツール(preupgrade.jar)を理解および使用するには、これらのトピックを参照してください。

アップグレード前情報ツールの概要

アップグレード前情報ツールはOracle Database 12cリリース2 (12.2)で改訂され、強化されています。以前のリリースのOracle Databaseでこのツールを実行し、アップグレードする準備ができているかどうかを判定します。

Oracle Database 12cリリース2では、preupgrade.jarアップグレード前情報ツールが導入されています。ツールはオペレーティング・システムのコマンドラインから実行できます。以前のOracle Databaseリリースで、アップグレード前情報ツールはSQL*Plus内でSQLファイルとして実行されていました。

注意:

Oracle Database 12cリリース2にアップグレードする前に、アップグレード前情報ツールを実行する必要があります。

アップグレード前情報ツールの実行内容

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

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

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

  • アップグレード前修正:

    • 非CDB: preupgrade_fixups.sql

    • CDB: preupgrade_fixups.sql (すべてのPDB用の統合スクリプト)、および各PDB用の個別スクリプト、postupgrade_fixups_pdbname.sql (pdbnameはPDBの名前です)。

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

  • アップグレード後修正:

    • 非CDB: postupgrade_fixups.sql

    • CDB: postupgrade_fixups.sql (すべてのPDB用の統合スクリプト)、および各PDB用の個別スクリプト、 preupgrade_fixups_pdbname.sql (pdbnameはPDBの名前です)。

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

  • 検出された問題にはそれぞれ問題の説明と、その問題を解決するために実行できる作業が含まれています。アップグレード前ツールそのものは、エラーを修正するための変更をデータベースに加えるわけではありません。しかし、検出されたエラーを修正するために使用できるスクリプトが生成されます。

  • ツールはアップグレード前SQLスクリプト、preupgrade_fixups.sqlを生成します。アップグレードの前にこのスクリプトを実行して、アップグレード前に修正できる問題を解決します。

    preupgrade_fixups.sqlスクリプトは自動スクリプトが安全に修正できる問題だけを修正します。

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

  • ツールはアップグレード後SQLスクリプト、postupgrade_fixups.sqlを生成します。このスクリプトはアップグレードの後に実行して、アップグレード後に修正できる問題を修正できます。

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

アップグレード前情報ツールの出力ファイルの概要

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

  • ログ・ファイルpreupgrade.log

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

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

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

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

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

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

アップグレード前情報ツールを実行する前に、ツールを実行するOracleユーザーの環境変数を設定し、分析のためにプラガブル・データベース(PDB)をオープンにします。

アップグレード前情報ツールのユーザー環境変数を設定する必要があります。この例は、シェル・コマンドを使用してユーザー環境変数を設定し、以前のリリースの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 12cリリース(12.2)に必要なシステム・チェックを付けてこれを構成してきました。ただし、ツールが実行するチェックは以前のリリースの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

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

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

他のどの処置も実行せずに、アップグレード前情報ツールをデータベースにロードします。

このパラメータを使用して以前のリリースをアップグレード用に準備します。たとえば、以前のリリースのPDBを現在のリリースのCDBに接続すると、ロードされたすべてのパッケージおよびディレクトリがPDBにない場合、またはディレクトリが新しいOracleホームにない場合に、このオプションを使用してツールをロードできます。

-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

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

例2-4 ソース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 (12.2)に新しいリリースのOracle Databaseのアップグレード前情報ツールを実行します。

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

例2-5 ソース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/12.2.0/dbhome_1/rdbms/admin/preupgrade.jar TERMINAL TEXT -c 'pdb1 pdb2'

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

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

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

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

ファイルpreupgrade.logは、FILEオプションを指定してコマンドを実行するたびにアップグレード前情報ツールにより生成されるレポートです。ログ・ファイルにはアップグレードについてのツールからのすべての推奨事項要件が含まれています。ログ・ファイルは次のパスにあります(timestampはコマンドが実行された日時です)。$ORACLE_BASE/cfgtoollogs/dbua/upgradetimestamp/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全体で修正を実行することが容易です。

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 12cに付属のタイムゾーン・ファイルは、一部のタイムゾーン・リージョンの変換ルールに対して行われた変更を反映するために更新されています。これらの変更は、既存のTIMESTAMP WITH TIME ZONEデータ型に影響する場合があります。

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

注意:

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

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

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

新しいデータベース・リリースに含まれている最新バージョンより前のバージョンの場合、アップグレード前情報ツールには「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から入手できます。

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

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

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

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

Report generated by Oracle Database Pre-Upgrade Information Tool Version
12.2.0.1.0

Upgrade-To version: 12.2.0.1.0

=======================================
Status of the database prior to upgrade
=======================================

      Database Name:  AIME1
     Container Name:  Not Applicable in Pre-12.1 database
       Container ID:  Not Applicable in Pre-12.1 database
            Version:  11.2.0.3.0
         Compatible:  11.2.0
          Blocksize:  8192
           Platform:  Linux x86 64-bit
      Timezone File:  14
  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
  Oracle Workspace Manager               [to be upgraded]  VALID
  OLAP Analytic Workspace                [to be upgraded]  VALID
  Oracle Label Security                  [to be upgraded]  VALID
  Oracle Database Vault                  [to be upgraded]  VALID
  Oracle Enterprise Manager Repository   [to be upgraded]  VALID
  Oracle Text                            [to be upgraded]  VALID
  Oracle XML Database                    [to be upgraded]  VALID
  Oracle Java Packages                   [to be upgraded]  VALID
  Oracle Multimedia                      [to be upgraded]  VALID
  Oracle Spatial                         [to be upgraded]  VALID
  Expression Filter                      [to be upgraded]  VALID
  Rule Manager                           [to be upgraded]  VALID
  Oracle Application Express             [to be upgraded]  VALID
  Oracle OLAP API                        [to be upgraded]  VALID


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

  Run <preupgradeLogDirPath>/preupgrade_fixups.sql to complete all
  of the BEFORE UPGRADE action items below marked with '(AUTOFIXUP)'.

  REQUIRED ACTIONS
  ================
   + Adjust TABLESPACE SIZES as needed.
                                                Auto      12.2.0.1.0
     Tablespace                        Size     Extend    Min Size    Action
     ----------                     ----------  --------  ----------  ------

     EXAMPLE                            314 MB  DISABLED      309 MB  None
     SYSAUX                             530 MB  ENABLED      1442 MB  None
     SYSTEM                             720 MB  ENABLED      1228 MB  None
     TEMP                                20 MB  ENABLED       150 MB  None
     UNDOTBS1                            75 MB  ENABLED       400 MB  None

     Note that 12.2.0.1.0 minimum sizes are estimates.
     If you plan to upgrade multiple pluggable databases concurrently,
     then you must ensure that the UNDO tablespace size is equal to at least
     the number of pluggable databases that you upgrade concurrently,
     multiplied by that minimum.  Failing to allocate sufficient space can
     cause the upgrade to fail.




   + Update NUMERIC INITIALIZATION PARAMETERS to meet estimated minimums.

     Parameter                         12.2.0.1.0 minimum
     ---------                         ------------------
     processes                                        300




   + You must rename or drop the USER or ROLE named AUDSYS from the database.


     The database contains a USER or ROLE named AUDSYS. That name was
     reserved to Oracle in release 12.1.0.1.0, and remains reserved in
     release 12.2.0.1.0.

     Oracle occasionally adds new internal USERs and ROLEs as the database
     evolves.  To avoid a name conflict in the upgraded version, a source
     database must not contain any USER or ROLE with a name that matches one
     reserved by Oracle in the target release.

   + You must rename or drop the USER or ROLE named AUDIT_ADMIN from the
     database.

     The database contains a USER or ROLE named AUDIT_ADMIN. That name was
     reserved to Oracle in release 12.1.0.1.0, and remains reserved in
     release 12.2.0.1.0.

     Oracle occasionally adds new internal USERs and ROLEs as the database
     evolves.  To avoid a name conflict in the upgraded version, a source
     database must not contain any USER or ROLE with a name that matches one
     reserved by Oracle in the target release.

   + Run rdbms/admin/olspreupgrade from the new Oracle Database 12.2.0.1.0
     home.

     olspreupgrade.sql has not been run on this database.  To view the number
     of records that olspreupgrade.sql moves, use the following command:

       SELECT count(*) from system.aud$

     As part of the upgrade to 12.2.0.1.0, records in the 11.2.0.3.0 audit
     table SYSTEM.AUD$ are moved to SYS.AUD$. This step can be manually
     performed before the upgrade to reduce downtime.  Refer to the
     12.2.0.1.0 Oracle Label Security Administrator's Guide, or to Oracle
     Database Upgrade Guide for further details.

   + (AUTOFIXUP) Empty the RECYCLEBIN immediately before database upgrade.

     The database contains 3 objects in the recycle bin.

     The recycle bin must be completely empty before database upgrade.

  RECOMMENDED ACTIONS
  ===================
   + Remove the EM repository.

     - Copy the rdbms/admin/emremove.sql script from the target 12.2.0.1.0
     ORACLE_HOME into the source 11.2.0.3.0 ORACLE_HOME.

     - Stop EM Database Control:

       $> emctl stop dbconsole

     - Connect to the database using the SYS account AS SYSDBA

       SET ECHO ON;
       SET SERVEROUTPUT ON;
       @emremove.sql

     Without the set echo and serveroutput commands, you will not be able to
     follow the progress of the script.

     The database has an Enterprise Manager Database Control repository.

     Starting with Oracle Database 12c, the local Enterprise Manager Database
     Control does not exist anymore. The repository will be removed from your
     database during the upgrade.  This step can be manually performed before
     the upgrade to reduce downtime.

   + Run 11.2.0.3.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;

     2 objects are INVALID.

     There should be no INVALID objects in SYS/SYSTEM or user schemas before
     database upgrade.

   + Remove OLAP Catalog by running the SQL script
     $ORACLE_HOME/olap/admin/catnoamd.sql script.

     The OLAP Catalog component, AMD, exists in the database.

     Starting with Oracle Database 12c, the OLAP Catalog (OLAP AMD) is
     desupported and will be removed from the database during the database
     upgrade.  This step can be manually performed before the upgrade to
     reduce downtime.