maximum availability architecture - oracle...1 はじめに 目的...

37
Oracle Data Guard 11g Oracle RAC システムでのインストールと構成 Oracle ホワイト・ペーパー 2008 4 Maximum Availability Architecture Oracle Best Practices For High Availability

Upload: others

Post on 24-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Oracle Data Guard 11g Oracle RAC システムでのインストールと構成

Oracle ホワイト・ペーパー 2008 年 4 月

Maximum Availability Architecture Oracle Best Practices For High Availability

目次

1 はじめに ......................................................................................................................................................3 1.1 目的 .................................................................................................................................................................... 3 1.2 背景 .................................................................................................................................................................... 3 1.3 対象範囲とアプリケーション......................................................................................................................... 3 1.4 関連ドキュメント............................................................................................................................................. 4 1.5 前提条件 ............................................................................................................................................................ 4

2 アーキテクチャと概念.................................................................................................................................5 2.1 用語 .................................................................................................................................................................... 5 2.2 Oracle RAC アーキテクチャ............................................................................................................................ 5 2.3 Oracle Data Guard アーキテクチャ.................................................................................................................. 5 2.4 ネットワーク .................................................................................................................................................... 6 2.5 Oracle Data Guard アーキテクチャ.................................................................................................................. 7

2.5.1 ログ転送サービス..................................................................................................................................... 7 2.5.2 ログ適用サービス..................................................................................................................................... 7 2.5.3 Oracle Data Guard Broker .......................................................................................................................... 8

2.6 機能 .................................................................................................................................................................... 8 2.6.1 アーカイブ・ログの送信......................................................................................................................... 8 2.6.2 スタンバイ REDO ログ ............................................................................................................................ 8

2.7 保護レベル ........................................................................................................................................................ 9 2.7.1 大保護モード......................................................................................................................................... 9 2.7.2 大可用性モード..................................................................................................................................... 9 2.7.3 大パフォーマンス・モード................................................................................................................. 9 2.7.4 長所と短所................................................................................................................................................. 9

3 前提条件 ....................................................................................................................................................10 3.1 ハードウェア .................................................................................................................................................. 10 3.2 ネットワーク .................................................................................................................................................. 10 3.3 ソフトウェア .................................................................................................................................................. 10 3.4 Oracle Real Application Clusters ...................................................................................................................... 10

3.4.1 Oracle ASM .............................................................................................................................................. 10 3.4.2 RAW デバイス......................................................................................................................................... 10

4 Oracle Data Guard 環境の作成 .................................................................................................................12 4.1 前提条件 .......................................................................................................................................................... 12 4.2 手順 - まとめ ................................................................................................................................................. 12 4.3 Oracle RAC スタンバイ・データベースの作成 .......................................................................................... 13

4.3.1 プライマリ・サイトとスタンバイ・サイトの構成 ........................................................................... 13 4.3.2 各サイトへの Oracle ソフトウェアのインストール .......................................................................... 13 4.3.3 サーバー名と VIP ................................................................................................................................... 13 4.3.4 Oracle ネットワーキングの構成 ........................................................................................................... 14 4.3.5 各サイトでの Oracle ASM の構成......................................................................................................... 16

4.3.6 プライマリ・データベースの複製準備 ............................................................................................... 17 4.3.7 プライマリ・データベースの複製 ....................................................................................................... 19 4.3.8 スタンバイ・データベースの spfile 作成 ............................................................................................ 19 4.3.9 第 2 制御ファイルの作成....................................................................................................................... 20 4.3.10 スタンバイ・データベースのクラスタ対応 ....................................................................................... 21 4.3.11 一時ファイル........................................................................................................................................... 22 4.3.12 スタンバイ REDO ログの作成 .............................................................................................................. 22

4.4 SQL Plus を使用した Oracle Data Guard の構成 .......................................................................................... 23 4.4.1 はじめに................................................................................................................................................... 23 4.4.2 スタンバイ・データベースの構成 ....................................................................................................... 23 4.4.3 プライマリ・データベースの構成 ....................................................................................................... 24 4.4.4 保護モードの設定................................................................................................................................... 24 4.4.5 REDO 転送と REDO Apply の有効化 ................................................................................................... 25

4.5 Oracle Data Guard Broker を使用した Oracle Data Guard の構成................................................................ 25 4.5.1 はじめに................................................................................................................................................... 25 4.5.2 Oracle Data Guard Broker 構成ファイル................................................................................................ 26 4.5.3 Oracle Data Guard Broker の有効化........................................................................................................ 26 4.5.4 Oracle Data Guard Broker 構成の作成.................................................................................................... 26 4.5.5 Oracle Data Guard Broker 構成の有効化................................................................................................ 26 4.5.6 Oracle Data Guard Broker のカスタマイズ............................................................................................ 27

5 監視............................................................................................................................................................28 5.1.1 はじめに................................................................................................................................................... 28 5.1.2 ログ・ファイル....................................................................................................................................... 28 5.1.3 固定ビュー............................................................................................................................................... 28

6 管理............................................................................................................................................................29 6.1 スイッチオーバー........................................................................................................................................... 29

6.1.1 SQL Plus を使用したスイッチオーバー............................................................................................... 29 6.1.2 Oracle Data Guard Broker を使用したスイッチオーバー .................................................................... 29

6.2 フェイルオーバー........................................................................................................................................... 30 6.2.1 SQL Plus を使用したフェイルオーバー............................................................................................... 30 6.2.2 Oracle Data Guard Broker を使用したフェイルオーバー .................................................................... 30

6.3 強制フェイルオーバー................................................................................................................................... 30 6.3.1 Oracle Data Guard Broker を使用した強制フェイルオーバー ............................................................ 31

6.4 スタンバイ・データベースの読取り専用オープン ................................................................................... 31 6.5 リアルタイム適用/リアルタイム問合せ...................................................................................................... 31

7 付録 A - Oracle RMAN を使用したスタンバイ・データベースの作成(従来の方法) ............................32 7.1 前提条件 .......................................................................................................................................................... 32 7.2 Oracle RMAN のバックアップ ...................................................................................................................... 32

7.2.1 新規バックアップ................................................................................................................................... 32 7.2.2 既存バックアップ................................................................................................................................... 33

7.3 スタンバイ・データベースの作成............................................................................................................... 33 7.3.1 前提条件................................................................................................................................................... 33 7.3.2 手順 .......................................................................................................................................................... 33

8 付録 B - 参考資料......................................................................................................................................35 8.1 Oracle マニュアル ........................................................................................................................................... 35 8.2 Metalink............................................................................................................................................................ 35

1 はじめに

目的

このドキュメントでは、Oracle Real Application Clusters(Oracle RAC)11g と Oracle Data Guard 11g を使用した高可用性環境を作成するためのエンドツーエンド・プロセスについて説明し

ます。このホワイト・ペーパーは標準ドキュメントを補完するものであり、環境全体を構築

するすべてのプロセスについて説明します。また、この環境は、プライマリ・システムとフィ

ジカル・スタンバイ・システムの両方が Oracle RAC に基づいています。ここで説明するプ

ロセスは、ワークショップやコンサルティング契約でオラクルや顧客により繰り返しテスト

および適用されているものであり、実際の経験を反映したものです。

1.1

背景

Oracle データベースは、ミッション・クリティカルな情報を保存するために使用されていま

す。この情報は、たとえ大災害が発生しても安全に維持されている必要があります。

この安全性を得るために使用されてきた従来の手法は、Oracle RAC やリモート・ディスクの

ミラー化などのハードウェア指向ソリューションを中心としていました。Oracle RAC は高水

準の可用性を提供しますが、RAC ノードは一般に同じコンピュータ室に設置されています

(拡張クラスタをのぞく)。Oracle RAC クラスタにより、ハードウェア層に高度な冗長性を

もたらすことでシングル・ポイント障害の発生を回避します。しかし、データベース単体(現

在もシングル)やコンピュータ室自体など、アーキテクチャ内には依然としてシングル・ポ

イント障害が存在します。コンピュータ室が破壊されるか孤立した場合、クラスタへのアク

セスも不可能となります。データベース自体が使用できなくなった場合(部分的または全体

的な障害)も、サーバー・レベルの冗長性はあまり役に立ちません。

このような事態に適用されるのが障害時リカバリ計画です。この計画には、別のマシンへの

データベースのリストアが含まれる場合があります。しかし、このプロセスには完了までに

何時間もかかる可能性が高いため、別のマシンにリストア済みのデータベースを用意してお

き、継続的に 新の状態を維持しておくことがより優れた解決策といえます。その場合、障

害が発生しても、このデータベースは非常に迅速に回復できます。オラクルが提供するこの

テクノロジーは Oracle Data Guard と呼ばれ、データベース自体はスタンバイ・データベース

といいます。実際、Oracle Data Guard は 2 種類のスタンバイ・データベース(フィジカルお

よびロジカル)に関する概念フレームワークですが、このドキュメントではフィジカル・ス

タンバイ・データベースのみに焦点を当てて説明します。

1.2

1.3 対象範囲とアプリケーション

このドキュメントでは、Oracle Data Guard をインストールする際の一般的なステップについ

て、とくに Oracle RAC に関するステップについて確認していきます。また、スタンバイ・

データベースが配置されているサイトにプライマリ・サイトからスイッチオーバーやフェイ

ルオーバーを実行する際に必要な手続きも含まれます。

関連ドキュメント 1.4

• 『Oracle Data Guard 概要および管理 11g リリース 1』(2007 年 9 月)

• 『Oracle Data Guard Broker 11g リリース 1』(2007 年 9 月)

前提条件

このドキュメントは以下の事項を前提としています。

1.5

• 本番システムとスタンバイ・システム間のネットワーク接続が、求められる保護レベ

ル要件とデータベース REDO 情報の本番データ量の転送要件を満たしていること

• 読者が Oracle Net の構成に精通していること

• 読者が Oracle Recovery Manager(Oracle RMAN)に精通していること

• 読者が Oracle RAC のインストールとその構成に精通していること

2 アーキテクチャと概念

用語 2.1

プライマリ・サイト 本番データベースへアクセスするために接続するサイト。

スタンバイ・サイト スタンバイ・データベースが維持されているサイト。障害時リカバリ

(DR)サイトとも呼ばれる。フェイルオーバーまたはスイッチオーバー

の適用時のみ、このサイトに接続する。

障害 プライマリ・サイトが使用できないこと。

2.2 Oracle RAC アーキテクチャ

Oracle Real Application Clusters(Oracle RAC)は高速インターコネクトで結合された多数の独

立コンピュータ・システムで構成されており、そのすべてから同じディスク・セットにアク

セスできます。

Oracle RAC は、ORACLE ASM、RAW パーティション、またはクラスタリングされたファイ

ル・システムを使用した共有ディスク上にデータベースを作成します。Oracle 11g でもっと

も一般的な実装方法は、Oracle ASM を使用したものです。それぞれのクラスタ・ノードでは、

データベースとの対話に使用される Oracle インスタンスが実行されます。

ユーザーは、任意の Oracle インスタンスに接続してアプリケーションを実行できます。

2.3 Oracle Data Guard アーキテクチャ

スタンバイ・サイトに配置されたノードのアーキテクチャがプライマリ・サイトのアーキテ

クチャと一致することが理想的ですが、これは必須ではありません。

スタンバイ・システムのアーキテクチャを計画する場合、以下の事項を考慮する必要があり

ます(とくにプライマリ・システムと同じアーキテクチャでない場合)。

• フェイルオーバーが必要な場合(プライマリ・サイトの計画外停止)、スタンバイ・

サイトは期待されるワークロードを処理できるか

• プライマリ・サイトでメンテナンスが実行されている間にスタンバイ・サイトが使

用される場合(計画停止)、スタンバイ・サイトは期待されるワークロードを処理

できるか

処理能力が十分である場合、次が当てはまります。

以下はかならずしも必要ではありません。

• スタンバイ・サイトのクラスタリング

• スタンバイ・サイトでの RAW デバイスの使用(スタンバイ・サイト自体がクラス

タである場合をのぞく)

注:両方のサイト(プライマリおよびスタンバイ)で、完全に同じソフトウェア・バージョ

ンとオペレーティング・システムを使用しなければならないという要件は緩和されました。

現在は、柔軟な構成が選択できます。許容事項の状況は次のドキュメントに反映されてい

ます。

Metalink Note 413484.11:

『Data Guard Support for Heterogeneous Primary and Standby Systems in Same Data Guard Configuration』

このドキュメントには、常に 新のサポート情報が記載されています。

注:スタンバイ・システムがクラスタである場合、そのクラスタのうちの 1 つのノードのみ

がスタンバイ・データベースと同期可能になります。残りのノードは、スタンバイ・システ

ム上のデータベースが通常(本番)運用としてオープンされるまでアイドル状態のままにな

ります。なんらかの理由でもとの適用ノードに障害が発生した場合、Oracle Data Guard Brokerにより、"適用ノード"がスタンバイ・クラスタの使用可能なノードへ自動的にフェイルオー

バーされます。これについて詳しくは後述します。

2.4

ネットワーク

プライマリ・サイトおよびスタンバイ・サイトは、ネットワーク・リンクを介して接続され

ます。このネットワーク・リンクは信頼性が高く、適切な帯域幅と待機時間を維持している

必要があります。

Oracle Data Guard には次の 3 種類のモードがあります。

• 大保護モード

• 大可用性モード

• 大パフォーマンス・モード

詳しくは後述しますが、初めの 2 つのモードではスタンバイ・サイトへの同期書込みが必要

になります。同期書込みを使用すると、多くの場合、パフォーマンスのトレードオフが発生

することに注意してください。これらのモードはデータ損失ゼロの保護を実現しますが、帯

域幅が限定されている場合や、プライマリ・データベースとスタンバイ・データベース間の

ラウンドトリップ・ネットワーク待機時間(RTT)が長い場合は、プライマリ・データベー

スのパフォーマンスに影響を及ぼす可能性があります。

1 MetaLink Note の参照には MetaLink アカウントが必要です。(https://metalink.oracle.com)

2.5 Oracle Data Guard アーキテクチャ

次の図に、Oracle Data Guard のアーキテクチャ・コンポーネントを示します。詳しくは後述

します。

2.5.1 ログ転送サービス

ログ転送サービス(別名 REDO 転送サービス)は、プライマリ・データベースからスタンバ

イ・データベースに対して、2 つの方法で変更を伝播するよう設計されています。1 つはアー

カイブ・ログを転送する方法(ARCH)であり、もう 1 つはログ・ライター・プロセスに処

理された REDO データを継続的に転送する方法(LNS)です。

2.5.2 ログ適用サービス

ログ適用サービス(フィジカル・スタンバイ・データベースでは'REDO Apply'、ロジカル・

スタンバイ・データベースでは'SQL Apply')は、アーカイブ済みまたはスタンバイの REDOログ・ファイルからスタンバイ・データベースに REDO 情報を適用する役割を果たします。

2.5.3 Oracle Data Guard Broker

Oracle Data Guard Broker は管理および監視コンポーネントであり、1 つ以上のフィジカル・

スタンバイ・データベースによって保護されるプライマリ・データベースの作成、制御、お

よび監視に使用されます。Oracle Data Guard Broker の使用は、Oracle RAC 環境でサポートさ

れています。

2.6 機能

プライマリ・データベースに情報が書き込まれると、同じ情報がスタンバイ・データベース

にも送信され、適用されます。基本的に、これらは 2 つの段階として処理され直接相互連動

するものではありません。

2.6.1 アーカイブ・ログの送信

このシナリオでは、プライマリ・データベース・インスタンスによってアーカイブ・ログが

生成されます。アーカイブ・ログは作成されるとすぐにスタンバイ・サイトに送信され(ARCHプロセスによる)、そこでデータベースに適用されます。この処理はただちに実行すること

も、設定した待ち時間のあとで実行することもできます。

2.6.2 スタンバイ REDO ログ

REDO 情報の転送方法として望ましいのは LNS プロセスを利用する方法です。LNS プロセ

スは、Logwriter バックグラウンド・プロセスが REDO バッファを消去してオンライン REDOログ・ファイルに書き込むと同時に REDO データを転送します。これにより、ネットワーク

全体で REDO データが連続して流れます(ピークなし)。ベスト・プラクティスでは、デー

タを受信するスタンバイ・サイトにスタンバイ REDO ログ(SRL)を構成する必要がありま

す。この場合、受信 REDO は SRL に直接書き込まれます。

SRL の数は、プライマリ・データベース上のすべてのオンライン REDO ログの合計に 1 を加

えたものと等しくする必要があります。たとえば、4 つの RAC インスタンスにそれぞれ 4 つ

の REDO ログが含まれる場合、SRL の数は 17 になります。

プライマリ・インスタンス上のオンライン REDO ログにデータが書き込まれるたびに、その

データがいずれかのスタンバイ REDO ログに同時に書き込まれます。プライマリのオンライ

ン REDO ログでログ・スイッチ処理が実行されると、スタンバイ・データベース上でもログ・

スイッチ処理がおこなわれます。つまり、 新の SRL がスタンバイ・システム上のローカル・

ディレクトリにアーカイブされます。

Oracle 10g から'リアルタイム適用'機能が導入されました。リアルタイム適用を使用すると、

REDO がスタンバイ REDO ログに書き込まれると同時に、ログ・スイッチ処理を待たずにス

タンバイ・データベースに適用されます。

2.7 保護レベル

Oracle Data Guard では、異なる保護レベルの設定がおこなえます。それぞれの保護モードに

ついて、以下にまとめます。

2.7.1 最大保護モード

このソリューションは、複数の障害が発生したシナリオ(ネットワーク障害とプライマリ・

サイト障害)において、プライマリ・サイトとスタンバイ・サイト間でのデータ損失ゼロを

保証します。なんらかの理由で 後のスタンバイ・サイトが使用不能になると、プライマリ・

データベースは停止されます。

2.7.2 最大可用性モード

このソリューションは、単一障害シナリオにおいてデータ損失ゼロを実現します。なんらか

の理由でスタンバイ・サイトが使用不能になった場合(単一障害)も、この保護モードは"可用性"に重点を置いているため、プライマリ・データベース上での作業を継続できます。プ

ライマリ・データベースの消失など 2 番目の障害がこの期間中に発生した場合、プライマリ・

データベース上の保護されていないトランザクションが消失します。スタンバイ・データ

ベースが再び使用可能になると、自動的にプライマリ・データベースのアーカイブ・ログか

ら未転送のデータをすべて取得し、手動介入なしで再同期します。

2.7.3 最大パフォーマンス・モード

このソリューションでは、LNS プロセスを介して非同期に REDO を送信するか、または生成

されたアーカイブ REDO ログを ARCH プロセス経由でプライマリ・データベースからスタ

ンバイ・データベースに送信します。この場合、プライマリ・データベースとスタンバイ・

データベースが同期化されているという保証はないため、障害時には一定のデータ損失が発

生する可能性があります。

2.7.4 長所と短所

大保護モードと 大可用性モードでは、プライマリ・サイトとスタンバイ・サイトの間に

高水準のネットワーク・リンクが必要になります。これは、プライマリ・データベースにデー

タが書き込まれると、同じ情報が同時にスタンバイ・サイト上で書き込まれるためです。つ

まり、ネットワークの帯域幅が十分でない場合や、WAN 環境でよく見られるように RTT 待

機時間が長い場合、データ損失ゼロの保護による付加利益とプライマリ・データベースのパ

フォーマンスへの潜在的影響を比較検討する必要があります。

大パフォーマンス・モードはプライマリ・データベースのパフォーマンスに影響を与えま

せんが、REDO転送の非同期性により、フェイルオーバー時のデータ損失の可能性が残ります。

3 前提条件

ハードウェア

スタンバイ・サイトは、プライマリ・サイトのワークロードに対応できるハードウェア上に

配置することが理想的です。これは必須条件ではありませんが、スタンバイ・サイトへのフェ

イルオーバーが必要な場合に同様のサービス・レベルが達成されます。

3.1

ネットワーク

スタンバイ・サイトでの 大保護モードまたは 大可用性モードの実現を円滑にするため、

プライマリ・データベースは REDO ログ情報をプライマリ・サイトとスタンバイ・サイトの

両方に同時に書き込みます。したがって、これらのサイト間のネットワーク・リンクには以

下が不可欠になります。

3.2

• 高い信頼性(シングル・ポイント障害がないこと)

• 適切な帯域幅(期待される REDO 量による)

• 非常に短い待機時間

ソフトウェア

以前のOracleリリースでは、プライマリ・サイトとスタンバイ・サイトの両方で同じバージョ

ンのデータベース・ソフトウェアを実行する必要がありましたが、この要件は実質的に緩和

されました。混在環境に対する現行サポートについて、詳しくはMetalink Note 413484.11を参

照してください。

3.3

3.4 Oracle Real Application Clusters

3.4.1 Oracle ASM

プライマリ・データベースでディスク・ストレージに Oracle ASM を使用している場合、ス

タンバイ・サイトでも Oracle ASM を構成することを強く推奨します。

注:Oracle ASMはOracle RACデータベースに望ましいストレージ管理機能であり、Oracle RAC以外のデータベースで使用されるケースも増加しています。

3.4.2 RAW デバイス

プライマリ・データベースが Oracle RAC データベースで RAW デバイスを利用しており、か

つスタンバイ・データベースもクラスタ・データベースである場合、スタンバイ・サイトに

も RAW デバイスを構成する必要があります。

1 MetaLink Note の参照には MetaLink アカウントが必要です。(https://metalink.oracle.com)

ただし、スタンバイ・サイトがクラスタでない場合はスタンバイ・データベースで RAW デ

バイスを使用する必要はありません。この場合は、次の手順にしたがうことによって管理が

容易になります。

3.4.2.1 非 RAW デバイス

1. スタンバイ・サイトに、データ・ファイルを格納するディレクトリを作成します。

2. それぞれのプライマリ RAC ノードに、同じディレクトリを作成します。

3. プライマリ RAC ノードに、このディレクトリから RAW デバイスへのシンボリック・リ

ンクを作成します。

4. Oracle RAC データベースを作成する際、RAW デバイス名ではなくこれらのシンボリッ

ク・リンクを使用します。

長所

Oracle Data Guard によるデータベース・ファイルの自動管理が可能になります。つまり、プ

ライマリ・データベースに追加されたファイルは、自動的にスタンバイ・データベースにも

追加されます。両方のサイトでディレクトリ構造が正確に一致しない場合、init.ora パラメー

タである db_file_name_convert と log_file_name_convert を使用してファイル名変換を設定する

必要があります。

例:/u01/oradata/dbname/system.dbfは両方のサイトで同じ

これは、Oracle Managed Files を使用している場合にも当てはまります。

4 Oracle Data Guard 環境の作成

前提条件

後述の手順では、以下を前提条件としています。

4.1

• プライマリ・ホスト名は、europa および callistos

• スタンバイ・ホスト名は、dione および hyperion

• プライマリ・データベースの参照名は MOON

• 仮想名は europa-vip、callisto-vip、dione-vip、および hyperion-vip

• プライマリ・データベースとスタンバイ・データベースの両方でストレージに Oracle ASM を使用

• 使用する ASM ディスク・グループは、+DATA(データ用)と+FRA(リカバリ/フラッシュバック用)

• スタンバイ・データベースの参照名は SUN

• Oracle Managed Files を使用

• ORACLE_BASE は/u01/app/oracle に設定

後述の手順において、これらの名前は上述のようにハイライト表示されます。

手順 - まとめ

Oracle Data Guard 環境を作成する手順を以下にまとめます。各タスクの実行方法について、

詳しくは後述の項で説明します。

4.2

1. プライマリ・サイトとスタンバイ・サイトの構成

2. 各サイトへの Oracle ソフトウェアのインストール

3. 各サイトでの Oracle ネットワーキング構成

4. 各サイトでの Oracle ASM 構成

5. 各サイトでのリスナー構成

6. 各サイトでの Oracle ネットワーキング構成

7. 初期化ファイルの作成(プライマリおよびスタンバイ)

8. スタンバイ・サイトへのプライマリ・データベースの複製

9. スタンバイ・サイトのサーバー・パラメータ・ファイルの作成

10. スタンバイ制御ファイルの追加作成

11. スタンバイ REDO ログ・ファイルの作成

12. クラスタへのスタンバイ・データベース登録

13. Oracle Data Guard Broker の構成

14. スタンバイ・データベースの保護モードの設定

15. 監視

4.3 Oracle RAC スタンバイ・データベースの作成 Oracle RAC スタンバイ・データベースの作成

4.3.1 プライマリ・サイトとスタンバイ・サイトの構成 4.3.1 プライマリ・サイトとスタンバイ・サイトの構成

環境の管理(と Oracle Data Guard の構成)を容易にするため、プライマリ・マシンとスタン

バイ・マシンの構造を正確に一致させることを推奨します。具体的には、以下のように設定

します。

• 両サイトの ORACLE_HOMEが同じマウント・ポイントを指すようにする

• 両サイトの ORACLE_BASE/adminが同じマウント・ポイントを指すようにする

• 両サイトの ASM ディスク・グループを一致させる

4.3.2 各サイトへの Oracle ソフトウェアのインストール

Oracle ソフトウェアは、両方のサイトで Oracle メディアからインストールします。一般的に

は以下のソフトウェアが含まれます。

• Oracle Clusterware

• Oracle ASM により使用される Oracle データベース実行ファイル

• Oracle RDBMS により使用される Oracle データベース実行ファイル

4.3.3 サーバー名と VIP

Oracle Real Application Clusters 11g では、仮想サーバー名と IP アドレスは Oracle Cluster Ready Services(Oracle CRS)によって使用および維持されます。次に、クラスタのネーミング例を

示します。

注:略称と完全修飾名の両方が存在します。

サーバー名/別名/ホスト・エントリ 目的

europa.local パブリック・ホスト名(プライマリ・ノード 1)

callisto.local パブリック・ホスト名(プライマリ・ノード 2)

dione.local パブリック・ホスト名(スタンバイ・ノード 1)

hyperion.local パブリック・ホスト名(スタンバイ・ノード 2)

europa-vip.local パブリック仮想名(プライマリ・ノード 1)

callisto-vip.local パブリック仮想名(プライマリ・ノード 2)

dione-vip.local パブリック仮想名(スタンバイ・ノード 1)

hyperion-vip.local パブリック仮想名(スタンバイ・ノード 2)

4.3.4 Oracle ネットワーキングの構成

4.3.4.1 各サイトでのリスナー構成

各サイトにリスナーを定義し、ASM Oracle Home から実行します。この構成例では以下のリ

スナーを定義しています。

プライマリ・ロール

Listener_europa

Listener_callisto

Listener_dione

Listener_hyperion

4.3.4.2 静的登録

Oracle は、インスタンスがオープン、マウント、クローズのどの状態にあっても、両方のデー

タベースのすべてのインスタンスにアクセスできなければなりません。つまり、すべてのイ

ンスタンスをリスナーに静的登録する必要があります。

Oracle Data Guard Broker を使用しやすくするため、これらのエントリには特別な名前が付与

されます。詳しくは後述します。

4.3.4.3 Listener.ora 例 LISTENER_dione = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dione-vip)(PORT = 1521) (IP = FIRST)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dione)(PORT = 1521) (IP = FIRST)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) ) ) SID_LIST_LISTENER_dione = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME=SUN_dgmgrl.local) (SID_NAME = SUN1) (ORACLE_HOME = $ORACLE_HOME) ) )

4.3.4.4 各サイトでの TNS エントリ構成

作業を実行しやすくするため、両方のサイトで同じネットワーク・サービス名が生成されま

す。次に、これらのサービス名を示します。

別名 コメント

MOON1_DGMGRL.local サービス名 MOON_DGMGRL.local を使用して europa上の MOON インスタンスを指す。スタンバイ・デー

タベースの作成に使用できる。

MOON1.local サービス名MOON.localを使用して europa上のMOONインスタンスを指す。

MOON2.local サービス名 MOON.local を使用して callisto 上の MOONインスタンスを指す。

MOON.local MOON データベースを指す。つまり、すべてのデー

タベース・インスタンスを含む。

SUN1_DGMGRL.local サービス名 SUN1_DGMGRL を使用して dione 上の

SUN インスタンスを指す**。データベースの複製に

使用する。

SUN1.local サービス名 SUN.local を使用して dione 上の SUN イン

スタンスを指す。

SUN2.local サービス名 SUN.local を使用して hyperion 上の SUNインスタンスを指す。

SUN.local SUN データベースを指す。つまり、すべてのデータ

ベース・インスタンスを含む。

listener_DB_UNIQUE_NAME.local 2 つのアドレス行で構成される TNS 別名エントリ。

初のアドレス行はノード 1 上のリスナーのアドレス

であり、2 番目はノード 2 上のリスナーのアドレス。

上記リスナーの両方をアドレス・リストに含むこと

で、データベースは自動的に両ノードに登録される。

2 セットのエントリを含む必要がある。スタンバイ・

ノード用の listener_SUN およびプライマリ・ノード用

の listener_MOON。

4.3.4.4.1 tnsnames.ora の例(europa) MOON1_DGMGRL.local = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = europa-vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = MOON_DGMGRL.local) ) ) MOON1.local = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = europa-vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = MOON.local) (INSTANCE_NAME = MOON1) ) ) MOON2.local = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = callisto-vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)

(SERVICE_NAME = MOON.local) (INSTANCE_NAME = MOON2) ) ) MOON.local = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = europa-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = callisto-vip)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = MOON.local) ) ) SUN1_DGMGRL.local = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dione-vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SUN_DGMGRL.local) ) ) SUN2.local= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hyperion-vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SUN.local) (INSTANCE_NAME=SUN2) ) ) SUN1.local= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dione-vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SUN.local) (INSTANCE_NAME=SUN1) ) ) SUN.local= (DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = dione-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = hyperion-vip)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SUN.local) ) ) LISTENERS_MOON.local= (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = europa-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = callisto-vip)(PORT = 1521)) )

4.3.5 各サイトでの Oracle ASM の構成

ここで使用する Oracle RAC データベースは Oracle ASM を利用しているため、次へ進む前に

スタンバイ・サイトにも Oracle ASM を構成することを強く推奨します。説明を容易にする

ために、スタンバイ・サイトのディスク・グループ名はプライマリ・サイトのディスク・グ

ループ名と同じであるとします。

4.3.6 プライマリ・データベースの複製準備

初期化パラメータの中には、データベースがスタンバイ・データベース・ロールまたはプラ

イマリ・データベース・ロールのいずれかで実行している場合にのみ適用されるものがあり

ます。両方のサイトにすべてのパラメータを定義しておくと、ロールが切り替わる(プライ

マリがスタンバイになり、スタンバイが新しいプライマリになる)際も追加の設定をおこな

う必要がありません。

ただし、いくつかのパラメータはノード固有であるため、プライマリ・サイト・ノード用の

パラメータ・セットとスタンバイ・サイト・ノード用のパラメータ・セットを作成します。

4.3.6.1 プライマリ・サイトの準備

複製をおこなう前に、次の初期化パラメータをプライマリ・サイト上に設定します。これら

はプライマリ・サイトでのみ適用されますが、スタンバイ・サイトでも同様に設定できます。

Dg_broker_config_file1 ASM ディスク・グループ内のファイルを指す。ファイルが存在

する必要はない。

Dg_broker_config_file2 ASM ディスク・グループ内のファイルを指す。ファイルが存在

する必要はない。

db_block_checksum データ・ブロックの整合性チェックを有効にする(オプション)。

db_block_checking データ・ブロックの一貫性チェックを有効にする(オプション)。

パフォーマンスが許す限り、また既存の SLA に違反しない限り、db_block_checksum および

db_block_checking を設定する必要があります。

さらに、以下を設定する必要があります。

アーカイブ・ログ・モード

プライマリ・データベースをアーカイブ・ログ・モードに設定します。

強制ロギング

スタンバイ・データベースを 新に保つためにスタンバイ・サイトで適用されるトランザク

ションは、オンライン REDO ログに記録されたものです。以前に Oracle Data Guard を利用し

ていなかった環境では、データベースのパフォーマンス向上のために NOLOGGING オプショ

ンが選択されている場合があります。Oracle Data Guard で保護された環境でこの機能を使用

することは、きわめて不適切です。

Oracle Database のバージョン 9.2 以降では、NOLOGGING トランザクションの発生を防ぐ方

法が導入されています。これは、データベースの強制ロギング・モードとして知られていま

す。強制ロギングを有効にするには、プライマリ・データベースで次のコマンドを発行しま

す。 alter database force logging;

パスワード・ファイル

プライマリ・データベースは、外部パスワード・ファイルを使用するように設定する必要が

あります。通常、これはインストール時に実行されます。インストール時に実行していない

場合、次のコマンドを使用することでパスワード・ファイルが作成できます。

orapwd file=$ORACLE_HOME/dbs/orapwMOON1 password=mypasswd

コマンドを発行する前に、ORACLE_SID に適切なインスタンスが設定されていることを確認

してください。ここでは、MOON1 です。

これをクラスタ内の各ノードで繰り返します。

また、初期化パラメータ remote_login_passwordfile に'exclusive'が設定されているこ

とを確認します。

Oracle Database 11g Release 1 (11.1)の場合、もう 1 つの方法として、REDO 転送用の Oracle Netセッションを SSL 経由で認証できます(Oracle Data Guard 概要のマニュアルの 6.2.1 項を参

照)。

4.3.6.2 スタンバイ・サイトの準備

初期化ファイル

複製プロセスの一部で、一時的な初期化ファイルが使用されます。このドキュメントの目的

上、/tmp/initMOON.ora という名前のこのファイルには次の 1 行が含まれます。 db_name=MOON

パスワード・ファイル

スタンバイ・データベースは、パスワード・ファイルを使用するように設定する必要があり

ます。このファイルを作成するには、プライマリ・サイトからスタンバイ・サイトにパスワー

ド・ファイルをコピーし、スタンバイ・インスタンスを反映するように名前を変更します。

これをクラスタ内の各ノードで繰り返します。

また、初期化パラメータ remote_login_passwordfile に'exclusive'が設定されていることを確認

します。

監査ファイルの保存先の作成

スタンバイ・システムの各ノード上に監査ファイルを格納するディレクトリを作成します。 mkdir /u01/app/oracle/admin/SUN/adump

スタンバイ・インスタンスの開始

ここまでで準備はすべて整ったので、複製を始めるためにスタンバイ・インスタンスを開始

します。 export ORACLE_SID=SUN1

sqlplus / as sysdba

startup nomount pfile=’/tmp/initMOON.ora’

接続のテスト

次のコマンドを使用して、プライマリ・データベースからスタンバイ・データベースへの接

続をテストします。 sqlplus sys/mypasswd@SUN_dgmgrl as sysdba

正しく接続したことを確認します。

4.3.7 プライマリ・データベースの複製

スタンバイ・データベースはプライマリ・データベースから作成します。Oracle 10g 以前で

これを実行するには、プライマリ・データベースのバックアップを作成し、スタンバイに転

送してリストアする必要がありました。このプロセスは、Oracle RMAN 11g で提供された新

しい方法により簡素化されました。この方法では、'オンザフライ'複製が実行できます。この

ドキュメントでは、この方法を使用します(11g 以前の方法に関する説明は付録に記載)。

プライマリ・データベースから、次のコマンドを使用して Oracle RMAN を起動します。 export ORACLE_SID=MOON1

rman target / auxiliary sys/mypasswd@SUN1_dgmgrl

注:Oracle RMANからエラー"rman: can't open target"が返される場合、PATHの 初に‘ORACLE_ HOME/bin’が表示されるようにしてください。LinuxユーティリティにもRMANという名前

のものがあるためです。

次に、以下の複製コマンドを実行します。 duplicate target database for standby from active database

spfile

set db_unique_name=’SUN’

set control_files=’+DATA/SUN/controlfile/control01.dbf’

set instance_number=’1’

set audit_file_dest=’/u01/app/oracle/admin/SUN/adump’

set remote_listener=’LISTENERS_SUN’

nofilenamecheck;

4.3.8 スタンバイ・データベースの spfile 作成

Oracle RMAN 複製コマンドは、デフォルトで$ORACLE_HOME/dbs にあるインスタンスの

spfile を作成します。

このファイルに含まれるエントリは、プライマリ・データベース上のインスタンス名を参照

します。作成プロセスの一部でデータベース名はスタンバイ・データベースの DB_UNIQUE_ NAME を反映するように変更されるため、作成される spfile は実質的に意味のないものにな

ります。ここでは、プライマリ・データベースの spfile の内容を使用して新しい spfile を作成

します。

4.3.8.1 制御ファイルの場所の取得

このプロセスを開始する前に、現在実行中のスタンバイ・データベースからcontrol_files

パラメータの値を書きとめておきます。

4.3.8.2 テキスト形式初期化ファイルの作成

はじめに、プライマリ・データベースの初期化パラメータをテキスト・ファイルにダンプし

ます。 set ORACLE_SID=MOON1

sqlplus “/ as sysdba”

create pfile=’/tmp/initSUN.ora’ from spfile;

作成されたファイル‘/tmp/initSUN.ora’をスタンバイ・サーバーへコピーします。

4.3.8.3 init.ora の編集

スタンバイ・サーバー上で、/tmp/initSUN.oraファイルを編集します。

注:すべてのMOONをSUNに変更します。ただし、DB_NAMEパラメータは変更しないでく

ださい。

control_filesパラメータを設定して、上述の4.3.8.1で得られた値を反映させます。通常、

次のようになります。+DATA/SUN/controlfile/control01.dbf

変更を保存します。

4.3.8.4 spfile の作成

テキスト形式の初期化ファイルはすでに作成してあるため、次のコマンドを使用してこれを

spfile に変換してから Oracle ASM 内に保存します。 export ORACLE_SID=SUN1

sqlplus “/ as sysdba”

create spfile=’+DATA/SUN/spfileSUN.ora’ from pfile= ’/tmp/initSUN.ora’

4.3.8.5 ポインタ・ファイルの作成

spfile が Oracle ASM 内に保存されたため、RDBMS インスタンスにこの場所を知らせます。

スタンバイ・ノード 1(dione)の$ORACLE_HOME/dbsディレクトリに、initSUN1.oraと

いうファイルを作成します。このファイルに次の 1 行を含めます。 spfile=’+DATA/SUN/spfileSUN.ora’

スタンバイ・ノード 2(hyperion)の$ORACLE_HOME/dbsディレクトリに、initSUN2.ora

というファイルを作成します。このファイルにも次の 1 行を含めます。 spfile=’ +DATA/SUN/spfileSUN.ora’

また、Oracle RMAN が作成した spfile をスタンバイ・ノード 1(dione)の$ORACLE_HOME/dbs

から削除します。

4.3.9 第 2 制御ファイルの作成

Oracle RMAN 複製が完了した時点では、スタンバイ・データベースに作成された制御ファイ

ルは 1 つだけです。これはあまり適切ではないため、次のステップで追加の制御ファイルを

作成します。

このプロセスには 2 段階の作業が含まれます。

1. nomount を使用して、データベースの停止と開始を実行します。 shutdown immediate;

startup nomount;

2. control_files パラメータの値を'+DATA', ' +FRA'に変更します。 alter system set control_files=‘+DATA’,’ +FRA’ scope=spfile;

3. 再度、データベースの停止と開始を実行します。 shutdown immediate;

startup nomount;

4. Oracle RMAN を使用して既存の制御ファイルを複製します。 export ORACLE_SID=SUN1

rman target /

restore controlfile from ‘+DATA/SUN/controlfile/control01.dbf’

これにより、+DATA と+FRA の両方の ASM ディスク・グループで制御ファイルが作成

されます。また、spfile 内の制御ファイル・パラメータも更新されます。

制御ファイルを 3 つ用意したい場合には、もとの制御ファイルと作成した制御ファイル

を含めて制御ファイル・パラメータを変更します。

4.3.10 スタンバイ・データベースのクラスタ対応

次に、スタンバイ・データベースをクラスタウェアの管理下に置く、つまり Oracle Cluster Ready Services に登録する必要があります。

実行する前に、2 番目のスタンバイ・ノード(hyperion)上のインスタンスが開始可能である

ことを確認します。 export ORACLE_SID=SUN2

sqlplus “/ as sysdba”

startup mount;

注:問題が発生している場合は解決してから次のステップへ進んでください。

4.3.10.1 サーバー側ロード・バランシングの構成の確認

スタンバイ・インスタンスで、init.ora のパラメータ remote_listener が定義されている

ことを確認します。

パラメータが存在しない場合、(すべてのスタンバイ・ノード上の)tnsnames.ora ファイル

に次の形式のエントリを作成します。 LISTENERS_SUN.local =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = dione-vip.local)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = hyperion-vip.local)(PORT = 1521))

)

)

次に、パラメータ remote_listenerの値に LISTENERS_ SUN.local を設定します。

4.3.10.2 Oracle CRS へのデータベース登録

以下のコマンドを発行して、Oracle Cluster Ready Services にデータベースを登録します。 srvctl add database -d SUN -o $ORACLE_HOME -m local -p “+DATA/SUN/spfileSUN.ora” -n MOON -r physical_standby -s mount

srvctl add instance -d SUN -i SUN1 -n dione

srvctl add instance -d SUN -i SUN2 -n hyperion

4.3.10.3 テスト

実行中のスタンバイ・インスタンスを停止してから、次のコマンドを使用してデータベース

(すべてのインスタンス)を開始し、上記が正しく動作していることをテストします。 srvctl start database -d SUN

データベースが開始されたら、次のコマンドを使用して関連インスタンスが実行中であるこ

とを確認します。 srvctl status database -d SUN

4.3.11 一時ファイル

一時表領域に関連付けられた一時ファイルは、自動的にスタンバイ・データベースに作成さ

れます。

4.3.12 スタンバイ REDO ログの作成

Logwriter(LGWR)を使用した転送が設定されている場合(デフォルト)、プライマリ・デー

タベースからの REDO データを保存するためにスタンバイ REDO ログ(SRL)が使用され

ます。

それぞれのスタンバイ REDO ログ・ファイルのサイズは、少なくとも、プライマリ・データ

ベースで 大の REDO ログ・ファイルと同じサイズである必要があります。プライマリ・デー

タベースのすべての REDO ログ・ファイルと、それぞれのスタンバイ・データベースにおけ

るスタンバイ REDO ログを同じサイズにすることを推奨します。

推奨される SRL 数は次のとおりです。

(プライマリ・インスタンスあたりのオンライン REDO ログ数+1)×インスタンス数

スタンバイ REDO ログが使用されるのはスタンバイ・サイトでのみですが、スタンバイ・サ

イトと同様にプライマリ・サイトでもこれらを定義することを推奨します。こうすることで、

2 つのデータベースのロールが切り替わった場合(プライマリ→スタンバイ、およびスタン

バイ→プライマリ)にも追加の設定が不要になります。

かならずスタンバイ・データベースをマウントしてから(デフォルトで'スタンバイ'としてマ

ウント)、SRL を作成してください。

次のとおり、SRL を作成します(以下に示したサイズは一例にすぎないため、環境に合わせ

て変更する必要があります)。 1. sqlplus ‘ / a sysdba’

2. startup mount

3. alter database add standby logfile SIZE 100M;

注:スタンバイREDOログは、ログ・ファイル・グループにも作成されます。ただし、この

場合グループ数をプライマリ・データベースのORLに関連付けられたグループ数よりも大き

くする必要があることに注意してください。Oracleは、ORLとSRL間でグループ数に違いを

設けていません。

注:スタンバイREDOログは、両方のデータベース上で作成する必要があります。

ここまでで、スタンバイ・データベースが作成されました。次に、トランザクションの同期

化を有効にします。実行するには 2 つの方法があります。

1. SQL Plus の使用

2. Oracle Data Guard Broker の使用

4.4 SQL Plus を使用した Oracle Data Guard の構成

4.4.1 はじめに

ここでは、SQL Plus を使用してフィジカル・スタンバイ・データベース環境を設定し、デー

タベースの初期化パラメータを手動で設定する手順について説明します。

4.4.2 スタンバイ・データベースの構成

次に、スタンバイ・データベースに設定する初期化パラメータを示します。

パラメータ 値(dione) 値(hyperion)

db_unique_name SUN

db_block_checking TRUE(オプション)

db_block_checksum TRUE(オプション)

log_archive_config dg_config=(MOON, SUN)

log_archive_max_processes 5

fal_client SUN1.local SUN2.local

fal_server 'MOON1.local', 'MOON2.local'

Standby_file_management Auto

log_archive_dest_2 service=MOON LGWR SYNC AFFIRM db_unique_name=PRIMARY_MOON VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE)

log_archive_dest_2

( 大パフォーマンス・モード)

service=MOON ARCH db_unique_name=PRIMARY_MOON VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE)

4.4.3 プライマリ・データベースの構成

次に、プライマリ・データベースに設定する初期化パラメータを示します。

パラメータ 値(europa) 値(callisto)

db_unique_name MOON

db_block_checking TRUE(オプション)

db_block_checksum TRUE(オプション)

log_archive_config dg_config=(MOON, SUN)

log_archive_max_processes 5

fal_client MOON1.local MOON2.local

fal_server 'SUN1.local', 'SUN2.local'

standby_file_management Auto

Log_archive_dest_2 service=SUN LGWR SYNC AFFIRM db_unique_name=SUN VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE)

Log_archive_dest_2

( 大パフォーマンス・モード)

service=SUN ARCH db_unique_name=SUN VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE)

4.4.4 保護モードの設定

保護モードを指定するには、プライマリ・データベースをマウント状態にする必要がありま

す。ただし、オープン状態にはしません。

注:データベースは排他モードでマウントします。これには、1 つをのぞいたすべてのRACインスタンスを停止し、残りのインスタンスにcluster_database=falseというパラメー

タを設定して開始する必要があります。

完了したら、プライマリ・サイトで次の文を実行します。

大保護モードを使用している場合、次のコマンドを使用します。 Alter database set standby database to maximize protection;

大可用性モードを使用している場合、次のコマンドを使用します。 Alter database set standby database to maximize availability;

大パフォーマンス・モードを使用している場合、次のコマンドを使用します。 Alter database set standby database to maximize performance;

4.4.5 REDO 転送と REDO Apply の有効化

REDO の転送および適用をスタンバイ・データベースで有効にするには、以下にしたがいます。

4.4.5.1 スタンバイ・サイト

スタンバイ・データベースを管理リカバリ・モードに設定します。実行するには、次の文を

発行します。 Alter database recover managed standby database disconnect;

Oracle 10g Release 2 では、リアルタイム REDO Apply が導入されました(SRL が必要)。リ

アルタイム適用を有効にするには、次の文を発行します。 alter database recover managed standby database using current logfile disconnect;

4.4.5.2 プライマリ・サイト

init.ora ファイルに次のパラメータを設定します。 log_archive_dest_state_2=enable

または、SQL Plus から次のコマンドを発行します。 alter system set log_archive_dest_state_2=enable

4.5 Oracle Data Guard Broker を使用した Oracle Data Guard の構成

4.5.1 はじめに

Oracle Data Guard Broker が提供するコマンドライン・インタフェースを利用すると、Oracle Data Guard 環境全体の管理が容易になります。Oracle Data Guard Broker を使用する場合、構

成情報は Oracle Data Guard Broker 自体の内部に保管されます。Oracle Data Guard Broker は開

始されると(データベース初期化パラメータにより有効化)、一連の ALTER SYSTEM 文を

使用してプライマリ・サイトとスタンバイ・サイト間のトランザクション同期化を設定しま

す。ここで設定されるパラメータは、SQL Plus を使用した上述の例と同じです。したがって、

データベース構成を変更するには、初期化パラメータを直接編集するのではなく、Oracle Data Guard Broker を使用することが絶対に必要です。このルールにしたがわない場合、Oracle Data Guard Broker によりパラメータ値が上書きされる結果となります。

注:Grid Control を使用して Oracle Data Guard 環境を管理するには、Oracle Data Guard Brokerを構成する必要があります。

4.5.2 Oracle Data Guard Broker 構成ファイル

Oracle Data Guard Broker は、その構成情報を格納するために 2 つのファイルを使用します。

デフォルトでは、これらのファイルは$ORACLE_HOME/dbsディレクトリにあります。Oracle RAC 環境では、すべてのデータベース・インスタンスが同じ構成情報にアクセスする必要が

あるため、これは適切ではありません。

Oracle Data Guard Broker の構成を続ける前に、Oracle Data Guard Broker ファイルが共有スト

レージを指していることを確認してください(この場合は Oracle ASM)。

確認するには、次のパラメータ値を参照します。

dg_broker_config_file1および dg_broker_config_file2

これらのパラメータに適切な値を確認するには、上述の項(4.3.6.1)を参照してください。

4.5.3 Oracle Data Guard Broker の有効化

Oracle Data Guard Broker を開始する前に、まず有効化する必要があります。実行するには、

データベース初期化パラメータ dg_broker_startの値を true に変更します。 alter system set dg_broker_start=true;

注:この処理は、プライマリ・データベースとスタンバイ・データベースの両方でおこなう

必要があります。

4.5.4 Oracle Data Guard Broker 構成の作成

Oracle Data Guard Broker 構成を作成するには、Grid Control を使用する方法と DGMGRL コマ

ンドライン・インタフェースを使用する方法があります。ここでは、後者を使用します。

次のコマンドを使用して、dgmgrl を開始します。 dgmgrl sys/mypasswd

**注:"/"を単体で使用しないでください。あとで問題が発生する可能性があります。

次のコマンドを入力して、Oracle Data Guard 構成を作成します。 create configuration MOON_SUN as primary database is MOON connect identifier is MOON.local;

add database SUN as connect identifier is SUN.local maintained as physical;

4.5.5 Oracle Data Guard Broker 構成の有効化

Oracle Data Guard Broker 構成を作成したら、これを使用する前に有効化する必要があります。

実行するには、次のコマンドを使用します。 enable configuration;

このコマンドは、完了するまでにいくらか時間がかかります。完了したら、次のコマンドを

発行します。 show configuration;

正しく実行されている場合、メッセージ‘SUCCESS’が表示されます。

そうでない場合、次のログ・ファイルを確認し、問題が発生している場合は解決する必要が

あります。

$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/

drcINSTANCE_NAME.log

また、次のコマンドも役立ちます。 show database verbose DB_NAME

注:このファイルはすべてのノードに存在します。

注:<db_name>を DB_UNIQUE_NAME の値で置換してください。

注:<instance_name>を ORACLE_SID の値で置換してください。

注:構成が有効化されるまで、セカンダリ・インスタンスは表示されません。

4.5.6 Oracle Data Guard Broker のカスタマイズ

ここまでで、基本的な構成は終了しました。スタンバイ・データベースが開始されたら、上

述のとおり、Oracle Data Guard Broker によりスタンバイ・データベースは自動的に管理リカ

バリ・モードに設定されます。

しかし、この基本的な構成は環境全体を維持するには十分ではありません。これには追加の

カスタマイズが必要であり、実行するには Oracle Data Guard プロパティを設定します。次に、

定義する必要のあるプロパティを示します。 dgmgrl sys/mypasswd

edit database MOON set property LogArchiveMaxProcesses=5;

edit database SUN set property LogArchiveMaxProcesses=5;

edit database MOON set property StandbyFileManagement=auto;

edit database SUN set property StandbyFileManagement=auto;

4.5.6.1 最大可用性/保護モード

大可用性モードまたは 大保護モードを使用している場合、さらに次の値を設定する必要

があります。 edit database MOON set property LogXptMode=’SYNC’;

edit database SUN set property LogXptMode=’SYNC’;

edit configuration set protection mode as maxavailability | maxprotection;

5 監視

5.1.1 はじめに

構成を作成したら、すべてが順調に実行されていることを確認することが重要です。次の項

では、環境を監視するさまざまな方法について説明します。

5.1.2 ログ・ファイル

アーカイブ処理が発生すると、アラート・ログにこの情報が記入されます。プライマリでロ

グが切り替わるたびに、これがアラート・ログに登録されます。スタンバイ・データベース

でアーカイブ・ログ適用が実行されると、スタンバイ・インスタンスのアラート・ログに登

録されます。

5.1.3 固定ビュー

次に、Oracle Data Guard Broker を監視するために使用できる固定ビューを示します。

プライマリ・サイト

V$ARCHIVE_DEST 現在のインスタンスの全アーカイブ REDO ログ出力先、現在

の値、モード、ステータスを表示する。

V$ARCHIVE_DEST_STATUS アーカイブ REDO ログ出力先の実行時情報と構成情報を表

示する。

V$ARCHIVED_LOG 制御ファイルからのアーカイブ REDO ログ情報を表示する。

アーカイブ・ログ名を含む。

V$DATABASE 制御ファイルからのデータベース情報を提供する。データ

ベースのステータスを含む。

V$LOG オンライン REDO ログからのログ・ファイル情報を含む。

スタンバイ・サイト

V$ARCHIVED_LOG 制御ファイルからのアーカイブ REDO ログ情報を表示する。

アーカイブ・ログ名を含む。

V$DATABASE 制御ファイルからのデータベース情報を提供する。データ

ベース・ステータスを含む。

V$LOGFILE オンライン/スタンバイ REDO ログに関する情報を含む。

V$MANAGED_DATAGUARD Oracle Data Guard に関連する Oracle データベース・サー

バー・プロセスの 新情報とステータス情報を表示する。

V$DATAGUARD_LOG オンライン/スタンバイ REDO ログに関する情報を表示する。

6 管理

6.1 スイッチオーバー

プライマリ・サーバーのメンテナンスなどの計画停止により、プライマリ・サイトが使用不

能になる場合があります。このような場合、スタンバイ・サイトへ一時的にスイッチオーバー

することが得策です。この手順は非破壊的であるため、プライマリ・サイトが使用可能にな

ると、どちらのデータベースも再構築することなく、もとに戻すことができます。

6.1.1 SQL Plus を使用したスイッチオーバー

データベースが引き受けるロールに対してそれぞれ正しく構成されており、スタンバイ・

データベースがマウント状態にあることを確認します。

RAC プライマリからのスイッチオーバーを実行する前に、1 つをのぞいたすべてのプライマ

リ・インスタンスを停止します(スイッチオーバーが完了したら再開可能)。

RAC スタンバイへのスイッチオーバーまたはフェイルオーバーを実行する前に、1 つをのぞ

いたすべてのスタンバイ・インスタンスを停止します(ロール移行が完了したら再開可能)。

次の SQL 文を発行すると、スタンバイへのスイッチオーバーが実行されます(注:リカバリ

が必要な場合、項 7.1 にある REDO ログ変更の適用手順にしたがってください)。

プライマリ・データベースで、スイッチオーバーを開始します。 alter database commit to switchover to physical standby

[with session shutdown];

注:プライマリへの接続が存在する場合、'with sessin shutdown'句を使用してください。

新しいスタンバイ・データベースを再起動してマウントします。

(古い)スタンバイ・データベースで、新しいプライマリ・ロールへの切替えをおこないま

す。 alter database commit to switchover to primary;

新しいプライマリ・データベースを再起動してオープンします。

新しいスタンバイ・データベースで REDO Apply を開始します。 alter database recover managed standby database

[using current logfile] disconnect;

注 :一般的に、長期間にわたってプライマリ・サイトが使用不能になる場合は、

log_archive_dest_state_2 を'defer'に設定することを推奨します。

6.1.2 Oracle Data Guard Broker を使用したスイッチオーバー

ここでは、Oracle Data Guard Broker のコマンドライン・インタフェースに次のコマンドを入

力することで、スタンバイ・データベースへのスイッチオーバーを実行します(Grid Controlを使用することもできます)。

dgmgrl sys/mypasswd

switchover to SUN;

**<SUN>をスイッチオーバー先のデータベース名で置き換えます。

注:長期間にわたってプライマリ・サイトが使用不能になる場合は、データベースを無効化

してください。 disable database MOON;

フェイルオーバー 6.2

6.2.1 SQL Plus を使用したフェイルオーバー

障害によりプライマリ・データベースが使用不能になった場合、スタンバイ・サイトへのフェ

イルオーバーが必要になります。

スタンバイ・データベースを通常処理用にオープンする前に、完了していないすべての変更

をデータベースに適用する必要があります。実行するには、次の手順にしたがいます。

次のコマンドを実行して、管理リカバリ・モードを終了します。 alter database recover managed standby database finish;

スタンバイ・データベースをプライマリ・ロールに切り替え、通常モードでオープンします。 alter database commit to switchover to primary;

alter database open;

6.2.2 Oracle Data Guard Broker を使用したフェイルオーバー

同じ処理を Oracle Data Guard Broker から実行できます。次のコマンドを使用します。 dgmgrl sys/mypasswd

failover to SUN;

6.3 強制フェイルオーバー

場合によって、標準フェイルオーバーを実行できないことがあります。このような場合、強

制フェイルオーバーを実行できます。強制フェイルオーバーは破壊的であるため、一度起動

すると、残っているスタンバイ・データベースがあってもこれを再構築する必要があります。

SRL を使用する場合、次のコマンドを実行します。 alter database recover managed standby database finish force;

次に、以下のコマンドを実行します。 alter database activate standby database [skip standby logfile];

shutdown immediate;

startup mount;

alter database open resetlogs;

6.3.1 Oracle Data Guard Broker を使用した強制フェイルオーバー

同じ処理を Oracle Data Guard Broker からも実行できます。 dgmgrl sys/mypasswd

failover to SUN immediate;

スタンバイ・データベースの読取り専用オープン

レポートやデータ・チェックを実行するために、スタンバイ・データベースを読取り専用モー

ドでオープンできます。実行するには、以下の手順にしたがいます。

6.4

1. 管理リカバリを停止します。 alter database recover managed standby database cancel;

2. データベースをオープンします。 alter database open read only;

または、スタンバイ・データベースで'通常'起動を実行するとデータベースが読取り専用モー

ドでオープンされます。

注:読取り専用モードでオープンしている間、変更は受信されますがスタンバイ・データベー

スへ適用されません。

リアルタイム適用/リアルタイム問合せ

Oracle 11g では、Oracle Data Guard を読取り専用でオープンしながら REDO 変更を適用する

機能が導入されました。この機能は、リアルタイム適用/リアルタイム問合せと呼ばれていま

す。有効化するには、SQL Plus を使用して次の手順にしたがいます。

6.5

1. スタンバイ・データベースに接続します。 sqlplus / as sysdba

2. 管理リカバリを取り消します。 alter database recover managed standby database cancel;

3. データベースをオープンします。 alter database open;

4. 管理リカバリを再開します。 alter database recover managed standby database disconnect;

7 付録 A - Oracle RMAN を使用したスタンバイ・データベースの作成(従来の方法) Oracle Database 11g 以前では、スタンバイ・データベースの"オンザフライ"作成を実行できま

せんでした。以下の方法は広く使用されてきたものであり、必要に応じて 11g で使用するこ

ともできます。

前提条件

このプロセスをより複雑で柔軟なものにすることもできますが、ここでは以下の条件を前提

としています。

7.1

• スタンバイ・データベースとプライマリ・データベースの構造が一致する

• リカバリ・カタログが存在する

注:ここで説明するスタンバイ・データベースの設定方法では、リカバリ・カタログを使用

しません。

注:通常、実行中の Oracle Data Guard 環境で Oracle RMAN を使用するにはリカバリ・カタ

ログが必要です。

7.2 Oracle RMAN のバックアップ

スタンバイ・データベースの作成に適した Oracle RMAN のバックアップを作成する方法には、

次の 2 種類があります。

7.2.1 新規バックアップ

Oracle RMAN を使用する前に一度もバックアップを取得していないデータベースの場合、

バックアップを作成する必要があります。

プライマリ・サイトから、次を実行します。 rman target /

Run { allocate channel d1 device type disk format ‘/backup/%U’; allocate channel d2 device type disk format ‘/backup/%U’;

sql “alter system switch logfile” backup database include current controlfile for standby plus archivelog; }

Oracle RAC を実装している場合、次を実行します。 Run { allocate channel d1 device type disk format ‘/backup/%U’; allocate channel d2 device type disk format ‘/backup/%U’;

sql “alter system archive log current” backup database include current controlfile for standby; sql “alter system archive log current”; backup archivelog all; }

7.2.2 既存バックアップ

データベースのバックアップを以前に作成済みである場合、以下を実行して、スタンバイ制

御ファイルを作成する必要があります。 rman target / run {

allocate channel d1 device type disk format ‘/backup/%U’; allocate channel d2 device type disk format ‘/backup/%U’;

backup current controlfile for standby; sql ‘alter system archive log current;’ backup archive log all not backed up 1 times; }

7.3 スタンバイ・データベースの作成

7.3.1 前提条件

スタンバイ・データベースを構築する前に、以下について確認します。

• Oracle 実行ファイルがスタンバイ・マシンにインストールされている

• データベースのディレクトリ構造がスタンバイ・マシン上に存在する

• スタンバイ・マシンでリスナーが開始されている

• スタンバイ・データベースがリスナーに静的登録されている

• プライマリ上に、スタンバイ・データベースを指す tnsnames.ora エントリが存在する

• プライマリの初期化パラメータ・ファイルがスタンバイ・ホストから使用可能である

• remote_password_fileが none に設定されている

• スタンバイ・インスタンスに外部パスワード・ファイルが作成されている

• RMAN バックアップ・セットがスタンバイ・ホストで使用可能である

7.3.2 手順

1. スタンバイ・データベース・インスタンスを開始します。 startup nomount pfile=init.ora

2. Oracle RMAN へ接続します(プライマリ・サイト上)。 rman target / auxiliary sys/syspwd@<standby_alias>

3. スタンバイ・データベースを作成します。 duplicate target database for standby dorecover [nofilenamecheck];

ここまでで、スタンバイ・データベースが作成されました。

注:スタンバイ・データベースの運用を開始する前にリカバリを実行する必要はありません。

REDO ログのギャップ解消機能により、管理リカバリの開始時に同期化されるためです。こ

のため、‘dorecover’オプションを使用することはあまりありません。

8 付録 B - 参考資料

8.1 Oracle マニュアル

• 『Oracle Clusterwareインストール・ガイド』

11g リリース 1 for Linux

2007 年 10 月

• 『Oracle Real Application Clustersインストール・ガイド』

11g リリース 1 for Linux

2007 年 9 月

• 『Oracle Data Guard概要および管理』

11g リリース 1

2007 年 9 月

• 『Oracle Data Guard Broker』

11g リリース 1

2007 年 9 月

• 『Oracle Databaseバックアップおよびリカバリ・ユーザー・ガイド』

11g リリース 1

2007 年 9 月

• 『Oracle Databaseバックアップおよびリカバリ・リファレンス』

11g リリース 1

2007 年 9 月

8.2 Metalink • Note 413484.11

『Data Guard Support for Heterogeneous Primary and Standby Systems in Same Data Guard Configuration』

1 MetaLink Note の参照には MetaLink アカウントが必要です。(https://metalink.oracle.com)

Oracle Data Guard 11g Oracle RAC システムでのインストールと構成

2008 年 6月

著者:Michael Rhys、オラクル 共著者:Holger Kalinowski、オラクル

Oracle USA, Inc. World Headquarters

500 Oracle Parkway

Redwood Shores, CA 94065 U.S.A.

海外からのお問い合わせ窓口: 電話:+1.650.506.7000

ファクシミリ:+1.650.506.7200

www.oracle.com

Copyright © 2008, Oracle.All rights reserved. 本文書は情報提供のみを目的として提供されており、ここに記載される内容は予告なく変更され

ることがあります。

本文書は一切間違いがないことを保証するものではなく、さらに、口述による明示または法律に

よる黙示を問わず、特定の目的に対する商品性もしくは適合性についての黙示的な保証を含み、

いかなる他の保証や条件も提供するものではありません。オラクル社は本文書に関するいかなる

法的責任も明確に否認し、本文書によって直接的または間接的に確立される契約義務はないもの

とします。本文書はオラクル社の書面による許可を前もって得ることなく、いかなる目的のため

にも、電子または印刷を含むいかなる形式や手段によっても再作成または送信することはできま

せん。

Oracle、JD Edwards、PeopleSoft、およびSiebel は、米国Oracle Corporation およびその子会社、

関連会社の登録商標です。その他の名称はそれぞれの会社の商標です。