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

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

関連記事

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

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

OracleDBのexpdp/impdpで発生したエラー対処[ORA-39002,ORA-39070,ORA-39087]&[ORA-39083,ORA-01658]

(4) エラー対応  (4-1) エラー1:ORA-39002,ORA-39070,ORA-39087   (4-1-1) 発生状況・エラーメッセージ   (4-1-2) 原因   (4-1-3) 対 …

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

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

SQLServerの復旧モデルの「単純」と「完全」と「一括ログ」の違いについて

<目次> (1) SQLServerの復旧モデルの「単純」と「完全」と「一括ログ」の違いについて  (1-1) 復旧モデルの概要  (1-2) 復旧モデルの比較表  (1-3) トランザクションログが …

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

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

  • English (United States)
  • 日本語
Top