この付録の手順では、Data Guard構成にフィジカル・スタンバイ・データベースまたはロジカル・スタンバイ・データベースが存在する場合に、Oracleデータベースをアップグレードおよびダウングレードする方法を説明します。
この付録は、次の項目で構成されています。
Oracle Databaseソフトウェアのアップグレードを開始する前に、次のことに注意してください。
Data Guardブローカを使用して構成を管理している場合は、ブローカ構成の削除や無効化の詳細は、『Oracle Data Guard Broker』マニュアルの指示を参照してください。
この付録で説明する手順は、『Oracle Databaseアップグレード・ガイド』に記載されている手順とともに使用します。
NOLOGGING操作をチェックします。NOLOGGING操作が実行されていた場合は、スタンバイ・データベースを更新する必要があります。詳細は、13.4項「NOLOGGING句を指定した後のリカバリ」を参照してください。
OFFLINE IMMEDIATE
が原因でリカバリを必要とする表領域またはデータファイルを書き留めておきます。アップグレード前に表領域またはデータファイルをリカバリし、オンラインまたはオフラインにする必要があります。
構成にフィジカル・スタンバイ・データベースが存在する場合に、Oracle Database 11gリリース2(11.2)にアップグレードする手順は、次のとおりです。
『Oracle Databaseアップグレード・ガイド』のアップグレードの準備に関する項に記載されている手順を確認して実行します。
『Oracle Databaseアップグレード・ガイド』に従って、Oracleソフトウェアの新しいリリースを、フィジカル・スタンバイ・データベースとプライマリ・データベース・システムの新しいOracleホームにインストールします。
プライマリ・データベースを停止します。
フィジカル・スタンバイ・データベースを停止します。
アップグレード対象のOracleホームで実行しているすべてのリスナー、エージェントおよびその他のプロセスを停止します。この手順は、Oracle Real Application Cluster(Oracle RAC)環境のすべてのノードで実行します。
Oracle Automatic Storage Management(Oracle ASM)が使用中の場合は、Oracle ASMを使用するすべてのデータベースを停止してから、すべてのOracle ASMインスタンスを停止します。
新しいOracleホームで、手順5で停止したすべてのリスナー、エージェントおよびその他のプロセスを再起動します。
フィジカル・スタンバイ・データベースを、新しいOracleホーム(アップグレード済バージョン)にマウントします。フィジカル・スタンバイ・データベースの起動方法の詳細は、3.2.6項を参照してください。
注意: プライマリ・データベースのアップグレードが完了してから、スタンバイ・データベースをオープンします。 |
フィジカル・スタンバイ・データベースでREDO Applyを開始します。REDO Applyの起動方法の詳細は、3.2.6項を参照してください。
『Oracle Databaseアップグレード・ガイド』に従ってプライマリ・データベースをアップグレードします。フィジカル・スタンバイ・データベースは、プライマリ・データベースでアップグレード時に生成されたREDOを適用するとアップグレードされます。
アップグレード後のプライマリ・データベースをオープンします。
アップグレードの前にActive Data Guardが使用されている場合、これをアップグレード後に再び有効にする方法は9.2.1項を参照してください。
オプションで、B.4項で説明されている手順に従い、COMPATIBLE
初期化パラメータを変更します。
注意: この付録では、ロジカル・スタンバイ・データベースが存在する場合にOracle Databaseソフトウェアをアップグレードする従来の方法を説明します。第12章「SQL Applyを使用したOracle Databaseのアップグレード」にある2つ目の方法では、ロジカル・スタンバイ・データベースが存在する場合にローリング・アップグレードを行って停止時間を最短に抑える方法を説明します。完全なアップグレードを実行するには、どちらか一方の方法の手順のみを使用してください。アップグレードの実行に両方の方法を使用したり、2つの方法の手順を組み合せようとしないでください。この項で説明する手順では、プライマリ・データベースが |
構成にロジカル・スタンバイ・データベースが存在する場合に、Oracle Database 11gリリース2(11.2)にアップグレードする手順は、次のとおりです。
『Oracle Databaseアップグレード・ガイド』のアップグレードの準備に関する項に記載されている手順を確認して実行します。
必要に応じて、プライマリ・データベースでデータ保護モードをMAXIMUM PERFORMANCE
に設定します。
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
プライマリ・データベースで、すべてのユーザー・アクティビティを停止し、ロジカル・スタンバイ・データベースに関連付けられているリモート・アーカイブ先を遅延させます(この手順では、LOG_ARCHIVE_DEST_2
がロジカル・スタンバイ・データベースに関連付けられていると仮定しています)。
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER SCOPE=BOTH; SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
ロジカル・スタンバイ・データベースでSQL Applyを停止します。
SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
『Oracle Databaseアップグレード・ガイド』に従って、プライマリ・データベースにOracleソフトウェアの新しいリリースをインストールします。
『Oracle Databaseアップグレード・ガイド』に従って、ロジカル・スタンバイ・データベースにOracleソフトウェアの新しいリリースをインストールします。
注意: 手順5および手順6は、アップグレード手順中の停止時間を短縮するために、同時に実行できます(つまり、プライマリ・データベースとスタンバイ・データベースは同時にアップグレードできます)。 |
アップグレード後のロジカル・スタンバイ・データベースでSQL Applyを開始します。Oracle RACを使用している場合は、他のスタンバイ・データベース・インスタンスを起動します。
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
アップグレード後のプライマリ・データベースをオープンし、ユーザーが接続できるようにします。Oracle RACを使用している場合は、他のプライマリ・データベース・インスタンスを起動します。
また、次のようにして、アップグレード後のロジカル・スタンバイ・データベースへのアーカイブを有効にします。
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
必要に応じて、手順2で元のデータ保護モードを変更した場合は、そのモードをリセットします。
オプションで、B.4項で説明されている手順に従い、COMPATIBLE
初期化パラメータを変更します。
Oracle Databaseの新リリースにアップグレードする際、一部の新機能のためにデータベースが前のリリースと互換性がなくなる場合があります。Oracle Databaseでは、COMPATIBLE
初期化パラメータにより、データベースの互換性を制御できます。
アップグレードが完了したら、COMPATIBLE
初期化パラメータの設定をOracle Databaseの新リリース用に最大レベルに増やすことができます。データベースを元のリリースにダウングレードする機能がもう必要ないことが確実な場合は、COMPATIBLE
初期化パラメータを新しいデータベースで必要な互換性レベルに基づいて設定します。
Data Guard構成で、アップグレード後にCOMPATIBLE
初期化パラメータの設定を増やすことにした場合、次の手順を示した順序どおりに実行することが重要です(スタンバイ・データベースのCOMPATIBLE
設定が、プライマリと同じか、あるいはそれ以上であることが必要です)。
まず、構成内のすべてのスタンバイ・データベースのCOMPATIBLE
初期化パラメータの値を、次のように増やします。
適用がスタンバイ・データベースで最新であることを確認します。
各スタンバイ・データベースの1つのインスタンスで、次のSQL文を実行します。
ALTER SYSTEM SET COMPATIBLE=<value> SCOPE=SPFILE;
REDO ApplyまたはSQL Applyが実行中の場合は、停止します。
スタンバイ・データベースのすべてのインスタンスを再起動します。
前にREDO ApplyまたはSQL Applyを停止した場合は、再起動します。
プライマリ・データベースでCOMPATIBLE
初期化パラメータの値を、+次のように増やします。
プライマリ・データベースの1つのインスタンスで、次のSQL文を実行します。
ALTER SYSTEM SET COMPATIBLE=<value> SCOPE=SPFILE;
プライマリ・データベースのすべてのインスタンスを再起動します。
関連項目:
|
ロジカル・スタンバイ・データベースが存在しないData Guard構成でOracle Databaseをダウングレードするには、次の手順を実行します。
すべてのフィジカル・スタンバイ・データベースがマウント済で、オープンされていないことを確認します。
注意: スタンバイ・データベースは、プライマリ・データベースのダウングレードによって生成されたすべてのREDOが適用されるまでオープンしないでください。 |
フィジカル・スタンバイ・データベースでREDO Applyをリアルタイム適用モードで開始します。
『Oracle Databaseアップグレード・ガイド』で説明されている手順を使用し、次のことを念頭に置いて、プライマリ・データベースをダウングレードします。
ダウングレード手順においてスクリプトを実行する各手順では、プライマリ・データベースでのみスクリプトを実行します。プライマリ・データベースでのスクリプトの実行により生成されたすべてのREDOが、各フィジカル・スタンバイ・データベースに適用されるまで、次のダウングレード手順を実行しないでください。
ダウングレード手順においてスクリプトの実行以外のアクションが実行される各手順では、まずその手順をプライマリ・データベースで実行してから、各フィジカル・スタンバイ・データベースで実行します。そのアクションが各フィジカル・スタンバイ・データベースで実行されるまで、プライマリ・データベースで次のダウングレード手順を実行しないでください。
ダウングレード中にフェイルオーバーの実行が必要になった場合、フェイルオーバーを実行してから、新しいプライマリ・データベースでダウングレード手順を続行します。
ロジカル・スタンバイが存在するか、ロジカルとフィジカルのスタンバイ・データベースが混在するData Guard構成でOracle Databaseをダウングレードするには、次の手順を実行します。
プライマリ・データベース(ここではデータベースP)で、ダウングレードする前に、次のコマンドを発行します。
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;
データベースPは、プライマリ・データベース・ロールではなくなります。
構成内のすべてのスタンバイ・データベースで、使用可能なすべてのREDOの適用が終了するまで待ちます。各スタンバイ・データベースで使用可能なすべてのREDOの適用が終了したかどうかを確認するために、各スタンバイ・データベースで次の問合せを実行します。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS ----------------- TO PRIMARY
問合せにより構成内のすべてのスタンバイ・データベースについてTO PRIMARY
の値が戻されるまで、手順3に進まないでください。
『Oracle Databaseアップグレード・ガイド』で説明されている手順を使用し、次のことを念頭に置いて、ロジカル・スタンバイ・データベースをダウングレードします。
ダウングレード手順においてスクリプトを実行する各手順では、ロジカル・スタンバイ・データベースでのみスクリプトを実行します。直前までプライマリ・ロール(データベースP)であったロジカル・スタンバイ・データベースでスクリプトを実行することにより生成されたすべてのREDOが、各フィジカル・スタンバイ・データベースに適用されるまで、次のダウングレード手順を実行しないでください。
ダウングレード手順においてスクリプトの実行以外のアクションが実行される各手順では、まずその手順を直前までプライマリ・ロール(データベースP)であったロジカル・スタンバイ・データベースで実行してから、各フィジカル・スタンバイ・データベースで実行します。そのアクションが各フィジカル・スタンバイ・データベースで実行されるまで、直前までプライマリ・ロール(データベースP)であったロジカル・スタンバイ・データベースで次のダウングレード手順を実行しないでください。
直前までプライマリ・ロール(データベースP)であったロジカル・スタンバイが正常にダウングレードされたら、それをオープンし、次のコマンドを発行します。
SQL> ALTER DATABASE ACTIVATE LOGICAL STANDBY DATABASE;
これでデータベースPは、プライマリ・ロールに戻りました。
構成内の各ロジカル・スタンバイ・データベースで、次のコマンドを発行します(このコマンドでは、プライマリに戻るデータベース・リンクがすべてのロジカル・スタンバイ・データベースに存在することが必要です)。
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE NEW PRIMARY
prim_db_link;
関連項目: 『Oracle Databaseアップグレード・ガイド』 |