株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

Dbvisit : スイッチオーバーとフェイルオーバーの比較

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を使用せずに手動で行う場合(いわゆる基本スタンバイをツールなしで運用する場合)は、以下の処理を実行する必要があります。

  1. プライマリDBのshutdown
  2. プライマリDBの制御ファイル、spfile、オンラインREDOログファイルを別の場所に退避
  3. プライマリDBからスタンバイDBへscpコマンドなどで2. で退避したファイルとアーカイブログファイルをリモートコピー
  4. スタンバイDBで転送したアーカイブログファイルを適用
  5. スタンバイDBをshutdown
  6. スタンバイDBの制御ファイル、spfile、オンラインREDOログファイルをプライマリDBのものに差し替え
  7. スタンバイDBを読み書きモードでOPENし、新プライマリDBにロール変更
  8. 旧プライマリDBをstandby databaseとしてmountし、新スタンバイDBにロール変更

これらの処理をミスなく行うのはなかなか大変です。Dbvisitの有用性をご理解いただけるのではないでしょうか。

Dbvisitのスイッチオーバー画面遷移

Dbvisitでスイッチオーバーを実行したときの画面遷移を以下に示します。

Dbvisitのフェイルオーバー画面遷移

Dbvisitでフェイルオーバーを実行したときの画面遷移を以下に示します。

Dbvisit Standbyの概要

Dbvisit Standby は歴史が長く、全世界および日本での導入実績も多数ある製品です。 安心してご利用いただけます。

2021年5月時点で、国内での最新バージョンは 9.0.20 ですが、近日中に新バージョン 10のリリースが予定されています。

バージョン10の主な新機能は以下の通りです。

  • 有償 Snapshot Optionが標準機能に(追加費用不要)
  • 運用中のPDBの追加・削除に対応(PDB数3まで)
  • ネットワーク処理の改善

なぜコーソルからDbvisit Standbyを購入すべきなのか

コーソルのDbvisitサービス

コーソルはDbvisit Standbyの一次代理店で、Dbvisit Standbyの製品販売を行います。 加えて、Dbvisitの導入およびサポートを行います。

コーソルのDbvisit Standby販売など

コーソルでは、Dbvisitを用いたOracle Standard Edition向け災害対策環境構築サービスを提供しています。

SIer様、販社様がDbvisit Standbyを販売することも可能です。

Oracle DatabaseおよびDbvisit Standbyの技術力は日本随一

コーソルからDbvisit Standbyを購入いただけると、認定資格Dbvisit Standby Certified Associate取得者数12名、ORACLE MASTER Platinum 単年取得者数7年連続No.1(2014年度~2020年度)という指標に裏付けされた高い技術力により責任もって製品を導入いたします。また、導入後も品質の高い製品サポートをご提供いたします。

Dbvisit Standby技術力の証明

総勢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)

Oracle Database技術力の証明

  • 単年度ORACLE MASTER Platinum取得者数7年連続No.1

7年連続ORACLE MASTER Platinum取得者数No.1! Oracle Certification Award 2020

Oracle DatabaseのDBAサービスを提供可能

Dbvisit Standbyと併せて使用される、Oracle Databaseについても製品販売、製品サポート、製品の導入を行います。また、リモート回線経由でスポット的なDBA実務を行うリモートDBAサービス、コンサルティングやベンダコントロールを含めたOracle Databaseプロフェッショナルサービスを時間制で提供する時間制DBAサービスも提供しています。

非常駐型データベース運用サービス

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ