Oracle Databaseのアップグレード後に必要な作業
アップグレードの完了後、現在の環境に対して指定されたこれらの必要な作業を確認して完了します。
Oracle Databaseをアップグレードした後で、次のアップグレード後タスクを実行する必要があります。
ノート:
この必須タスクのリストは、AutoUpgradeを使用してアップグレードを実行したという前提に基づいています。AutoUpgradeでは、手動で実行する必要があるタスク以外の多数のタスクを自動的に完了します。- 手動アップグレード後のLinuxおよびUNIXシステム上での環境変数の設定
必要とされるオペレーティング・システムの環境変数が、新しいOracle Databaseリリースのディレクトリを指していることを確認します。 - PL/SQLパッケージおよび依存プロシージャの確認
以前のリリースのOracle Databaseにインストールしたパッケージは新しいリリースでは使用できない可能性がありますが、これはアプリケーションに影響する場合があります。 - Oracle Databaseのアップグレード後のDBMS_STATSパッケージで作成された統計表のアップグレード
DBMS_STATS.CREATE_STAT_TABLE
プロシージャを使用して統計表を作成した場合、DBMS_STATS.UPGRADE_STAT_TABLE
を実行してそれらの表をアップグレードします。 - Oracle XML DBに対するFTPとHTTPのポートおよびHTTP認証の構成
Oracle Database Configuration Assistant (DBCA)では、Oracle Database 12c以降のリリースのOracle XML DBのポートは構成されません。アップグレードではダイジェスト認証が使用されます。 - Oracle Databaseのアップグレード後のOracle Textが提供するナレッジ・ベースのインストール
Oracle Databaseのアップグレード後に、Oracle Textが提供するナレッジ・ベースに対するユーザー拡張をすべて再生成する必要があります。 - 読取り専用OracleホームでのDEMOディレクトリの置換
読取り専用Oracleホームをアップグレードした後、以前のリリースのOracle Databaseのdemo
ディレクトリをコピーし、読取り専用Oracleホームのdemo
ディレクトリを新しいリリースのdemo
ディレクトリに置き換えます。 - 外部ネットワーク・サービスへのアクセス制御リスト(ACL)の構成
Oracle Database 12c以降のリリースには、UTL_TCP
、UTL_SMTP
、UTL_MAIL
、UTL_HTTP
またはUTL_INADDR
パッケージに対するファイングレイン・アクセス制御が含まれています。 - Oracle Databaseのアップグレード後のOracle Database Vaultの有効化
ターゲットのデータベース・リリースによっては、Oracle Database Vaultを無効にしないとOracle Databaseのアップグレードを完了できない場合があります。 - SQLNET.ALLOWED_LOGON_VERSIONパラメータの動作の確認
10gより前のリリースのクライアントからのOracle Databaseに対する接続は、ORA-28040: 「一致する認証プロトコルがありません」
というエラーによって失敗します。
親トピック: Oracle Databaseのアップグレード後の作業
手動アップグレード後のLinuxおよびUnixシステム上での環境変数の設定
必要とされるオペレーティング・システムの環境変数が、新しいOracle Databaseリリースのディレクトリを指していることを確認します。
通常、オペレーティング・システムの環境変数は、プロファイルおよびシェル・スクリプトで設定されます。次のOracleユーザー環境変数が新しいOracleホームのディレクトリを指していることを確認します。
-
ORACLE_HOME
-
PATH
以前のリリースのOracleホームを参照する他の環境変数(LD_LIBRARY_PATH
など)を探します。通常、環境変数内のすべての古いOracleホームを新しいOracleホーム・パスに置き換える必要があります。
PL/SQLパッケージおよび依存プロシージャの確認
以前のリリースのOracle Databaseにインストールしたパッケージは新しいリリースでは使用できない可能性がありますが、これはアプリケーションに影響する場合があります。
アップグレード後、AutoUpgradeを使用する場合は、無効なオブジェクトに関するAutoUpgradeレポートを確認します。リプレイ・アップグレードを使用する場合は、独自のスクリプトで使用していたパッケージまたは独自のスクリプトからコールしていたパッケージがすべて新しいリリースで使用できることを確認してください。パッケージに依存するプロシージャのテストは、アップグレード計画に含まれる必要があります。
データベース・アプリケーションのコードは、接続先データベースのオブジェクトを参照できます。たとえば、Oracle Call Interface(OCI)およびプリコンパイラ・アプリケーションは無名PL/SQLブロックを発行できます。Oracle Formsアプリケーションのトリガーは、スキーマ・オブジェクトを参照できます。これらのアプリケーションは、参照しているスキーマ・オブジェクトに依存しています。依存性管理の方法は開発環境によって異なります。Oracle Databaseでは、アプリケーションの依存性が自動的に追跡されることはありません。
Oracle Databaseのアップグレード後のDBMS_STATSパッケージで作成された統計表のアップグレード
DBMS_STATS.CREATE_STAT_TABLE
プロシージャを使用して統計表を作成した場合、DBMS_STATS.UPGRADE_STAT_TABLE
を実行してそれらの表をアップグレードします。
次の例で、green
は統計表の所有者で、STAT_TABLE
は統計表の名前です。
EXECUTE DBMS_STATS.UPGRADE_STAT_TABLE('green', 'stat_table');
各統計表にこのプロシージャを実行します。
参照:
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
Oracle XML DBに対するFTPとHTTPのポートおよびHTTP認証の構成
Oracle Database Configuration Assistant (DBCA)は、Oracle Database 12c以降のリリースでOracle XML DB用のポートを構成しません。アップグレードではダイジェスト認証が使用されます。
ポートを構成する場合、改善されたセキュリティ機能を利用するために、Oracle XML DB Repositoryへのアクセス用にHTTPの認証も構成することをお薦めします。
Oracle Database 12c以降では、ダイジェスト認証のサポートを提供することによって、データベースのセキュリティが向上しました。ダイジェスト認証は、HTTPプロトコルで一般に使用され、ほとんどのHTTPクライアントでサポートされている業界標準のプロトコルです。ほとんどのHTTPクライアントではこれがサポートされています。ダイジェスト認証により、暗号化(HTTPS)接続が使用されない場合でも、パスワードが常にセキュアな方法で送信されます。ダイジェスト認証をサポートすることによって、組織では、パスワードの漏えいを心配することなくOracle XML DB HTTPを使用するアプリケーションをデプロイできます。Oracle XML DBでのダイジェスト認証のサポートでは、Oracle XML DB HTTPサーバーとMicrosoft Web Folders WebDAVクライアントとの互換性も引き続き維持されます。
新しいリリースのインストールまたはアップグレード後に、次のようにOracle XML DBのFTPおよびHTTPポートを手動で構成する必要があります。
-
DBMS_XDB_CONFIG.setHTTPPort(HTTP_port_number)
を使用して、Oracle XML DBのHTTPポートを設定します。SQL> exec DBMS_XDB_CONFIG.setHTTPPort(port_number);
-
DBMS_XDB_CONFIG.setFTPPort(FTP_port_number)
を使用して、Oracle XML DBのFTPポートを設定します。SQL> exec DBMS_XDB_CONFIG.setFTPPort(FTP_port_number);
ノート:
手順内のFTPおよびHTTPで使用するポート番号は、
DBMS_XDB_CONFIG.getFTPPort
およびDBMS_XDB_CONFIG.getHTTPPort
をそれぞれ使用することによって問い合せることができます。 -
使用されているすべてのポート番号を確認するには、
DBMS_XDB_CONFIG.usedport
を問い合せます。
Oracle Databaseのアップグレード後のOracle Textが提供するナレッジ・ベースのインストール
Oracle Databaseのアップグレード後に、Oracle Textが提供するナレッジ・ベースに対するユーザー拡張をすべて再生成する必要があります。
ユーザー拡張の再生成は、指定されたOracleホームにインストールされているすべてのデータベースに影響します。
アップグレード後、新しいOracle Databaseの付属製品の一部であるOracle Textナレッジ・ベースは、すぐに使用できるようにはなっていません。アップグレード前には使用可能であったナレッジ・ベースに依存するOracle Textの機能は、アップグレード後には機能しなくなります。これらの機能を再度使用可能にするには、Oracle Textが提供するナレッジ・ベースを新しいOracle Databaseリリースのインストール・メディアからインストールする必要があります。
参照:
-
Oracle Textナレッジ・ベースの詳細は、Oracle Textアプリケーション開発者ガイドを参照してください。
-
付属製品については、Oracle Databaseインストレーション・ガイドを参照してください
読取り専用OracleホームでのDEMOディレクトリの置換
読取り専用Oracleホームをアップグレードした後、以前のリリースのOracle Databaseのdemo
ディレクトリをコピーし、読取り専用Oracleホームのdemo
ディレクトリを新しいリリースのdemo
ディレクトリに置き換えます。
Oracle Database 18c以上のリリースでは、ファイル・パスOracle_home/rdbms/demo
に製品デモンストレーション・ディレクトリが含まれています。これらのディレクトリには、各Oracle Databaseリリースのオプションと機能に固有の例と製品デモンストレーションが含まれています。これらの一部は、Oracle Database Examplesをインストールすると、アップグレード後に追加できます。以前のリリースでは、以前のリリースのデモンストレーション・ファイルを使用してダウンロードして作業した場合、2つの問題があります。新しいリリースでレビューおよびテストするために以前のリリースの作業を保存する必要があること、および新しいリリースに固有のデモンストレーションのリフレッシュを取得する必要があることです。
Oracleホームをアップグレードした後、新しいデモンストレーション・ファイルで実行する他の作業をダウンロードして実行したら、古いデモンストレーション・ファイルをリフレッシュできます。
例4-1 以前のリリースのDemoディレクトリのコピーおよび読取り専用Oracleホームでのデモンストレーションのリフレッシュ
アップグレード後に、この手順を使用して、以前のdemo
ディレクトリの作業を読取り専用Oracleホームに保存し、以前のリリースのdemo
ディレクトリを新しいリリースのdemo
ディレクトリで置き換えます。
-
Oracleソフトウェア所有者ユーザー(
oracle
)としてログインします。 -
rdbms/demo
ディレクトリが読取り専用Oracleホームにコピーされているかどうかを確認します。この例では、環境変数
ORACLE_BASE_HOME
が読取り専用Oracleホームのパスとして定義されています。LinuxおよびUNIXプラットフォーム:
$ ls -l -d $ORACLE_BASE_HOME/rdbms/demo /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/demo
Microsoft Windowsプラットフォーム
ls -l -d %ORACLE_BASE_HOME%\rdbms\demo %ORACLE_BASE_HOME%\rdbms\demo
-
ディレクトリを読取り専用Oracleホームに変更し、コピーを作成します。ここで、
demo.old_release18
は以前のリリースのデモンストレーション・ファイルに指定する名前です。cd $ORACLE_BASE_HOME/rdbms mv demo demo.old_release18
-
新しい
demo
ディレクトリをアップグレードされたOracleホームから読取り専用Oracleホームにコピーします。この例では、環境変数ORACLE_HOMEが新しいリリースのOracleホームとして定義されています。
LinuxおよびUNIX:
cp -r $ORACLE_HOME/rdbms/demo demo
Microsoft Windows
xcopy c:\%ORACLE_HOME%\rdbms\demo c:%ORACLE_BASE_HOME%\rdbms\demo /E
外部ネットワーク・サービスへのアクセス制御リスト(ACL)の構成
Oracle Database 12c以降のリリースには、UTL_TCP
、UTL_SMTP
、UTL_MAIL
、UTL_HTTP
またはUTL_INADDR
パッケージに対するファイングレイン・アクセス制御が含まれています。
これらのパッケージを使用するアプリケーションがある場合、影響を受けるパッケージを以前のリリースの場合と同様に動作させるには、Oracle Databaseのアップグレード後にデータベースのネットワーク・アクセス制御リスト(ACL)を構成する必要があります。ACLがない場合、エラー「ORA-24247: アクセス制御リスト(ACL)によりネットワーク・アクセスが拒否されました」でアプリケーションが失敗する可能性があります。
参照:
一部のユーザーはホストAに接続し、別のユーザーはホストBに接続するなど、より複雑な状況については、Oracle Databaseセキュリティ・ガイドを参照してください
Oracle Databaseのアップグレード後のOracle Database Vaultの有効化
ターゲットのデータベース・リリースによっては、Oracle Database Vaultを無効にしないとOracle Databaseのアップグレードを完了できない場合があります。
- Oracle Database Vaultの無効化なしでのOracle Databaseのアップグレード
Oracle Database 12cリリース2 (12.2.0.1)以降のリリースにアップグレードするには、ルート・コンテナでDV_PATCH_ADMIN
ロールをSYS
に共通に付与してアップグレード後に取り消すか、アップグレード後にOracle Database Vaultを無効にして再度有効にします。 - Oracle Database Vaultが関連する一般的なアップグレード・シナリオ
アップグレード後にOracle Database Vaultを有効にする必要があるかどうかは、ソースのOracle Databaseリリースによって異なります。
Oracle Database Vaultの無効化なしでのOracle Databaseのアップグレード
Oracle Database 12cリリース2 (12.2.0.1)以降のリリースにアップグレードするには、ルート・コンテナでDV_PATCH_ADMIN
ロールをSYS
に共通に付与してアップグレード後に取り消すか、アップグレード後にOracle Database Vaultを無効にして再度有効にします。
Oracle Database Vaultが有効になっており、CDB全体をアップグレードする場合は、次のいずれかの方法を使用します。
- CDBアップグレード方法1:
DV_OWNER
ロールを持つ共通ユーザーとしてルート・コンテナにログインしてから、GRANT DV_PATCH_ADMIN TO SYS CONTAINER=ALL
文を発行することで、DV_PATCH_ADMIN
をユーザーSYS
に一時的に付与します。Oracle Database Vaultの制御は、アップグレード前と同じ状態になります。アップグレードが完了した後は、DV_OWNER
ユーザーとしてルート・コンテナにログインし、REVOKE DV_PATCH_ADMIN FROM SYS CONTAINER=ALL
文を発行してSYS
からDV_PATCH_ADMIN
ロールを取り消します。 - CDBアップグレード方法2:
DV_OWNER
ロールを持つユーザーとして各コンテナにログインしてから、DBMS_MACADM.DISABLE_DV
プロシージャを実行します。最初にPDBでOracle Database Vaultを無効にしてから、最後にルート・コンテナでOracle Database Vaultを無効にする必要があります。PDBを1つのみアップグレードしている場合は、そのPDBでのみOracle Database Vaultを無効にできます。アップグレードが完了した後は、DV_OWNER
ユーザーとして各コンテナにログインしてからDVSYS.DBMS_MACADM.ENABLE_DV
プロシージャを実行することで、Oracle Database Vaultを有効にできます。Oracle Database Vaultを有効にする順序は、最初にルート・コンテナで、その後にPDBで有効にする必要があります。PDBは任意の順序で有効にできますが、最初にルート・コンテナを有効にする必要があります。
アップグレード前に手動でOracle Database Vaultを無効にした場合は、アップグレード後に手動でOracle Database Vaultを有効にする必要があります。
アップグレード前にOracle Database Vaultを有効にしていなかった場合は、アップグレード後に手動で有効にできます。
ノート:
この手順は、非CDBアップグレードにも適用されますOracle Database Vaultが関連する一般的なアップグレード・シナリオ
アップグレード後にOracle Database Vaultを有効にする必要があるかどうかは、ソースのOracle Databaseリリースによって異なります。
-
Oracle Database 11gリリース2 (11.2)以下からのアップグレード: アップグレード後、Oracle Database Vaultはデフォルトで無効になります。
-
Oracle Database 12cリリース1 (12.1)以上からのアップグレード: アップグレード後、Oracle Database Vaultはアップグレード前に用意したものと同じ強化ステータスになります。
表4-1 Oracle Database Vaultの一般的なアップグレード・シナリオおよびアップグレード準備作業
ソース・データベース・リリース | ターゲット・データベース・リリース | アップグレード前にDatabase Vaultを無効にする必要があるかどうか | アップグレード後のDatabase Vaultのステータス |
---|---|---|---|
11.2以前 | 12.1 | 必要 | 無効。アップグレード後にDatabase Vaultを手動で有効にする必要があります。 |
11.2以前 | 12.2、18.1以降 | 不要 | 無効。アップグレード後にDatabase Vaultを手動で有効にする必要があります。 |
12.1、12.2、18.1以降 | 12.2、18.1以降 | 不要 | Database Vaultはアップグレード前に用意したものと同じ強化ステータスになります。 |
SQLNET.ALLOWED_LOGON_VERSIONパラメータの動作の確認
10gより前のリリースのクライアントからのOracle Databaseに対する接続は、ORA-28040: 「一致する認証プロトコルがありません」
というエラーによって失敗します。
Oracle Database 18c以降では、SQLNET.ALLOWED_LOGON_VERSION
パラメータのデフォルト値が、11 (Oracle Database 12c (12.2))から12 (Oracle Database 18c以降のリリース)に変更されています。このパラメータの使用は非推奨になりました。
SQLNET.ALLOWED_LOGON_VERSION
は、現在、SQLNET.ALLOWED_LOGON_VERSION_SERVER
およびSQLNET.ALLOWED_LOGON_VERSION_CLIENT
パラメータに置き換えられています。アップグレードしたデータベースでSQLNET.ALLOWED_LOGON_VERSION_SERVER
パラメータを明示的に設定していない場合、10gより前のリリースのクライアントからの接続は、ORA-28040: 「一致する認証プロトコルがありません」
というエラーによって失敗します。セキュリティ強化のため、データベース・ユーザーのパスワード検証機能を確認し、SQLNET.ALLOWED_LOGON_VERSION_SERVER
およびSQLNET.ALLOWED_LOGON_VERSION_CLIENT
パラメータを設定して正しいパスワード検証機能を使用するようにデータベースを構成します。
既存のデータベースにパスワードで保護されたロール(セキュア・ロール)があり、デフォルトのSQLNET.ALLOWED_LOGON_VERSION_SERVER
設定である12を使用してOracle Database 18c以降のリリースにアップグレードする場合、そのセキュア・ロールに含まれるのはリリース10gの検証機能のみであるため、アップグレード後もセキュア・ロールが使用可能な状態になるように、管理者は各セキュア・ロールのパスワードをリセットする必要があります。
参照:
-
パスワードのセキュリティの脅威から守る方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
-
ユーザーのパスワード・バージョンの設定の詳細は、『Oracle Databaseセキュリティ・ガイド』『Oracle Databaseセキュリティ・ガイド』を参照してください。