web-dev-qa-db-ja.com

ミラーリングとログ配布

私が働いているソフトウェア会社は、インフラストラクチャをクラウドに移行することを計画しています。現在の焦点は、最良のデータベース複製方法を見つけることです。

現在のサーバー:

SQL Server 2008 SE-ニューヨークにあります(社内-マスター)

SQL Server 2012 SE-シカゴにあります(ラックスペース-スレーブ)

ログ配布を検討してきましたが、ミラーリングとレプリケーションについても認識しています。誰かがこのタスクに対する私たちの最善のアプローチが何であるかについての洞察を提供していただけますか?単に両方のデータベースを互いに同期させておきたいだけです。リアルタイムはまだ問題ではありませんが、近い将来になるでしょう。

注:長期的な目標は、Rackspaceをプライマリ、NYをセカンダリにすることです。

5
ilikemypizza

私の意見では、ログ配布には次のような利点があります。

  1. 私は方向が一方向(マスターからスレーブ)のみであることを理解しています。レプリケーションは、双方向のデータレプリケーションまたは複数のソースへのレプリケーションにより適した複雑なソリューションです。

  2. ログ配布では、データベースの特別な設計は必要ありません(たとえば、自動インクリメント整数ではなく、GUIDとしての主キー)。

  3. ログ配布は、リソースの浪費が少なく、セットアップと保守が簡単です。

質問はかなり幅広く、意見に基づいているため、究極の解決策を提供することはできません。これはほんの少しのアドバイスですが、役立つと思います。

6
Szymon

ログ配布本質的に3つのジョブが含まれます。最初のジョブは、プライマリサーバーのログをバックアップし、それらのバックアップをローカルフォルダーに保存します。 2番目のジョブは、これらのファイルをネットワーク経由でセカンダリサーバーにコピーします。 3番目のジョブは、WITH STANDBYオプションを使用してこれらのバックアップを復元します。ログ配布はデータベース全体で設定されます。セカンダリサーバー上のデータベースはアクセス可能ですが、読み取り専用です。

必要:プライマリサーバー上の共有フォルダー。セカンダリサーバーがファイル共有にアクセスできるようにするファイアウォール構成。 2台目のサーバーのプロキシがファイル共有にアクセスする権限を持つようにセキュリティを設定します。これは、ホストされている状況では問題になる可能性があります。

警告:ログ配布はリアルタイムではありません。最初のジョブの一般的な間隔は15分です。計画外のフェイルオーバーはデータを失います

注意:ログ配布ではトランザクションログバックアップを使用するため、その設計はバックアップ設計と組み合わせて行う必要があります。

データベースミラーリングは、プライマリサーバーがセカンダリサーバーに個々のトランザクションを同期または非同期(非同期はエンタープライズエディションのみ)で送信することを含みます。ログ配布と同様に、ミラーリングはデータベース全体で設定されます。ログ配布とは異なり、セカンダリデータベースにはアクセスできません。

要件:トラフィックをミラーリングするために、サーバーごとにエンドポイントを作成する必要があります。その1つのポートとの間のトラフィックを許可するファイアウォール。

同期ミラーリング設定では、計画外のフェイルオーバーによってデータが失われることはありません。

ミラーリングとログ配布の両方でデータベース全体のコピーが作成されるため、オブジェクトの要件はありません。ヒープ、クラスター化テーブル、キーありとキーなしのテーブル-すべてがコピーされます。

注:ファイル共有の要件を考えると、ログ配布の設定と保​​守が簡単で、必要なリソースが少ないというSzymonのコメントには同意しません。 Windowsサーバーにファイルサーバーの役割をインストールすると、リソース要件が増加するだけでなく、攻撃の対象領域が増加します。さらに、ログ配布の計画外のフェイルオーバーでは、セカンダリをオンラインにするのは面倒です。多くのステップ。そのほとんどは、クエリウィンドウでストアドプロシージャを実行することを含みます。

7

データのリアルタイム同期が必要な場合、ログ配布は適切なアプローチではないと思います。

ログ配布を設定する場合、シカ​​ゴサーバーを運用データベースに切り替えるときに、ニューヨークデータベースにトランザクションを書き込むアプリケーションの停止をスケジュールし、すべてのログがシカゴデータベースに送信および復元されるようにする必要があります。 、アプリケーションをシカゴに向け、ログ配布の方向を逆にして、最後に停止を終了してアプリケーションをオンラインに戻します。

1
tnktnk

ちょっとしたメモ-SQL Serverのバージョンが異なるデータベース間でミラーリングセッションをセットアップすることはできません

1
Vitaly Sedelnik