技術ブログ
目次
Oracle ACEの渡部です。Dbvisitは稼働中のOracleデータベースに対してスタンバイDBを作成して、高可用性構成を実現するソフトウェアです。
スタンバイDBを持つ高可用性構成における運用作業でスイッチオーバーとフェイルオーバーがあります。 スタンバイDBを持つ高可用性構成に馴染みのない方からすると、スイッチオーバーとフェイルオーバーの違いが理解しにくいように感じます。このため、本エントリでは、Dbvisitを前提にスイッチオーバーとフェイルオーバーについて記載します。
コーソルでは、Dbvisit Standbyの販売および設計、導入、製品サポートを行っています。Dbvisit Standbyをご検討の際はぜひコーソルにお声がけください。
スイッチオーバーとフェイルオーバーの表形式で比較したのが以下のものです。
プライマリDBまたはプライマリサーバ全体に、突発的な障害が発生した時に使用するのがフェイルオーバー(failover)です。 プライマリDBはもはや使用できない状況にありますので、プライマリDBには頼らず、スタンバイDBだけでサービスを継続できる状態への復旧を目指します。
具体的には、スタンバイDBをプライマリDBに速やかに昇格させます。
Dbvisitの高可用性構成では、プライマリDBとスタンバイDB間の変更内容の伝搬はアーカイブログファイル単位で行われます。 このため、プライマリDBで突発的な障害が発生すると、プライマリDBからスタンバイDBに伝搬できない更新が発生します。これは、アーカイブログファイル単位で変更内容の伝搬を行う仕組み上、避けがたい制約です。よって、プライマリDBで更新SQLを実行してコミットが成功したにも関わらず、失われる更新が発生することになります(更新ロスの発生)。
一方、スイッチオーバーは、計画的にプライマリDBまたはプライマリサーバ全体を停止する場合に使用します。プライマリサーバのハードウェアメンテナンスや再起動を伴うOSアップデート、プライマリサーバが配置されているデータセンターの停止などが想定されます。
スイッチオーバーでは、更新ロスが発生しません。
更新ロスを発生させないため、スイッチオーバーでは比較的複雑な処理が実行されます。
スイッチオーバーの全体の動きを図式化したのが以下の図です。
旧プライマリDBが新スタンバイDBとなります。再度スイッチオーバーして、元の構成に戻すことも可能です。
スイッチオーバーの実行中(図の②~④直前)は、一時的にアプリケーションがデータベースに接続できない状態になることに注意してください。
しかし、更新ロスは発生しません。スイッチオーバー前に、プライマリDBで更新SQLを実行してコミットが成功したならば、更新は決して失われることはありません。更新が失われないように、Dbvisitが内部処理を制御します。具体的には、スイッチオーバー処理の中でDbvisitが適切に全てのREDOログをプライマリDBからスタンバイDBに転送+適用してくれます。
フェイルオーバーの全体の動きを図式化したのが以下の図です。
すでに説明しましたが、フェイルオーバーは、 プライマリDBまたはプライマリサーバ全体に、突発的な障害が発生した時に使用します。 このため、プライマリDBはもはや使用できない状況にありますから、プライマリDBには頼らず、スタンバイDBだけでスタンバイDBをプライマリDBに速やかに昇格させて、サービスを継続できる状態とします。
プライマリDBで突発的な障害が発生すると、プライマリDBからスタンバイDBに伝搬できない更新が発生します。これは、アーカイブログファイル単位で変更内容の伝搬を行う仕組み上、避けがたい制約です。
スイッチオーバーの場合は、DbvisitがプライマリDBを制御して、全てのREDOログが失われないように動作します。しかし、フェイルオーバーはプライマリDBはもはや使用できない状況を想定した処理ですから、このようなことは実行できません。
また、フェイルオーバーを実行すると、旧プライマリDBはもはや使用できず、削除するしかありません。 このままですと、高可用性構成ではありません。高可用性構成に戻すには、新プライマリDBからスタンバイDBを作成する必要があります。
スイッチオーバーに関する処理はDbvisitが自動的に実行してくれますが、実際の処理内容はなかなか煩雑です。
例えば、Dbvisitを使用せずに手動で行う場合(いわゆる基本スタンバイをツールなしで運用する場合)は、以下の処理を実行する必要があります。
これらの処理をミスなく行うのはなかなか大変です。Dbvisitの有用性をご理解いただけるのではないでしょうか。
Dbvisitでスイッチオーバーを実行したときの画面遷移を以下に示します。
Dbvisitでフェイルオーバーを実行したときの画面遷移を以下に示します。
Dbvisit Standby は歴史が長く、全世界および日本での導入実績も多数ある製品です。 安心してご利用いただけます。
2021年5月時点で、国内での最新バージョンは 9.0.20 ですが、近日中に新バージョン 10のリリースが予定されています。
バージョン10の主な新機能は以下の通りです。
コーソルはDbvisit Standbyの一次代理店で、Dbvisit Standbyの製品販売を行います。 加えて、Dbvisitの導入およびサポートを行います。
コーソルでは、Dbvisitを用いたOracle Standard Edition向け災害対策環境構築サービスを提供しています。
SIer様、販社様がDbvisit Standbyを販売することも可能です。
コーソルからDbvisit Standbyを購入いただけると、認定資格Dbvisit Standby Certified Associate取得者数12名、ORACLE MASTER Platinum 単年取得者数7年連続No.1(2014年度~2020年度)という指標に裏付けされた高い技術力により責任もって製品を導入いたします。また、導入後も品質の高い製品サポートをご提供いたします。
総勢12名のエンジニアが認定資格Dbvisit Standby Certified Associateを取得
Dbvisitに関わる総勢12名のエンジニアが認定資格Dbvisit Standby Certified Associateを取得しました!
Dbvisitに関する技術的な知見をセミナーおよび技術ブログで発信
Oracle AWS移行セミナー Dbvisit on EC2セッション骨子(2020年7月22日実施)
3/11開催SIOS社共催Oracle SEHA+Dbvisitセミナーのお知らせ
3/3(水) お昼のDbvisit + Insight Qubeウェビナーのお知らせ
11/10-12 db tech showcase コーソル担当セッションのご紹介 #dbts2020
Dbvisit関連ブログ記事を多数公開
Dbvisit Standby Snapshot Option – Dbvisit 9新機能
Dbvisitとカスタムスクリプトによる基本スタンバイ管理・運用の比較
Dbvisit : スイッチオーバーとフェイルオーバーの比較
スタンバイDBを再作成せずにStandby ExpressからDbvisit Standbyへ変更する方法
Oracle ASM RACからシングル構成のスタンバイDBを作成する – Dbvisit
REDO欠落時のブロック破損時のスタンバイDB再作成を回避する / Dbvisitの同期機能
Dbvisit Standbyのアーキクチャと管理コンソール操作
Oracle Database基本スタンバイの各種手順(スタンバイDB構築、ログ転送→適用、スイッチオーバー、フェイルオーバー)
Oracle Database Standard Editionの拠点災害対策ソリューションとは (基本スタンバイとDbvisit)
7年連続ORACLE MASTER Platinum取得者数No.1! Oracle Certification Award 2020
Dbvisit Standbyと併せて使用される、Oracle Databaseについても製品販売、製品サポート、製品の導入を行います。また、リモート回線経由でスポット的なDBA実務を行うリモートDBAサービス、コンサルティングやベンダコントロールを含めたOracle Databaseプロフェッショナルサービスを時間制で提供する時間制DBAサービスも提供しています。
非常駐型データベース運用サービス