シナリオ
このレプリケーション スキームでは、photos
バイナリ イメージ データを含むテーブルを含む、多数のテーブルをレプリケートします。他のすべてのテーブルは期待どおりにレプリケートされますが、photos テーブルはレプリケートされません。これは、写真テーブルのデータ量が多いためか、画像データがvarbinary
フィールドであるためだと思われます。ただし、より小さなvarbinary
フィールドを使用しても役に立ちませんでした。
設定情報
ここにいくつかの設定情報があります:
- 各画像は 65 ~ 120 KB の範囲である可能性があります
- リビジョンと承認済みのコピーはサムネイルと共に保存されるため、1 行が最大 800Kb に達する場合があります
- " " 構成フィールドで問題が発生したことがありますが、 と を使用し
max text repl size
て最大値に設定しました。sp_configure
reconfigure with override
- 写真は「公開」フィールドに基づいてフィルタリングされますが、他の作業テーブルも同様です
- データベースは (開発環境で) 同じローカル db サーバーを使用しており、トランザクション レプリケーション用に構成されています。
- 複製されたデータベースは「プッシュ」サブスクリプションを使用します
また、スナップショットを再生成してサブスクリプションを再初期化すると、イメージが複製されることがあることに気付きました。これを考慮して、スナップショット エージェントを構成して、デバッグ目的で 1 分ごとにスナップショットを再生成しました (明らかに、これは運用環境ではやり過ぎです)。しかし、これは役に立ちませんでした。
質問
photos
他のテーブルには問題がないのに、テーブルが複製されない原因は何ですか? これを回避する方法はありますか?そうでない場合、さらにデバッグするにはどうすればよいですか?
ノート
SQL Server プロファイラーを使用して、エラーとレプリケーション モニターを探しました。エラーはありません。私が知る限り、操作は静かに失敗します。
Windows Server 2003 Service Pack 2 で Service Pack 3 を適用した SQL Server 2005 を使用しています。
[アップデート]
Philippe Grondierが以下の回答で絶対に正しいという難しい方法を見つけました. 画像、動画、およびその他のバイナリ ファイルは、データベースに保存しないでください。IIS は、これらのファイルを私よりもはるかに効率的に処理します。