Oracle Data Guardとは

Data Guardとは主にデータ保護を目的としたデータベースの自動同期(レプリケーション)機能です。
複製されたデータベース(スタンバイデータベース)を遠隔地に配置することで本番データベースが物理的に破壊されても スタンバイデータベースを使用することでサービスの継続及びデータ消失からの保護が可能なことから 災害対策として災対環境として利用することができます。

また、後述するスタンバイデータベースのモードによってはデータベースの物理バックアップとして利用する、 複製データベース側で独自のテーブルやビューを作成することで本番データベース(プライマリデータベース)の 一部機能を負担させることにより負荷分散させることが可能です。

500 Internal Server Error

500 Internal Server Error


nginx/1.18.0 (Ubuntu)

スタンバイデータベースのモード

スタンバイデータベースには以下の二つのモードがあります。

フィジカル・スタンバイデータベース
フィジカルスタンバイデータベースはプライマリデータベースから転送されたredoを直接適用することで同期するため、各データファイルがscnベースでプライマリと物理的に全く同一になることが特徴です。 データファイルが物理的に同一であることからスタンバイデータベースはプライマリデータベースの物理バックアップとして使用することができます。

ロジカル・スタンバイデータベース
ロジカル・スタンバイデータベースはバージョン9.2以降で追加された新機能で、プライマリデータベースから転送されたredoから変更内容をSQLベースで復元しそのSQLをスタンバイにて適用することでデータを同期させます。 SQLレベルで同期する仕組みのためロジカルスタンバイデータベースの場合はプライマリデータベースにはないテーブルやview等のオブジェクトを作成することが可能であり、 そのオブジェクトに対しては自由にinsertやupdate等の更新を行うことができます。

機能比較
機能 フィジカルスタンバイ ロジカルスタンバイ
スタンバイDBをプライマリDBの物理バックアップとして利用する ×
プライマリDBにないオブジェクトの作成やデータ更新 ×※1
スタンバイDB側のデータ同期時の状態 mount(DML文やSELECT文等の実行不可) ※2 open(DML文やSELECT文等の実行可)

※1・・・11g以降はスナップショットスタンバイという機能を使うことで可能
※2・・・11g以降はアクティブデータガード機能(有償オプション)によりread onlyモードでopenしつつ同期することが可能

保護モード

データガードにはデータの保護方針として以下のモードが用意されておりいづれかを選択します。

最大保護
必ずプライマリ、スタンバイ共にデータが同期されることを保証するモードです。
更新時にプライマリ、スタンバイ共に更新されたことをもってcommitが完了するためパフォーマンスが落ちます。 また、データが同期できない状況になった場合はインスタンスがダウンするため可用性がシングル構成よりも落ちます。

最大可用性
可用性を確保した上で最大限データが同期することを努力するモードです。 最大保護と同様に更新時にプライマリ、スタンバイ共に更新されたことをもってcommitが完了するためパフォーマンスが落ちます。 データが同期できない状況になった場合は最大パフォーマンスに切り替わるためプライマリDBの可用性は落ちません。

最大パフォーマンス
パフォーマンスを最大限落とさないように同期するモードです。 更新時にはスタンバイ側で更新されたかどうかの確認を持たずにcommitされるためパフォーマンスへの影響は機微です。 ただし、データが同期される保証もないためプライマリDBが消失するなどの事態になった場合一部データが消失する可能性があります。

ライセンス

Data Guardは Enterprise Edition 専用の機能ですが Data Guard の機能からデータの自動同期、 redoやarchive logの自動転送機能等を省いたスタンバイデータベース機能はStandard Editionでも利用することができます。

マニュアル

10.2マニュアル一覧
11.1マニュアル一覧
11.2マニュアル一覧
Oracle Data Guard 概要および管理10gリリース2(10.2)
Oracle Data Guard 概要および管理11gリリース1(11.1)
Oracle Data Guard概要および管理11gリリース2(11.2)
500 Internal Server Error

500 Internal Server Error


nginx/1.18.0 (Ubuntu)