Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

OracleDB SQLServer

OracleデータベースとSQL Serverを冗長性の機能面での比較検討

投稿日:2019年5月12日 更新日:

(0)目次

(1) 冗長性の機能(Oracle)
 (1-1) Oracle RAC
 (1-2) Oracle Fail Safe
(2) 冗長性の機能(SQL Server)
 (2-1) Always on FCI(Failover Cluster Instance)
 (2-2) Always on 可用性グループ

(1) 冗長性の機能(Oracle)

(1-1) Oracle RAC

(※Active-Active構成)
複数のインスタンスで1つのDBを共有する。一つのノードで障害が起きても、別サーバーに処理を引き継ぎ(フェイルオーバー)できる。Active-Active構成のため、常に全インスタンスが起動しており、待機系のサーバーは不要です。

目次にもどる

(1-2) Oracle Fail Safe

(※Active-Standby構成)
Windows Serverにおける冗長化機能。WSのMicrosoft Cluster Serviceと組み合わせて使い、障害が発生したら、別サーバーでDBを再起動する。

平常時は2台のディスクに2台のサーバーが接続されており、各ディスクは両方のノードにアクセス可能な状態になっています(Active-Standby構成)。ただし、MSCSによりある時点でディスクを所有・アクセスできるのは1つのノードのため、2つのノードが同時にディスクアクセスは不可。

(1)検知・起動
あるノードで障害が発生すると、リソース再起動ポリシーに従い再起動が行われます(例:100秒に1回)。再起動が出来ない場合はフェイルオーバーポリシーが適用され、自動的にもう一方のノードにフェイルオーバーします。接続には仮想アドレスを利用しているため、接続先情報の変更なく切り替えが可能です。ただし、RACと比較すると切替えには時間が掛かってしまうのと、待機系のサーバーが別途必要になる点があります。

目次にもどる

(2) 冗長性の機能(SQL Server)

(2-1) Always on FCI(Failover Cluster Instance)

(※Active-Standby構成)
複数のノードから一つのディスクにアクセスしており、ノード(サーバー)で障害が発生したら、他のノードに切り替えして処理を継続します。前のバージョンの機能では「フェイルオーバー」の機能に相当します。

(1)検知・起動
WSFCがサーバー間のネットワークやディスクI/Oを監視して、障害検知を行います。障害が検知されると、サービスの再起動やインスタンスの切替え(フェイルオーバー)がなされます。

(備考)
WSFC(Windows Server Failover Clustering)上で動作します。

目次にもどる

(2-2) Always on 可用性グループ

SQL Server2012からの機能で複数のSQL Serverグループ(可用性グループ)を仮想的に1台に見せることが出来ます。どれか1つのグループが正常に動作していれば、断絶なく業務継続が可能です。データレプリケーション機能を持ち、共有ディスクを必要としないクラスター構成が可能です。前のバージョンの機能では「ミラーリング」に相当し、以下に示すようなパラメーターを設定します。

・データ同期モード
「非同期コミットモード」は災対環境等に適しており、レプリカが遠隔地に分散する際などに有効です。一方で「同期モード」は可用性が高まる反面、処理遅延が発生する欠点があります。同期コミットのレプリカ数は、プライマリを含めて上限3つまでです。

・フェイルオーバーモード
フェイルオーバーを自動・手動・強制のいずれかで行うかの設定です。自動・手動はいずれもメンテナンスなど管理目的で実行されるもので、セカンダリレプリカが同期されている場合のみ行う事ができます。一方で強制は災害復旧等の目的で使用され、セカンダリレプリカが非同期でもフェイルオーバーが実行できます(データロスト有り)

・アクティブ/セカンダリ
プライマリサーバーかセカンダリサーバーかを設定します。

・セカンダリのバックアップ
セカンダリのレプリカを読み取り専用にするか、バックアップの取得を可能とするか?

目次にもどる

以上です。

Adsense審査用広告コード


Adsense審査用広告コード


-OracleDB, SQLServer

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

SQLServerでクエリの履歴のトレースログを出力する方法

  <目次> (1) SQLServerでクエリの履歴のトレースログを出力する方法  (1-1) 概要  (1-2) 手順  (1-3) (参考)トレースの出力状況の確認方法  (1-4) …

ORA-00257エラーの対応(“archiver error. Connect Internal only. until freed”)

ORA-00257エラーの対応法についてです。 (“archiver error. Connect Internal only, until freed”) (0) 目次 (1 …

Tomcatを使ったフォーム認証でユーザ情報をデータベース管理する方法

<目次> (1) Tomcatを使ったフォーム認証でユーザ情報をデータベース管理する方法  (1-1) 前提条件  (1-2) STEP1:context.xmlにコネクションプールを設定  (1-3 …

データベースのインデックスの基本と種類とOracleやSQL Serverでの特長について

(0)目次&概説 (1) データベースのインデックスとは (2) インデックスはどのような場面で使う? (3) インデックスの主要な方式  (3-1) B木  (3-2) B+木  (3-3) ビット …

Linuxサーバ(CentOS6)にOracleDB11gをインストールする(その3)

目次 (5)リスナーの作成(netca)  (5-0)リスナーについての概要  (5-1)netcaの起動(netca)  (5-2)リスナー設定  (5-3)リスナー名の設定  (5-4)リスナーの …

  • English (United States)
  • 日本語
Top