プライマリ・コンテンツに移動
Oracle® Data Guard概要および管理
12c リリース1 (12.1)
B71304-07
目次へ移動
目次
索引へ移動
索引

前
次

B Oracle Data Guard構成におけるデータベースのアップグレードおよびダウングレード

次の各項では、Oracle Data Guard構成にフィジカル・スタンバイ・データベースまたはロジカル・スタンバイ・データベースが存在する場合に、Oracleデータベースをアップグレードおよびダウングレードする方法を説明します。

B.1 Oracle Databaseソフトウェアをアップグレードする前の注意事項

Oracle Databaseソフトウェアのアップグレードを開始する前に、次のことに注意してください。

  • Oracle Data Guardブローカを使用して構成を管理している場合は、ブローカ構成の削除や無効化の詳細は、『Oracle Data Guard Broker』マニュアルの指示を参照してください。

  • これらの項で説明する手順は、『Oracle Databaseアップグレード・ガイド』に記載されている手順とともに使用します。

  • NOLOGGING操作をチェックします。NOLOGGING操作が実行されていた場合は、スタンバイ・データベースを更新する必要があります。詳細は、「NOLOGGING句を指定した後のリカバリ」を参照してください。

  • OFFLINE IMMEDIATEが原因でリカバリを必要とする表領域またはデータファイルを書き留めておきます。アップグレード前に表領域またはデータファイルをリカバリし、オンラインまたはオフラインにする必要があります。

  • Oracle Data Guard構成では、すべてのフィジカルおよびスナップショット・スタンバイ・データベースはプライマリ・データベースからパスワード・ファイルのコピーを使用する必要があり、管理権限(SYSDGSYSOPERSYSDBAなど)を付与または解除されるたびに、あるいは管理権限を持つユーザーのパスワード変更後、このコピーのリフレッシュが必要です

注意:

カスケード・スタンバイが構成にある場合、これらのカスケード・スタンバイは他のスタンバイと同じルールに従う必要がありますが、最後に停止し、最初に新しいホームで再起動します。

B.2 フィジカル・スタンバイ・データベースが存在する場合のOracle Databaseのアップグレード

構成にフィジカル・スタンバイ・データベースが存在する場合に、Oracle Database 12c リリース1 (12.1)にアップグレードする手順は、次のとおりです。

  1. Oracle Databaseアップグレード・ガイド』のアップグレードの準備に関する項に記載されている手順を確認して実行します。
  2. 『Oracle Databaseアップグレード・ガイド』に従って、Oracleソフトウェアの新しいリリースを、フィジカル・スタンバイ・データベースとプライマリ・データベース・システムの新しいOracleホームにインストールします。
  3. プライマリ・データベースを停止します。
  4. フィジカル・スタンバイ・データベースを停止します。
  5. アップグレード対象のOracleホームで実行しているすべてのリスナー、エージェントおよびその他のプロセスを停止します。この手順は、Oracle Real Application Cluster(Oracle RAC)環境のすべてのノードで実行します。
  6. Oracle Automatic Storage Management(Oracle ASM)が使用中の場合は、Oracle ASMを使用するすべてのデータベースを停止してから、すべてのOracle ASMインスタンスを停止します。
  7. 新しいOracleホームで、手順5で停止したすべてのリスナー、エージェントおよびその他のプロセスを再起動します。
  8. フィジカル・スタンバイ・データベースを、新しいOracleホーム(アップグレード済バージョン)にマウントします。フィジカル・スタンバイ・データベースを起動する方法については、「フィジカル・スタンバイ・データベースの起動」を参照してください。

    注意:

    プライマリ・データベースのアップグレードが完了してから、スタンバイ・データベースをオープンします。

  9. フィジカル・スタンバイ・データベースでREDO Applyを開始します。Redo Applyを開始する方法については、「フィジカル・スタンバイ・データベースの起動」を参照してください。
  10. 『Oracle Databaseアップグレード・ガイド』に従ってプライマリ・データベースをアップグレードします。フィジカル・スタンバイ・データベースは、プライマリ・データベースでアップグレード時に生成されたREDOを適用するとアップグレードされます。
  11. アップグレード後のプライマリ・データベースをオープンします。
  12. アップグレードの前にOracle Active Data Guardが使用されている場合、これをアップグレード後に再び有効にする方法は「リアルタイム問合せ」を参照してください。
  13. オプションで、「アップグレード後のCOMPATIBLE初期化パラメータの変更」で説明されている手順に従い、COMPATIBLE初期化パラメータを変更します。

    注意:

    Windowsプラットフォームでは、ORADIMユーティリティを使用して(旧データベース・バージョンの)データベース・サービスを削除し、新規データベース・バージョンの新規データベース・サービスを作成する必要があります。プライマリ・サーバーとスタンバイ・サーバーの両方で、OracleService<SID>を置換する必要があります。

B.3 ロジカル・スタンバイ・データベースが存在する場合のOracle Databaseのアップグレード

注意:

このトピックでは、ロジカル・スタンバイ・データベースが存在する場合にOracle Databaseソフトウェアをアップグレードする従来の方法を説明します。「SQL Applyを使用したOracle Databaseのアップグレード」にある2つ目の方法では、ロジカル・スタンバイ・データベースが存在する場合にローリング・アップグレードを行って停止時間を最短に抑える方法を説明します。完全なアップグレードを実行するには、どちらか一方の方法の手順のみを使用してください。アップグレードの実行に両方の方法を使用したり、2つの方法の手順を組み合せようとしないでください。

この項で説明する手順では、プライマリ・データベースがMAXIMUM PERFORMANCEデータ保護モードで稼働していると仮定しています。

構成にロジカル・スタンバイ・データベースが存在する場合に、Oracle Database 12c リリース1 (12.1)にアップグレードする手順は、次のとおりです。

  1. Oracle Databaseアップグレード・ガイド』のアップグレードの準備に関する項に記載されている手順を確認して実行します。
  2. 必要に応じて、プライマリ・データベースでデータ保護モードをMAXIMUM PERFORMANCEに設定します。
    SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
    
  3. プライマリ・データベースで、すべてのユーザー・アクティビティを停止し、ロジカル・スタンバイ・データベースに関連付けられているリモート・アーカイブ先を遅延させます(この手順では、LOG_ARCHIVE_DEST_2がロジカル・スタンバイ・データベースに関連付けられていると仮定しています)。
    SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER SCOPE=BOTH;
    SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
    
  4. ロジカル・スタンバイ・データベースでSQL Applyを停止します。
    SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
    
  5. 『Oracle Databaseアップグレード・ガイド』に従って、プライマリ・データベースにOracleソフトウェアの新しいリリースをインストールします。
  6. 『Oracle Databaseアップグレード・ガイド』に従って、ロジカル・スタンバイ・データベースにOracleソフトウェアの新しいリリースをインストールします。

    注意:

    手順5および手順6は、アップグレード手順中の停止時間を短縮するために、同時に実行できます(つまり、プライマリ・データベースとスタンバイ・データベースは同時にアップグレードできます)。

  7. アップグレード後のロジカル・スタンバイ・データベースでSQL Applyを開始します。Oracle RACを使用している場合は、他のスタンバイ・データベース・インスタンスを起動します。
    SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
    
  8. アップグレード後のプライマリ・データベースをオープンし、ユーザーが接続できるようにします。Oracle RACを使用している場合は、他のプライマリ・データベース・インスタンスを起動します。

    また、次のようにして、アップグレード後のロジカル・スタンバイ・データベースへのアーカイブを有効にします。

    SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
    
  9. 必要に応じて、手順2で元のデータ保護モードを変更した場合は、そのモードをリセットします。
  10. オプションで、「アップグレード後のCOMPATIBLE初期化パラメータの変更」で説明されている手順に従い、COMPATIBLE初期化パラメータを変更します。

B.4 アップグレード後のCOMPATIBLE初期化パラメータの変更

Oracle Databaseの新リリースにアップグレードする際、一部の新機能のためにデータベースが前のリリースと互換性がなくなる場合があります。Oracle Databaseでは、COMPATIBLE初期化パラメータにより、データベースの互換性を制御できます。

アップグレードが完了したら、COMPATIBLE初期化パラメータの設定をOracle Databaseの新リリース用に最大レベルに増やすことができます。データベースを元のリリースにダウングレードする機能がもう必要ないことが確実な場合は、COMPATIBLE初期化パラメータを新しいデータベースで必要な互換性レベルに基づいて設定します。

Oracle Data Guard構成で、アップグレード後にCOMPATIBLE初期化パラメータの設定を増やすように決定した場合、次の手順を示した順序どおりに実行することが重要です(スタンバイ・データベースのCOMPATIBLE設定が、プライマリと同じか、あるいはそれ以上であることを確認します)。

  1. まず、構成内のすべてのスタンバイ・データベースのCOMPATIBLE初期化パラメータの値を、次のように増やします。

    1. 適用がスタンバイ・データベースで最新であることを確認します。

    2. 各スタンバイ・データベースの1つのインスタンスで、次のSQL文を実行します。

      ALTER SYSTEM SET COMPATIBLE=<value> SCOPE=SPFILE;
      
    3. REDO ApplyまたはSQL Applyが実行中の場合は、停止します。

    4. スタンバイ・データベースのすべてのインスタンスを再起動します。

    5. 前にREDO ApplyまたはSQL Applyを停止した場合は、再起動します。

  2. プライマリ・データベースでCOMPATIBLE初期化パラメータの値を、+次のように増やします。

    1. プライマリ・データベースの1つのインスタンスで、次のSQL文を実行します。

      ALTER SYSTEM SET COMPATIBLE=<value> SCOPE=SPFILE;
      
    2. プライマリ・データベースのすべてのインスタンスを再起動します。

関連項目:

  • 互換性の設定の詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

B.5 ロジカル・スタンバイが存在しない場合のOracle Databaseのダウングレード

ロジカル・スタンバイ・データベースが存在しないOracle Data Guard構成でOracle Databaseをダウングレードするには、次の手順を実行します。

  1. すべてのフィジカル・スタンバイ・データベースがマウント済で、オープンされていないことを確認します。スタンバイ・データベースは、プライマリ・データベースのダウングレードによって生成されたすべてのREDOが適用されるまでオープンしないでください。
  2. フィジカル・スタンバイ・データベースでREDO Applyをリアルタイム適用モードで開始します。
  3. Oracle Databaseアップグレード・ガイド』で説明されている手順を使用し、次のことを念頭に置いて、プライマリ・データベースをダウングレードします。
    • ダウングレード手順においてスクリプトを実行する各手順では、プライマリ・データベースでのみスクリプトを実行します。プライマリ・データベースでのスクリプトの実行により生成されたすべてのREDOが、各フィジカル・スタンバイ・データベースに適用されるまで、次のダウングレード手順を実行しないでください。

    • ダウングレード手順においてスクリプトの実行以外のアクションが実行される各手順では、まずその手順をプライマリ・データベースで実行してから、各フィジカル・スタンバイ・データベースで実行します。そのアクションが各フィジカル・スタンバイ・データベースで実行されるまで、プライマリ・データベースで次のダウングレード手順を実行しないでください。

  4. ダウングレード中にフェイルオーバーの実行が必要になった場合、フェイルオーバーを実行してから、新しいプライマリ・データベースでダウングレード手順を続行します。

B.6 ロジカル・スタンバイが存在する場合のOracle Databaseのダウングレード

ロジカル・スタンバイが存在するか、ロジカルとフィジカルのスタンバイ・データベースが混在するOracle Data Guard構成でOracle Databaseをダウングレードするには、次の手順を実行します。

  1. プライマリ・データベース(ここではデータベースP)で、ダウングレードする前に、次のコマンドを発行します。
    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;
    

    データベースPは、プライマリ・データベース・ロールではなくなります。

  2. 構成内のすべてのスタンバイ・データベースで、使用可能なすべてのREDOの適用が終了するまで待ちます。各スタンバイ・データベースで使用可能なすべてのREDOの適用が終了したかどうかを確認するために、各スタンバイ・データベースで次の問合せを実行します。
    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
     
    SWITCHOVER_STATUS
    -----------------
    TO PRIMARY
    

    問合せにより構成内のすべてのスタンバイ・データベースについてTO PRIMARYの値が戻されるまで、手順3に進まないでください。

  3. Oracle Databaseアップグレード・ガイド』で説明されている手順を使用し、次のことを念頭に置いて、ロジカル・スタンバイ・データベースをダウングレードします。
    • ダウングレード手順においてスクリプトを実行する各手順では、ロジカル・スタンバイ・データベースでのみスクリプトを実行します。直前までプライマリ・ロール(データベースP)であったロジカル・スタンバイ・データベースでスクリプトを実行することにより生成されたすべてのREDOが、各フィジカル・スタンバイ・データベースに適用されるまで、次のダウングレード手順を実行しないでください。

    • ダウングレード手順においてスクリプトの実行以外のアクションが実行される各手順では、まずその手順を直前までプライマリ・ロール(データベースP)であったロジカル・スタンバイ・データベースで実行してから、各フィジカル・スタンバイ・データベースで実行します。そのアクションが各フィジカル・スタンバイ・データベースで実行されるまで、直前までプライマリ・ロール(データベースP)であったロジカル・スタンバイ・データベースで次のダウングレード手順を実行しないでください。

  4. 直前までプライマリ・ロール(データベースP)であったロジカル・スタンバイが正常にダウングレードされたら、それをオープンし、次のコマンドを発行します。
    SQL> ALTER DATABASE ACTIVATE LOGICAL STANDBY DATABASE;
    

    これでデータベースPは、プライマリ・ロールに戻りました。

  5. 構成内の各ロジカル・スタンバイ・データベースで、次のコマンドを発行します(このコマンドでは、プライマリに戻るデータベース・リンクがすべてのロジカル・スタンバイ・データベースに存在することが必要です)。

    SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE NEW PRIMARY
    prim_db_link;