SQL Server 2005データベースミラーリング関連知識の簡単な説明
データベースミラーリングは、SQL Server データベースでデータベースの可用性を向上させるために使用される主要なソフトウェアソリューションです。データベース ミラーリングはデータベース単位で実装され、完全復旧モードを使用するデータベースでのみ利用できます。データベースミラーリングは、シンプルリカバリーモードとハイボリュームログリカバリーモードではサポートされておらず、データベースミラーリングでは、マスター、msdb、tempdb、およびモデルデータベースをミラーリングすることはできません。今回は主にデータベースミラーリングの知識を紹介します、一緒に勉強していきましょう
データベースミラーリングは、データベースの2つのコピーを維持し、それらは異なるSQL Serverデータベースエンジンインスタンス(サーバーインスタンス)に存在する必要があります。通常、これらのサーバーインスタンスは、異なる場所にあるコンピュータ上に存在します。一方のサーバー インスタンスは、データベースがクライアントにサービスを提供できるようにし(メイン サーバー)、もう一方のサーバー インスタンスは、ミラーセッションの構成と状態に応じて、ホット スタンバイまたはスタンバイ サーバーとして機能します(ミラー サーバー)。データベースミラーセッションを同期させる場合、データベースミラーは、コミットされたトランザクションのデータ損失なしに高速なフェイルオーバーをサポートできるホットスタンバイサーバーを提供します。セッションが同期されていない場合、ミラーサーバーは通常スタンバイサーバーとして使用されます(これはデータ損失の原因となります)。
データベースミラーリングのメリット
データベース・ミラーリングは、シンプルな戦略でありながら、次のようなメリットがあります。
データ保護の強化。
データベースミラーリングは、操作モードがハイセキュリティかハイパフォーマンスかによって、完全またはほぼ完全なデータ冗長性を提供します。詳細については、このトピックで後述する「"オペレーティング・モード"」を参照してください。
データベースの可用性を向上させます。
災害発生時、自動フェイルオーバーを備えた高セキュリティモードでは、(データを失うことなく)迅速にデータベースのスタンバイコピーをオンラインにすることができます。その他の動作モードでは、データベース管理者は、代わりにデータベースのスタンバイ コピーを(データを失う可能性がある)強制的にサービスすることを選択できます。詳細については、このトピックで後述する「ロールスイッチング」を参照してください。
アップグレード中の本番用データベースの可用性を向上させる。
ミラーリングされたデータベースのダウンタイムを最小限に抑えるには、データベース・ミラーリング・セッションに参加する SQL Server インスタンスを順次アップグレードして、ダウンタイムが 1 回のフェイルオーバーで済むようにすることができます。この形式のアップグレードは、ローリングアップグレードと呼ばれます。
データベースミラーリングの仕組み
データベースミラーリングのセッションにおいて、メインサーバーとミラーサーバーはパートナーとして通信し、協力します。2つのパートナーは、セッションにおいて、「サブジェクトの役割」と「ミラーの役割」という相補的な役割を果たします。任意の時点で、一方のパートナーが主語の役割を演じ、もう一方のパートナーがミラーの役割を演じる。各パートナーには、現在の役割があります。主役のパートナーは、「メインサーバー」と呼ばれ、そのデータベースコピーは現在のメインデータベースである。ミラーの役割を持つパートナーは、"ミラーサーバ" と呼ばれ、そのデータベースのコピーは現在のミラーデータベースです。データベースミラーが本番環境に配備されている場合、対象データベースは本番データベースとなります。
データベースミラーリングでは、マスターデータベースで行われたすべての挿入、更新、および削除操作を、できるだけ早くミラーデータベースにやり直します。やり直しは、アクティブなトランザクションログの各レコードをミラーサーバーに送信し、ミラーサーバーがそのログレコードをできるだけ早く順番にミラーデータベースに適用することで実現されます。論理レベルで実行されるレプリケーションとは異なり、データベースミラーリングは物理的なログレコードレベルで実行されます。
動作モード
データベースミラーリングのセッションは、同期または非同期のオペレーションとして実行されます。非同期オペレーションでは、ミラーサーバーがログをディスクに書き込むのを待たずにトランザクションがコミットされ、パフォーマンスが最大化されます。同期動作では、コミットされたトランザクションは両方のパートナーにコミットされますが、トランザクションの遅延時間が長くなります。
ミラーリングの動作には、2つのモードがあります。1つは、同期をサポートする「高セキュリティモード」です。高セキュリティモードでは、セッションが開始されると、ミラーサーバーはミラーデータベースをメインデータベースとできるだけ早く同期させます。データベースの同期後、コミットされたトランザクションは両方のパートナーにコミットされますが、トランザクションのラグタイムが延長されます。
2つ目の動作モードであるquot;ハイパフォーマンスモード"は、非同期で実行されるモードです。ミラーサーバーは、メインサーバーから送信されるログレコードと同期を取ろうとする。ミラーデータベースはメインデータベースより若干遅れることがありますが、2つのデータベース間のタイムラグは通常小さくなります。ただし、メインサーバーの作業負荷が高すぎたり、ミラーサーバーシステムの負荷が高すぎたりすると、時間間隔が長くなることがあります。
ハイパフォーマンスモードでは、ホストサーバーはミラーサーバーにログレコードを送信した後、ミラーサーバーの確認応答を待たずに、すぐにクライアントに確認応答メッセージを送信します。これは、トランザクションがコミットされる前に、ミラーサーバがログをディスクに書き込むのを待つ必要がないことを意味します。この非同期処理により、ホストサーバはトランザクションの遅延時間を最小限に抑えて動作することができますが、いくつかのデータは失われる可能性があります。
すべてのデータベースミラーリングセッションは、1台のマスターサーバーと1台のミラーサーバーのみをサポートします。次の図は、この構成を表しています。
自動フェイルオーバーを行う高セキュリティ・モデルでは、quot;witness server"と呼ばれる第3のサーバー・インスタンスを使用することが必要とされます。これら2つのパートナーとは異なり、ウィットネスサーバーはデータベースには使用できません。証人サーバーは、ホストサーバーが有効で実行されていることを確認することで、自動的なフェイルオーバーのみをサポートします。ミラーサーバーとウィットネスサーバーがメインサーバーから切断された後、ミラーサーバーとウィットネスサーバーが互いに接続されたままである場合にのみ、ミラーサーバーは自動フェイルオーバーを開始します。
次の図は、ウィットネスサーバーを含む構成を示しています。
トランザクションのセキュリティと運用モード
実行モードが非同期か同期かは、トランザクション・セキュリティの設定に依存します。SQL Server Management Studio を使用してデータベースミラーリングを構成する場合、実行モードを選択すると、トランザクション セキュリティ設定が自動的に構成されます。
Transact-SQL を使用してデータベース ミラーリングを構成する場合、トランザクション セキュリティの設定方法を知っておく必要があります。トランザクション セキュリティは、ALTER DATABASE ステートメントの SAFETY プロパティによって制御されます。ミラーリングされるデータベースでは、SAFETY は FULL または OFF になります。
SAFETYオプションがFULLに設定されている場合、データベースのミラーリング操作は最初の同期フェーズ以降、同期的に実行されます。証人サーバーが高セキュリティモードに設定されている場合、セッションは自動的なフェイルオーバーをサポートします。
SAFETYオプションがOFFに設定されている場合、データベースミラーリング操作は非同期で実行されます。この場合、セッションはハイパフォーマンスモードで実行され、WITNESSオプションもOFFに設定する必要があります。
役割の切り替え
データベースミラーリング・セッションのコンテキストでは、通常、quot;role switching"というプロセスを使用して、サブジェクトの役割とミラーの役割を入れ替えることができます。ロールスイッチングでは、サブジェクトのロールをミラーサーバーに変換します。ロールスイッチングでは、ミラーサーバーはメインサーバーのフェイルオーバーパートナーとして機能します。役割の切り替えが実行されると、ミラーサーバはサブジェクトの役割を引き継ぎ、そのデータベースのコピーをオンラインにして新しいサブジェクトのデータベースとして機能させます。以前のホストサーバー(もしあれば)は、ミラーの役割として機能し、そのデータベースは新しいミラーデータベースとなります。これらの役割は、繰り返し切り替えることができます。
役割の切り替えには、次の3つの形態があります。
自動フェイルオーバー
そのためには、ミラーサーバーとウィットネスサーバーによる高セキュリティなモデルが必要です。データベースは同期され、証人サーバーはミラーサーバーに接続されていなければなりません。
証人サーバーの役割は、指定されたパートナーサーバーが稼働していることを確認することである。ミラーサーバがプライマリサーバから切断されても、ウィットネスサーバがプライマリサーバに接続されたままであれば、ミラーサーバはフェールオーバーを開始することができません。
手動フェイルオーバー
そのためには、高セキュリティなモデルを使用する必要があります。両方のパートナーが互いに接続され、データベースが同期されている必要があります。
強制サービス(データ消失の可能性あり)
自動フェイルオーバーを行わないハイパフォーマンスモードおよびハイセキュリティモードでは、プライマリサーバーに障害が発生し、ミラーサーバーが利用可能な場合に、サービスを強制的に実行させることが可能です。
重要な注意事項
ハイパフォーマンスモードは、ウィットネスサーバーなしで実行するために使用されます。しかし、ウィットネスサーバーが存在する場合、強制サービスは、ミラーサーバーに接続するためにウィットネスサーバーを必要とします。
どちらのロールスイッチのシナリオでも、新しいホストデータベースがオンラインになると、クライアントアプリケーションはデータベースへの再接続によって迅速に回復します。
データベースミラーリング対応
データベースミラーリングのパートナーとウィットネスサーバーは、SQL Server 2005 Standard Edition SP1以降、およびSQL Server 2005 Enterprise Edition SP1以降でサポートされています。前提条件として、各パートナーは同じエディションを使用する必要があり、SQL Server 2005 Enterprise Edition SP1 以降のみ非同期データベースミラーリング(ハイパフォーマンスモード)をサポートしています。Witness Serverは、SQL Server 2005 Workgroup Edition SP1以降、SQL Server 2005 Express Edition SP1以降でもサポートされます。
SQL Server 2005 のデータベース・ミラーリングについては以上ですが、あなたにとって実りのあるものになれば幸いです。
関連
-
Microsoft Sql server2005 のインストール手順のグラフィック詳細とよくある問題の解決法
-
SQL2005 ビューデッドロック ストアドプロシージャ sp_who_lock
-
SQL server 2005 をインストールすると、32 ビット ASP.NET は既に登録されているので、64 ビットのソリューションを登録する必要があるとの警告が表示される。
-
SQL Server 2005 ミラー構築マニュアル(sql2005 データベース同期ミラーリングソリューション)
-
SQLserverにおけるdeclare変数の使用法
-
SQL ServerでTRUNCATEトランザクションをロールバックする方法
-
SQL Server 2005 の SQL 文の時限実行方法について
-
win2003 ServerでSQL Server 2005のリモート接続を設定する方法
-
AccessからSQL Server 2005へのインポートの方法概要
-
SQL Server 2005のインストールと設定方法のグラフィックチュートリアルは、Win7のすべてのバージョンと完全に互換性があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
WIN7でSQL Server 2005 Express Edition(Lite)のインストールと設定
-
SQLServer 2005でサーバー名がない場合の2つの解決策
-
SQL Server 2005 インストールパス ディレクトリ変更方法まとめ
-
SQL Server 2005における外部結合の使用法
-
SQL Server 2005 Compact Editionのデータベースを削除する詳細情報
-
SQL Server 2005 で Try Catch を使って例外を処理する
-
SQL Server 2005のデータベースでtempdbの場所を変更する方法
-
文字列中の最大の部分的インクリメンタルを計算する SQL メソッド
-
JDBCからSql Server 2005の概要
-
SQL Server モバイルシステムデータベース