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

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

関連記事

ORA-03113 end-of-file on communication channelエラーの対処

”ORA-03113 end-of-file on communication channel”の対処法について記述します。 (0) 目次 (1) 解析 (2) 原因 (3) 対策 (4) 解説  ( …

APサーバ(Java)⇒DBサーバ(OracleDB 11g)へJDBC接続する方法まとめ

(0)目次 (1) 前提条件 (2) JDBCドライバーのインストール  (2-1) JDBCドライバーをダウンロード  (2-2) APサーバにアップロード・解凍 (3) プログラムの実装  (3- …

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

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

ORA-28000エラーの解除方法と発生原因について

<目次> (1) 記事の目的  (1-1) エラー概要  (1-2) エラー原因  (1-3) エラー対策 (1) 記事の目的 (1-1) エラー概要 SQLDeveloperを使ってOracleDB …

SQLでCASE文の結果をWHERE句に指定する方法およびコスト面の考察

本記事では、 ・SQLでCASE文の結果をWHERE句に指定する方法について記述します。 ・CASE文を使う場合のコストについて考察します。 (0)目次&概説 (1) NG例 (2) OK例&解説 ( …

  • English (United States)
  • 日本語
Top