none
SQL Server 2016 VPNを用いた海外へのマージレプリケーションについて RRS feed

  • 質問

  • <構成>

    ①パブリッシャ(設置場所:日本) 

      ・mdfファイルデータ量:700MB程度

    ②サブスクライバA(設置場所:中国)

    ③サブスクライバB(設置場所:日本)

    ※①~③をVPN対応ルータで接続し、LANのように扱いデータの同期をしています。

    <テーブル構造変更時に行っている手順>

    1.パブリッシングの無効化

    2.パブリッシャ(①)のテーブル構造を変更

    3.そのままパブリッシングすると変更内容が適用されないため、

      サブスクライバ(②、③)のデータベースを削除し、空の新規データベースを作成する

    4.パブリッシャ(①)にパブリケーション作成(種別:マージ)

      ⇒スナップショット作成:数分で完了

    5.サブスクライバ(②、③)にサブスクリプション作成(プッシュ型)

      ⇒サブスクライバへの、スナップショットの適用

       サブスクライバ②:中国・・回線速度が出ないため、初回は数時間かかる

                    2回目以降は数分で完了する

       サブスクライバ③:日本・・初回は数十分、2回目以降は数分で完了する。

    <問題点>

    ・サブスクライバ②:中国への、スナップショットの適用について

     新型コロナウィルスの影響か、中国側の回線が極端に遅くなっており、

     エラーが頻発し、すぐにタイムアウトになってしまいます。

     (数日間同期を試していますが、720MB中の数十MBくらいしか、送れていません)

     

     解決策について、ご教授いただけましたら幸いです。

    2020年3月16日 5:53

回答

  • スナップショットの適用時にタイムアウトで失敗し続けている状況なのであれば、ディストリビューション エージェント プロファイルの「-QueryTimeOut」の値を延ばして現象が解消するかを確認してみると良いかとおもいます。

    レプリケーション ディストリビューション エージェント
    https://docs.microsoft.com/ja-jp/sql/relational-databases/replication/agents/replication-distribution-agent?view=sql-server-ver15
    -QueryTimeOut

    -QueryTimeOut query_time_out_seconds
    クエリがタイムアウトになるまでの秒数です。既定値は 1800 秒です。


    レプリケーション エージェント プロファイルを操作する
    https://docs.microsoft.com/ja-jp/sql/relational-databases/replication/agents/work-with-replication-agent-profiles?view=sql-server-ver15


    マージ処理でもタイムアウトが発生するようであれば、マージ エージェント プロファイルで 「-QueryTimeOut」の値を延ばして現象が解消するかを確認してみると良いかとおもいます。

    Replication Merge Agent
    https://docs.microsoft.com/ja-jp/sql/relational-databases/replication/agents/replication-merge-agent?view=sql-server-ver15
    -QueryTimeOut query_time_out_seconds
    クエリがタイムアウトになるまでの秒数です。既定では 300 秒です。
    • 回答としてマーク hioka107 2020年3月19日 1:03
    2020年3月16日 14:28

すべての返信

  • スナップショットの適用時にタイムアウトで失敗し続けている状況なのであれば、ディストリビューション エージェント プロファイルの「-QueryTimeOut」の値を延ばして現象が解消するかを確認してみると良いかとおもいます。

    レプリケーション ディストリビューション エージェント
    https://docs.microsoft.com/ja-jp/sql/relational-databases/replication/agents/replication-distribution-agent?view=sql-server-ver15
    -QueryTimeOut

    -QueryTimeOut query_time_out_seconds
    クエリがタイムアウトになるまでの秒数です。既定値は 1800 秒です。


    レプリケーション エージェント プロファイルを操作する
    https://docs.microsoft.com/ja-jp/sql/relational-databases/replication/agents/work-with-replication-agent-profiles?view=sql-server-ver15


    マージ処理でもタイムアウトが発生するようであれば、マージ エージェント プロファイルで 「-QueryTimeOut」の値を延ばして現象が解消するかを確認してみると良いかとおもいます。

    Replication Merge Agent
    https://docs.microsoft.com/ja-jp/sql/relational-databases/replication/agents/replication-merge-agent?view=sql-server-ver15
    -QueryTimeOut query_time_out_seconds
    クエリがタイムアウトになるまでの秒数です。既定では 300 秒です。
    • 回答としてマーク hioka107 2020年3月19日 1:03
    2020年3月16日 14:28
  • NOBTA様

    アドバイスいただきありがとうございます。

    とても参考になりました。

    早速試してみます。

    hioka107

    2020年3月17日 0:51
  • NOBTA様

    無事、レプリケーション完了しました。
    ご教授ありがとうございました。

    Hioka107

    2020年3月19日 1:05