Oracle Databaseのアップグレード前情報ツールの使用
アップグレード前情報ツール(preupgrade.jar
)を理解および使用するには、これらのトピックを参照してください。
- アップグレード前情報ツールの概要
アップグレード前情報ツールはOracle Database 12cリリース2 (12.2)で改訂され、強化されています。以前のリリースのOracle Databaseでこのツールを実行し、アップグレードする準備ができているかどうかを判定します。 - アップグレード前情報ツールの環境変数の設定
アップグレード前情報ツールを実行する前に、ツールを実行するOracleユーザーの環境変数を設定し、分析のためにプラガブル・データベース(PDB)をオープンにします。 - アップグレード前情報ツール(preupgrade.jar)のコマンド
アップグレード前情報ツール(preupgrade.jar
)のコマンドを使用して、アップグレード前にシステムをチェックします。 - アップグレード前情報ツールの出力
アップグレード前情報ツール(preupgrade.jar
)はDIRコマンドライン・オプションで指定する出力ディレクトリに修正スクリプトとログ・ファイルを作成します。 - Oracle Databaseのアップグレードでのアップグレード前情報ツールの警告および推奨事項
この項を使用して、新しいリリースのOracle Databaseにアップグレードする前にアップグレード前情報ツールの警告を分析します。 - アップグレード前情報ツールの出力例
この例では、アップグレード前情報ツールによって推奨される修正の表示方法がわかります(ただし、修正は自動的に実行されません)。
親トピック: Oracle Databaseのアップグレードの準備
アップグレード前情報ツールの概要
アップグレード前情報ツールは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
です。
アップグレード前情報ツール(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」を指定した場合、画面出力はディスプレイに表示され、スクリプトとログは出力ディレクトリのパスに置かれます。 |
|
出力タイプです。テキスト出力を指定するには「TEXT」を使用します。XML出力を指定するには「XML」を使用します。出力タイプを指定しない場合、デフォルトはテキストになります。 |
|
出力は指定したディレクトリに送られます。
|
|
処理に含めるCDB内のコンテナのリストを指定します(「ホワイト・リスト」)。処理するPDBのスペース区切りリストを指定します。リストを指定するには、LinuxおよびUNIXオペレーティング・システムでは単一引用符を、Windowsシステムでは二重引用符を使用します。
|
|
処理から除外するCDB内のコンテナのリストを指定します(「ブラック・リスト」)。処理から除外するPDBのスペース区切りリストを指定します。リストを指定するには、LinuxおよびUNIXオペレーティング・システムでは単一引用符を、Windowsシステムでは二重引用符を使用します。
|
|
他のどの処置も実行せずに、アップグレード前情報ツールをデータベースにロードします。 このパラメータを使用して以前のリリースをアップグレード用に準備します。たとえば、以前のリリースのPDBを現在のリリースのCDBに接続すると、ロードされたすべてのパッケージおよびディレクトリがPDBにない場合、またはディレクトリが新しいOracleホームにない場合に、このオプションを使用してツールをロードできます。 |
|
ユーザーのパスワードを指定します。 データベースに接続するのにオペレーティング・システムの認証を使用しない場合は、 |
|
チェックするデータベースにSYSDBAとして接続するために使用するユーザーのユーザー名を指定します。このオプションは、オペレーティング・システムの認証を使用してデータベースに接続しない場合にのみ、使用します。 たとえば、チェックするデータベースのOSDBAグループのメンバーではないユーザーとしてログインします。その場合、そのユーザー・アカウントにはSYSDBAシステム権限に代わるオペレーティング・システムの認証権限がありません。SYSDBAシステム権限を持つユーザーとしてログインするには、 |
|
チェックするOracleホームを指定します。チェックするOracleホームのパスを指定します。 チェックするOracleホームのパスを指定しない場合は、アップグレード前情報ツールによりOracleホームのユーザー環境変数で指定されたパスがデフォルトとして使用されます。この変数は、LinuxおよびUNIXシステムでは$ORACLE_HOME、Windowsシステムでは%ORACLE_HOME%です。 |
|
チェックするOracleシステムのIDを指定します。チェックするデータベースのORACLE_SIDを指定します。 |
|
コマンドライン構文のヘルプ・テキストを表示します。 |
例2-4 ソースOracleホームの非CDBの例
-
以前のリリースの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
-
以前のリリースの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
-
すべてのプラガブル・データベースをオープンします。
SQL> alter pluggable database all open;
-
以前のリリースの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
-
-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
コマンドライン・オプションで指定した出力ディレクトリに生成されます。
スクリプトは次のステップを実行してアップグレード前問題やアップグレード後問題を解決します。
-
アップグレード前情報ツールが特定したそれぞれの問題についてアップグレード前情報ツール・チェックを再実行して、問題がまだ残っているかどうかを判定します。
-
問題がまだ残っている場合、問題の修正ルーチンがあるかどうかに応じて、ツールは次のいずれかを実行します。
-
その問題についてOracleが提供している修正ルーチンがない場合、スクリプトがその修正ルーチンを実行します。その後にアップグレード前情報ツール・チェックが再実行され、その問題が解決されたことを確認します。問題が解決している場合、問題が解決されたというメッセージが表示されます。
-
Oracleにより提供された修正ルーチンがない場合、問題がまだ存在しているというメッセージが表示されます。
-
チェックが完了したら、スクリプトが指摘した問題がまだ存在しているか、確認します。アップグレードする前に、「必須」マークが付いたすべての問題を解決します。推奨される修正や修正情報を解決のために選択できます。preupgrade_fixups.sql
スクリプトとpostupgrade_fixups.sql
スクリプトは何度でも必要な回数だけ実行できます。問題解決計画の一部として、スクリプトを進捗レポートして使用して、残っている問題を追跡できます。
アップグレード前修正およびアップグレード後修正スクリプトにより特定された問題を解決した後で、アップグレードを行う前にもう一度、アップグレード前情報ツール(preupgrade.jar
)を再実行することをお薦めします。もう一度ツールを実行すると、解決しようとしたすべての問題が解決されたことを確認できるようになります。
マルチテナント環境のシステム(CDBとPDB)をチェックしている場合、preupgrade_fixups.sql
とpostupgrade_fixups.sql
スクリプトには個別のすべてのPDBの修正コードのロールアップが含まれます。それらは、現在のPDBのコードだけが実行されるようにコード化されます。各PDBで同じスクリプトを実行できます。スクリプトはそのPDBの問題だけを修正します。その結果、catcon.pl
でpreupgrade_fixups.sql
とpostupgrade_fixups.sql
を使用してCDB全体で修正を実行することが容易です。
Oracle Databaseのアップグレードでのアップグレード前情報ツールの警告および推奨事項
この項を使用して、新しいリリースのOracle Databaseにアップグレードする前にアップグレード前情報ツールの警告を分析します。
インストールされているコンポーネントとスキーマの詳細は、My Oracle Supportノート472937.1を参照してください。NON VALIDステータスのコンポーネント診断の詳細は、My Oracle Supportノート753041.1を参照してください。
- アクセス制御リストおよびネットワーク・ユーティリティ・パッケージの更新
この手順を使用して、アクセス制御リスト(ACL)およびネットワーク・ユーティリティ・パッケージを更新します。 - 依存性の評価およびネットワーク・ユーティリティ・パッケージのACLの追加
ネットワーク・ユーティリティ・パッケージの依存性についての警告を受信できます。依存性の評価および適切なアクセス制御リスト(ACL)の追加によるアクセスの提供を行うには、この手順を実行します。 - 以前のOracle Databaseリリースからのパスワードが指定されたデータベース・リンクの概要
この情報は、アップグレードの実行後に元のデータベース・リリースにダウングレードする場合にのみ重要となります。 - TIMESTAMP WITH TIME ZONEデータ型に対するOracle Databaseの警告の概要
Oracle Databaseのアップグレードには、既存のTIMESTAMP WITH TIME ZONE
データ型に影響する可能性のある、更新されたタイムゾーン・データ型が含まれます。
関連項目
アクセス制御リストおよびネットワーク・ユーティリティ・パッケージの更新
この手順を使用して、アクセス制御リスト(ACL)およびネットワーク・ユーティリティ・パッケージを更新します。
Oracle Database 12c以降、UTLパッケージのアクセス制御はOracle Database Real Application Securityを使用して実装されています。UTLパッケージにはUTL_TCP、UTL_SMTP、UTL_MAIL、UTL_HTTPおよびUTL_INADDRが含まれています。アクセス制御にOracle XML DBは必要ありません。
-
ログイン中のユーザーに、
DBMS_LDAP.init
で指定されたホストおよびポートのconnect
権限があることを確認します。DBMS_LDAP
PL/SQLパッケージおよびHttpUriType
タイプには新しい動作があります。この新しい動作のため、新しいOracle Databaseリリースにアップグレードした後にアクセス制御リスト(ACL)を作成、または更新する必要があります。たとえば、アプリケーションが
DBMS_LDAP
パッケージに依存している場合は、エラー「ORA-24247: アクセス制御リスト(ACL)によりネットワーク・アクセスが拒否されました」が発生する可能性があります。このエラーを防ぐには、ログイン中のユーザーは、DBMS_LDAP.initで指定されたホストおよびポートのconnect
権限を持っている必要があります。 -
次のパッケージのいずれかをインストールした場合、アップグレード後にこれらのパッケージを再インストールするように求められる可能性があります。
-
UTL_TCP
-
UTL_SMTP
-
UTL_MAIL
-
UTL_HTTP
-
UTL_INADDR
新しいOracle Databaseリリース用にこれらのパッケージが最新バージョンであることを確認します。
-
参照:
アクセス制御リストの構成の詳細は、『Oracle Database Real Application Security管理者および開発者ガイド』を参照してください
依存性の評価およびネットワーク・ユーティリティ・パッケージのACLの追加
ネットワーク・ユーティリティ・パッケージの依存性についての警告を受信できます。依存性の評価および適切なアクセス制御リスト(ACL)の追加によるアクセスの提供を行うには、この手順を実行します。
-
アップグレード前情報ツールを実行します。
-
次の例のような警告メッセージがないか、アップグレード前情報ツール(
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. .
-
ビュー
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');
-
新しいアクセス制御がアップグレード・テストの一部であることを確認するには、アップグレード後スクリプトを用意して、そのスクリプトをデータベース環境の変数にします。
パッケージの
DBMS_NETWORK_ACL_ADMIN
を使用して、アクセス制御リスト(ACL)を更新します。更新したアクセス制御パッケージが前のリリース同様、機能できるように、このパッケージを使用して権限を作成し、割り当て、新しいアクセス制御に追加します。DBMS_NETWORK_ACL_ADMIN
を使用してアクセス制御リストを更新する方法については、『Oracle Database Real Application Security管理者および開発者ガイド』で提供されているスクリプト例を参照してください。 -
必要な個別の権限は、アップグレード後に付与します。アクセス権は、元のデータベースでの使用方法に基づいて決定します。
以前の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」と表示されます。 |
データベースのアップグレードの完了後。
|
新しいデータベース・リリースに含まれているバージョンより新しいバージョンの場合、アップグレード前情報ツールには、「Database is using a time zone file greater than version n.」と表示されます。 |
データベースのアップグレードの開始前。 使用しているタイムゾーン・ファイルのバージョンに適した |
アップグレード前情報ツールの出力例
この例では、アップグレード前情報ツールによって推奨される修正の表示方法がわかります(ただし、修正は自動的に実行されません)。
修正スクリプトを実行する方法とタイミングは、ユーザーが制御できます。
次の例は、リリース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.