非CDBアーキテクチャのOracle Databaseの手動アップグレード

この手順では、非CDBアーキテクチャのOracle Databaseをアップグレードするためのステップを示します。

注意:

Oracle Database 12cリリース1 (12.1)以降では、非CDBアーキテクチャは非推奨です。今後のリリースでサポートが終了する可能性があります。

この手順を使用する前に、次のステップを実行してください。

  • Oracle Databaseソフトウェアをインストールします

  • 新しいOracleホームを準備します。

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

ステップ:

  1. アップグレード前情報ツールをまだ実行していない場合、実行します。次に進む前に、アップグレード前情報ツールの出力を確認して、出力に記載されているすべての問題を修正します。

    たとえば、LinuxまたはUnixシステムでは、次のように入力します。

     $ORACLE_HOME/jdk/bin/java -jar /opt/oracle/product/18.0.0/rdbms/admin/preupgrade.jar FILE TEXT
  2. 適切なバックアップ計画が準備されていることを確認します。

  3. 新しいOracleホームをまだ準備していない場合、準備します。

  4. (条件付き) Oracle RAC環境の場合のみ、次のコマンドを入力して、CLUSTER_DATABASEの初期化パラメータ値をFALSEに設定します。

    ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE;
  5. データベースを停止します。次に例を示します。
    SQL> SHUTDOWN IMMEDIATE
    
  6. ご使用のオペレーティング・システムがWindowsの場合、次のステップを実行します。

    1. アップグレードするデータベースのOracleサービスOracleServiceSIDを停止します(SIDはインスタンスの名前です)。たとえば、SIDORCLの場合、コマンド・プロンプトで次のように入力します。

      C:\> NET STOP OracleServiceORCL
      
    2. コマンド・プロンプトで、ORADIMを使用してOracleサービスを削除します。ORADIMの構文およびコマンドの完全なリストは、ご使用のプラットフォームのガイドを参照してください。

      たとえば、SIDORCLの場合、次のコマンドを入力します。

      C:\> ORADIM -DELETE -SID ORCL
      
    3. コマンド・プロンプトで新しいOracle DatabaseリリースのORADIMコマンドを使用して、新しいリリースのOracle Databaseのサービスを作成します。

      次の構文を使用します(SIDはデータベースSID、PASSWORDはシステム・パスワード、USERSは最大ユーザー数に設定する値、ORACLE_HOMEはOracleホームです)。

      C:\> ORADIM -NEW -SID SID -SYSPWD PASSWORD -MAXUSERS USERS
           -STARTMODE AUTO -PFILE ORACLE_HOME\DATABASE\INITSID.ORA
      

      ほとんどのOracle Databaseサービスは、Oracleソフトウェア・インストール所有者の権限を使用してシステムにログオンします。サービスは、このユーザーの権限を使用して実行されます。ORADIMコマンドによって、このユーザー・アカウントのパスワードの入力を求められます。ORADIMを使用して、他のオプションを指定できます。

      次の例で、SIDORCLpassword (SYSPWD)がTWxy5791、ユーザーの最大数(MAXUSERS)が10、およびOracleホーム・パスがC:\ORACLE\PRODUCT\18.0.0\DBの場合、次のコマンドを入力します。

      C:\> ORADIM -NEW -SID ORCL -SYSPWD TWxy5791 -MAXUSERS 10
      -STARTMODE AUTO -PFILE C:\ORACLE\PRODUCT\18.0.0\DB\DATABASE\INITORCL.ORA
      

      ORADIMによって、ORACLE_HOME\databaseディレクトリにログが書き込まれます。

      注意:

      Oracleホームのユーザー・アカウントを使用してOracleホームを所有する場合、ORADIMコマンドによって、そのユーザーの名前とパスワードを求められます。
  7. ご使用のオペレーティング・システムがLinuxまたはUNIXの場合は、次の内容を確認します。

    1. ORACLE_SIDが正しく設定されていること。

    2. oratabファイルが新しいOracleホームを指していること

    3. 次の環境変数が新しいOracle Databaseディレクトリを指していること

      • ORACLE_HOME

      • PATH

    4. クライアントで$ORACLE_HOME環境変数を設定するために使用するどのスクリプトも、新しいOracleホームを指している必要があります。

    注意:

    Oracle Real Application Clustersデータベースをアップグレードする場合、Oracle Real Application Clustersデータベースでインスタンスが構成されているすべてのOracle Grid Infrastructureノードでこれらのチェックを実行してください。

  8. 新しいOracle DatabaseリリースのOracleインストール所有者としてシステムにログインします。

  9. 新しいOracleホーム・ディレクトリのadminディレクトリから、新しいOracleホームのSQL*Plusを起動します。

    次に例を示します。

    $ cd $ORACLE_HOME/rdbms/admin
    $ pwd
    /u01/app/oracle/product/18.0.0/dbhome_1/rdbms/admin
    $ sqlplus
  10. SPFILE.ORAまたはINIT.ORAファイルを古いOracleホームから新しいOracleホームにコピーします。

  11. SYSDBA権限を持つアカウントを使用して、アップグレードするデータベースに接続します。
    SQL> connect / as sysdba
    
  12. アップグレード・モードで非CDB Oracle Databaseを起動します。

    SQL> startup upgrade

    サポートが終了した初期化パラメータを示すエラーが表示された場合は、そのサポートが終了した初期化パラメータを記録し、アップグレードを継続します。次回、データベースを停止したときに、そのサポートが終了した初期化パラメータを削除します。

    注意:

    UPGRADEモードでデータベースを起動すると、以前のOracle Databaseリリースに基づいてデータベースがオープンされます。また、AS SYSDBAセッションへのログインの制限、システム・トリガーの無効化、およびアップグレードの環境を準備するその他の操作も実行されます。

  13. SQL*Plusを終了します。

    次に例を示します。

    SQL> EXIT
  14. アップグレードに必要なアップグレード・オプションを使用して、パラレル・アップグレード・ユーティリティ(catctl.pl)スクリプトを実行します。

    パラレル・アップグレード・ユーティリティは、Oracle_home/binにあるdbupgradeシェル・コマンドを使用すると、コマンドライン・シェル・コマンドとして実行できます。Oracle_home/binを含むようにPATH環境変数を設定した場合、コマンドラインから直接コマンドを実行できます。次に例を示します。

    $ dbupgrade -d /u01/app/oracle/12.2.0/dbhome_1

    注意:

    • パラレル・アップグレード・ユーティリティ・コマンドを実行する際に、-dオプションを使用してターゲットOracleホームのファイルパスを指定します。-lオプションを使用して、スプール・ログ・ファイルに使用するディレクトリを指定します。

  15. アップグレードに成功すると、データベースは停止します。インスタンスを再起動して、通常の操作用にシステム・パラメータを再初期化します。次に例を示します。

    SQL> STARTUP
    

    データベースが停止した後のこの再起動では、すべてのキャッシュがフラッシュされ、バッファが消去されて、その他のハウスキーピング・アクティビティが実行されます。これらの操作は、アップグレードしたOracle Databaseソフトウェアの整合性と一貫性を保証するための重要な最終ステップです。

    注意:

    データベースを起動したときに、サポートが終了した初期化パラメータがリストされているメッセージが表示された場合は、再起動の前にサポートが終了した初期化パラメータをパラメータ・ファイルから削除します。ファイルを編集してパラメータを削除するために、必要に応じてSPFILEPFILEに変換します。

  16. catcon.plを実行してutlrp.sqlを起動し、残りのすべての無効なオブジェクトを再コンパイルします。

    次に例を示します。

    $ORACLE_HOME/perl/bin/perl catcon.pl -n 1 -e -b utlrp -d '''.''' utlrp.sql
    

    -b utlrpを使用してコマンドを実行しているため、ログ・ファイルutlrp0.logはスクリプトが実行されるときに生成されます。ログ・ファイルには再コンパイルの結果が含まれています。

  17. postupgrade_fixups.sqlを実行します。次に例を示します。

    SQL> @postupgrade_fixups.sql

    注意:

    スクリプトを別の場所に配置するように指定しなかった場合、デフォルトのパスOracle_base/cfgtoollogs/SID/preupgrade (Oracle_baseはOracleベース・ホームのパス、SIDは一意のデータベース名)にあります。

  18. utlu122s.sqlを実行します。スクリプトは、すべての問題が修正されたことを検証します。

    次に例を示します。

    SQL> @$ORACLE_HOME/rdbms/admin/utllu122s.sql
    

    スクリプトを実行すると、アップグレードの結果を示すログ・ファイルutlu122s0.logが生成されます。upg_summary.logでアップグレード・レポートを確認することもできます

    データベースの状態に関する情報を確認するには、アップグレードの完了後、いつでも必要な回数だけutlu122s.sqlを実行します。utlu122s.sqlスクリプトがエラーを返したり、ステータスがVALIDではないコンポーネントを表示した場合や、コンポーネントに対してリストされたバージョンが最新のリリースではない場合、このガイドのトラブルシューティングに関する項を参照してください。

  19. DBMS_DST PL/SQLパッケージを使用してタイムゾーン・ファイルをアップグレードし、タイムゾーン・データファイルを最新の状態にします。アップグレード後にタイムゾーン・データ・ファイルを調整することもできます。

  20. SQL*Plusを終了します

    次に例を示します。

    SQL> EXIT
    
  21. (条件付き) Oracle Real Application Clustersデータベースをアップグレードする場合、次のコマンド構文を使用して、Oracle Clusterwareのデータベース構成をアップグレードします。

    srvctl upgrade database -db db-unique-name -oraclehome oraclehome

    この構文の例では、db-unique-nameは(インスタンス名ではなく)データベース名であり、oraclehomeはデータベースがアップグレードされるOracleホームの場所です。SRVCTLユーティリティでは、以前のリリースで使用されていた短いコマンドライン・インタフェース(CLI)オプションに加えて、GNUスタイルの長いオプションもサポートされます。

  22. (条件付き) Oracle RAC環境の場合のみ、すべてのノードをアップグレードした後に、次のコマンドを入力してCLUSTER_DATABASEの初期化パラメータ値をTRUEに設定し、データベースを起動します(db_unique_nameはOracle RACデータベースの名前)。

    ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=SPFILE;
    srvctl start database -db db_unique_name

これで、データベースがアップグレードされました。アップグレード後の手順を完了する準備が整いました。

注意:

古いOracleソフトウェアを保持している場合、古いソフトウェアを使用してアップグレードしたデータベースを起動しないでください。必ず新しいOracle Databaseホームで起動コマンドを使用してOracle Databaseを起動します。

古いOracle環境を削除する前に、その環境のデータファイルをすべて新しいOracle Database環境に再配置してください。

関連項目:

データファイルの再配置の詳細は、『Oracle Database管理者ガイド』を参照してください