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) SQLServerの操作例 (1) SQLServerでテーブルを作成する方法 …

SQL ServerのAlwaysOn可用性グループ(Availability Groups)とは?

  <目次> (1) SQL ServerのAlwaysOn可用性グループ(Availability Groups)とは?  (1-1) SQL ServerのAlwaysOnとは?  (1 …

Oracleデータベースのバックアップをimpdpでリストアする方法

※本記事は「Oracleデータベースのバックアップをexpdpで取得する方法」の続きとなる記事です。 (0)目次&概説 (3) インポート手順(impdp)  (3-1) (事前作業)ロールの付与   …

OracleDB11gのキャラクタセットを変更時に遭遇したエラーの対処方法

(0)目次&概説 (1) 記事の目的 (2) キャラクタセット変更手順 (3) 失敗した場合のリカバリ手順 (4) 用語説明 (5) エラー対応  (5-1) エラー:error while load …

バッチファイルでSQLServerに接続する方法~sqlcmdの各オプション挙動を実例で紹介~

<目次> (1) バッチファイルでSQLServerに接続する方法  (1-1) 構文  (1-2) オプションの説明  (1-3) 各オプションの挙動をサンプルで確認 (1) バッチファイルでSQL …

  • English (United States)
  • 日本語
Top