web-dev-qa-db-ja.com

スナップショットレプリケーションのパブリッシャーおよびディストリビューターとしての本番データベースの作成

私たちの環境では、ログシッピングをDRとして使用しています。プライマリデータベースはクラスター化されたインスタンスです。私の要件は、レポート用にスナップショットレプリケーションを設定することです。

私の計画は次のとおりです。

  1. ディストリビューターおよびパブリッシャーとして本番データベースを作成します。
  2. サブスクライバーは、レポートの読み取り専用になります。

私の質問は:

本番データベースがディストリビューターとサブスクライバーの両方として機能する場合、問題はありますか?

2
SQL_NoExpert

それはあなたのハードウェアに依存します。 70GBの範囲のテーブルがスナップショットを作成するのに約20分かかるのを見ました。古いハードウェアでは長くなります。他に何かが行われていると、ブロックされる可能性があります。

スナップショットファイルをデータベースファイルと同じドライブに書き込むと、I/O競合が発生し、パフォーマンスに影響を与える可能性があります。そして、ネットワーク帯域幅を飽和させます。

ただし、別のディストリビューターがある場合も同じことが起こります。

1
Alen

データベースは100GBであるため、圧縮を使用したバックアップと復元の方法を使用できます(ファイルの即時初期化が有効になっていることを確認してください)。

もう1つのアプローチは、スタンバイサーバーでのログファイルの復元を遅らせ、データベースをスタンバイ読み取りモード(WITH STANDBY)にするログシッピングを使用することです。

あなたのやり方は-

  • プライマリで定期的なログバックアップを取ります(あなたの場合は15分ごと)
  • ログファイルをネットワーク共有にコピーするには、コピージョブをそのままにします。
  • しきい値に従ってログの復元を遅らせるオプションを選択します。
  • To ログの復元を高速化 -logshippingの設定をnorecoveryに変更します
  • ログの復元が完了したら、ログをstandbyに戻します。

プロセス全体を自動化する場合は、d batools-ログ配布関数/コマンドレット を使用します。

2
Kin Shah