Oracle Databaseのアップグレード後に必要な作業

アップグレードの完了後、現在の環境に対して指定されたこれらの必要な作業を確認して完了します。

Oracle Databaseをアップグレードした後で、次のアップグレード後タスクを実行する必要があります。

ノート:

この必須タスクのリストは、AutoUpgradeを使用してアップグレードを実行したという前提に基づいています。AutoUpgradeでは、手動で実行する必要があるタスク以外の多数のタスクを自動的に完了します。

手動アップグレード後の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ポートを手動で構成する必要があります。

  1. DBMS_XDB_CONFIG.setHTTPPort(HTTP_port_number)を使用して、Oracle XML DBのHTTPポートを設定します。

    SQL> exec DBMS_XDB_CONFIG.setHTTPPort(port_number);
    
  2. 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をそれぞれ使用することによって問い合せることができます。

  3. 使用されているすべてのポート番号を確認するには、DBMS_XDB_CONFIG.usedportを問い合せます。

Oracle Databaseのアップグレード後のOracle Textが提供するナレッジ・ベースのインストール

Oracle Databaseのアップグレード後に、Oracle Textが提供するナレッジ・ベースに対するユーザー拡張をすべて再生成する必要があります。

ユーザー拡張の再生成は、指定されたOracleホームにインストールされているすべてのデータベースに影響します。

アップグレード後、新しいOracle Databaseの付属製品の一部であるOracle Textナレッジ・ベースは、すぐに使用できるようにはなっていません。アップグレード前には使用可能であったナレッジ・ベースに依存する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ディレクトリで置き換えます。

  1. Oracleソフトウェア所有者ユーザー(oracle)としてログインします。

  2. 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
  3. ディレクトリを読取り専用Oracleホームに変更し、コピーを作成します。ここで、demo.old_release18は以前のリリースのデモンストレーション・ファイルに指定する名前です。

    cd $ORACLE_BASE_HOME/rdbms
    mv demo demo.old_release18
  4. 新しい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_TCPUTL_SMTPUTL_MAILUTL_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が有効になっており、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の検証機能のみであるため、アップグレード後もセキュア・ロールが使用可能な状態になるように、管理者は各セキュア・ロールのパスワードをリセットする必要があります。

参照: