Oracle Databaseの運用時に、なんらかの理由によって障害が発生し、データが損失してしまう事態は避けなければなりません。
そのような事態を防ぐために利用したいのが、Oracle Data Guardです。
今回は、Oracle Data Guardの複数ある方式のうち、主な3つの方式として、フィジカルとロジカル、そしてスナップショット・スタンバイ・データベースについて解説します。
「Oracle Databaseの災害対策を強化したい」とお考えのご担当者様は、ぜひご一読ください。
目次
そもそもOracle Data Guardとは?
Oracle Data Guardとは、Oracle Database Enterprise Edition内にある、複数の拠点でデータベースを運用するためのレプリケーション機能のことです。
レプリケーション機能は、複製(レプリカ)を作る機能を意味し、同システム環境のサーバー間でほぼリアルタイムに同期を行い、同じデータを複数作成することができるものです。
Oracle Data Guardにおいては、データの変更履歴(REDO情報)を利用して、自動でデータベースの複製を作ります。
データベースを複製しておくことで、データベース障害やリージョン障害などが発生した際のシステムの復旧にかかる目標時間(RTO)を短くできるというわけです。
くわえて、データの復旧目標時点(RPO)の短縮にもつながります。
また、Oracle Data Guardによる複製のデータベースはスタンバイとして、メインで使用する元のデータベースであるプライマリと切り替えて使用することも可能です。
つまり、プライマリとスタンバイを任意で切り替えて使えるということです。
この機能によって、有事の際だけでなく、メンテナンスによる計画的な停止においても、データベースの停止時間を限りなく減らせます。
このようにOracle Data Guardは、大規模な災害といった有事の際の復旧のみならず、メンテナンスや移行における停止時間の短縮にも役立つのです。
Oracle Data Guardのスタンバイ・データベースのタイプ
Oracle Data Guardの構成には、本番データベースともよばれるプライマリ・データベースが1つと、それに関連づけられた最大30個のスタンバイ・データベースが含まれています。
プライマリ・データベースには、ほとんどのアプリケーションがアクセスするため、ここに格納されているデータが失われるようなトラブルは回避しなければなりません。
このプライマリ・データベースを守るために必要なのが、スタンバイ・データベースの複製です。
ここでは、代表的な3種類を取り上げ、それぞれの概要をまとめました。
【Oracle Data Guardのスタンバイ・データベースのタイプ】
名称 | 概要 |
フィジカル・スタンバイ・データベース | プライマリ・データベースをブロックごとに正確に複製することで、完全なコピーを作成する |
ロジカル・スタンバイ・データベース | SQLをもとにプライマリ・データベースから転送されたREDO情報を復元し、データを同期する |
スナップショット・スタンバイ・データベース | プライマリ・データベースから転送されたREDO情報を一時的に停止しておき、あとから適用する |
自社のニーズに合わせて効果的に活用するためにも、これら3つの方式の特徴を押さえておきましょう。
フィジカル・スタンバイ・データベース
フィジカル・スタンバイ・データベースは、プライマリ・データベースをブロックごとに正確に複製したものです。
プライマリ・データベースと物理的に同じ構成を有するデータベースに対し、同一のREDO情報を適用するため、完全一致のコピーを作れます。
表や索引のデータのみならず、データファイルといった物理的な構成も一致しているので、データベースの外部から見ても同一のものとして取り扱うことができます。
これらの特徴から、計画的なメンテナンスや予期せぬシステム障害の際に、フィジカル・スタンバイ・データベースを利用すると、停止時間を最小限に抑えることが可能です。
さらに、万が一プライマリ・データベースが破損した場合も、フィジカル・スタンバイ・データベースまで支障が出ないため、データの損失も防げます。
なお、フィジカル・スタンバイ・データベースでは、常にリカバリーの処理を行っており、基本的に読み書きの操作は行えません。
ロジカル・スタンバイ・データベース
ロジカル・スタンバイ・データベースでは、SQLをもとにプライマリ・データベースから転送されたREDO情報を復元します。
そのSQLをスタンバイ・データベースに適用することによって、データを同期する仕組みです。
このとき使用するSQLは、データベース内の検索や追加、削除といった操作のために用いられるデータベース言語です。
前述したフィジカル・スタンバイ・データベースとは異なり、ロジカル・スタンバイ・データベースでは読み書きの操作を実行できます。
プライマリ・データベースにはない、viewやテーブルなどのオブジェクトを作成できるほか、そのオブジェクトに対してinsertやupdateといった更新も自由に行えます。
ただし、ロジカル・スタンバイ・データベースはプライマリ・データベースを完全に複製したものではないため、物理的なバックアップとしては利用することができません。
スナップショット・スタンバイ・データベース
スナップショット・スタンバイ・データベースを使用すると、プライマリ・データベースから転送されたREDO情報を一時的に停止しておくことができます。
前述した2種類のデータベースと同様に、スナップショット・スタンバイ・データベースでは、プライマリ・データベースからREDO情報を受信します。
ただしREDO情報を受信するものの、同時には適用できません。
受信したREDO情報を適用するには、まずスナップショット・スタンバイ・データベースを変換して、フィジカル・スタンバイ・データベースに戻す必要があります。
その後、スタンバイ・データベースに対するローカル更新がすべて破棄されたあとに、REDO情報を適用することが可能です。
プライマリ・データベースのREDO情報は、受信と同時には適用されないのでリアルタイム性は失われてしまいます。
しかし、フィジカル・スタンバイ・データベースに変換されることで、元の状態に戻せるため、本番環境とほぼ同等のデータを用いた検証を実施したいケースにはぴったりです。
「本番と同じデータを使った検証は、なかなか難しい」「データ転送に時間がかかるので実施できていない」とお困りの担当者様もいらっしゃるかもしれません。
そのような場合は、スナップショット・スタンバイ・データベースの利用をおすすめします。
Oracle Data Guardの3つのスタンバイ・データベースを利用すると、データベースを守れる
今回は、Oracle Data Guardの概要を説明したのち、3つの方式をそれぞれ解説しました。
Oracle Data Guardを利用すると、複製のデータベースを作成することができます。
それによって、大規模な災害といった有事の際の復旧だけでなく、メンテナンスや移行における停止時間の短縮にも役立ちます。
Oracle Data Guardのスタンバイ・データベースには、フィジカルとロジカル、そしてスナップショットと3つの方式があるため、目的に応じて使い分けましょう。
Oracle Data Guardをこれから活用する、またはうまく運用できていない企業のご担当者様は、データベースのプロフェッショナル集団であるコーソルにご相談ください。
所属するエンジニアの98%がORACLE MASTERを保有しており、徹底的にサポートいたします。