アップグレード前情報ツールおよびAutoUpgradeのアップグレード前処理
AutoUpgradeをpreupgrade
句とともに使用して、アップグレード前情報ツール(preupgrade.jar
)を介して以前に提供された機能と同じ機能を取得する方法を学習します。
Oracle Database 19cでは、アップグレード前のチェックにAutoUpgradeツールを使用することをお薦めします。アップグレード前情報ツールを使用して以前に取得したすべての機能が、AutoUpgradeツールを使用して提供されるようになりましたAutoUpgradeツールの使用方法の詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。
- アップグレード前情報ツールについて
システムがアップグレード可能かどうかを判断するには、従来のアップグレード前情報ツール(preupgrade.jar
)を使用できます。 - アップグレード前情報ツールによって生成されるアップグレード前スクリプト
アップグレード前情報ツールによって生成されるアップグレード前スクリプトを実行することによって、新しいOracle Databaseリリースへのアップグレード前に多くの問題を修正できます。 - アップグレード前情報ツールによって生成されるアップグレード後スクリプト
アップグレード後に、アップグレード前情報ツールによって生成されるアップグレード後スクリプトを実行することによって、アップグレードしたターゲット・データベースの修正の一部を完了できます。 - アップグレード前情報ツールの環境変数の設定
アップグレード前情報ツールを実行する前に、ツールを実行するOracleユーザーの環境変数を設定します。 - アップグレード前情報ツール(preupgrade.jar)のコマンド
アップグレード前情報ツール(preupgrade.jar
)のコマンドを使用して、アップグレード前にシステムをチェックします。 - アップグレード前情報ツールの出力
アップグレード前情報ツール(preupgrade.jar
)はDIRコマンドライン・オプションで指定する出力ディレクトリに修正スクリプトとログ・ファイルを作成します。 - アップグレード前情報ツールの出力例
この例では、アップグレード前情報ツールによって推奨される修正の表示方法がわかります(ただし、修正は自動的に実行されません)。 - Oracle Databaseのアップグレードでのアップグレード前情報ツールの警告および推奨事項
新しいリリースの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つの異なるスクリプト・セット:
-
preupgrade_fixups.sql
: すべてのPDB用の統合スクリプト。 -
複数の
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つの異なるセットがあります。
-
postupgrade_fixups.sql
: すべてのPDB用の統合スクリプト -
複数の
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
です
アップグレード前情報ツール(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]
オプション
コマンド・オプション | 説明 |
---|---|
|
スクリプトの出力場所です。スクリプトの出力ファイルを指定するには、 |
|
出力タイプです。XML出力を指定するには |
|
出力は指定したディレクトリに送られます。
|
|
処理に含めるCDB内のコンテナのリスト(許可リスト)を指定します。処理するPDBのスペース区切りリストを指定します。リストを指定するには、LinuxおよびUNIXオペレーティング・システムでは単一引用符を、Windowsシステムでは二重引用符を使用します。
|
|
処理から除外するCDB内のコンテナのリスト(ブロック・リスト)を指定します。処理から除外するPDBのスペース区切りリストを指定します。リストを指定するには、LinuxおよびUNIXオペレーティング・システムでは単一引用符を、Windowsシステムでは二重引用符を使用します。
|
|
他のどの操作も実行せずに、 このパラメータを使用すると、アップグレード前情報ツールを実行したときに このパラメータは、読取り専用のスタンバイ・データベースでも使用できます。この場合、パッケージをプライマリ・データベースにロードし、スタンバイでパッケージを実行します。 |
|
ユーザーのパスワードを指定します。 データベースに接続するのにオペレーティング・システムの認証を使用しない場合は、 |
|
チェックするデータベースにSYSDBAとして接続するために使用するユーザーのユーザー名を指定します。このオプションは、オペレーティング・システムの認証を使用してデータベースに接続しない場合にのみ、使用します。 たとえば、チェックするデータベースのOSDBAグループのメンバーではないユーザーとしてログインします。その場合、そのユーザー・アカウントにはSYSDBAシステム権限に代わるオペレーティング・システムの認証権限がありません。SYSDBAシステム権限を持つユーザーとしてログインするには、 |
|
チェックするOracleホームを指定します。チェックするOracleホームのパスを指定します。 チェックするOracleホームのパスを指定しない場合は、アップグレード前情報ツールによりOracleホームのユーザー環境変数で指定されたパスがデフォルトとして使用されます。この変数は、LinuxおよびUnixシステムでは |
|
チェックするOracleシステムのIDを指定します。チェックするデータベースのORACLE_SIDを指定します。 |
|
コマンドライン構文のヘルプ・テキストを表示します。 |
例B-1 ソース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に新しいリリースの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
-
すべてのプラガブル・データベースをオープンします。
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/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
コマンドライン・オプションで指定した出力ディレクトリに生成されます。
スクリプトは次のステップを実行してアップグレード前問題やアップグレード後問題を解決します。
-
アップグレード前情報ツールが特定したそれぞれの問題についてアップグレード前情報ツール・チェックを再実行して、問題がまだ残っているかどうかを判定します。
-
問題がまだ残っている場合、問題の修正ルーチンがあるかどうかに応じて、ツールは次のいずれかを実行します。
-
その問題について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全体で修正を実行することが容易です。
アップグレード前情報ツールの出力例
この例では、アップグレード前情報ツールによって推奨される修正の表示方法がわかります(ただし、修正は自動的に実行されません)。
修正スクリプトを実行する方法とタイミングは、ユーザーが制御できます。
次の例は、リリース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)およびネットワーク・ユーティリティ・パッケージを更新します。 - 依存性の評価およびネットワーク・ユーティリティ・パッケージの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アップグレードに付属のタイムゾーン・ファイルは、一部のタイムゾーン・リージョンの法律および移行ルールに対して行われた変更を反映するために更新されています。これらの変更は、既存の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」と表示されます。 |
データベースのアップグレードの完了後。
|
新しいデータベース・リリースに含まれているバージョンより新しいバージョンの場合、アップグレード前情報ツールには、「Database is using a time zone file greater than version n.」と表示されます。 |
データベースのアップグレードの開始前。 使用しているタイムゾーン・ファイルのバージョンに適した |
関連項目