3

シナリオ

このレプリケーション スキームでは、photosバイナリ イメージ データを含むテーブルを含む、多数のテーブルをレプリケートします。他のすべてのテーブルは期待どおりにレプリケートされますが、photos テーブルはレプリケートされません。これは、写真テーブルのデータ量が多いためか、画像データがvarbinaryフィールドであるためだと思われます。ただし、より小さなvarbinaryフィールドを使用しても役に立ちませんでした。

設定情報

ここにいくつかの設定情報があります:

  • 各画像は 65 ~ 120 KB の範囲である可能性があります
  • リビジョンと承認済みのコピーはサムネイルと共に保存されるため、1 行が最大 800Kb に達する場合があります
  • " " 構成フィールドで問題が発生したことがありますが、 と を使用しmax text repl sizeて最大値に設定しました。sp_configurereconfigure with override
  • 写真は「公開」フィールドに基づいてフィルタリングされますが、他の作業テーブルも同様です
  • データベースは (開発環境で) 同じローカル db サーバーを使用しており、トランザクション レプリケーション用に構成されています。
  • 複製されたデータベースは「プッシュ」サブスクリプションを使用します

また、スナップショットを再生成してサブスクリプションを再初期化すると、イメージが複製されることがあることに気付きました。これを考慮して、スナップショット エージェントを構成して、デバッグ目的で 1 分ごとにスナップショットを再生成しました (明らかに、これは運用環境ではやり過ぎです)。しかし、これは役に立ちませんでした。

質問

photos他のテーブルには問題がないのに、テーブルが複製されない原因は何ですか? これを回避する方法はありますか?そうでない場合、さらにデバッグするにはどうすればよいですか?

ノート

SQL Server プロファイラーを使用して、エラーとレプリケーション モニターを探しました。エラーはありません。私が知る限り、操作は静かに失敗します。

Windows Server 2003 Service Pack 2 で Service Pack 3 を適用した SQL Server 2005 を使用しています。

[アップデート]

Philippe Grondierが以下の回答で絶対に正しいという難しい方法を見つけました. 画像、動画、およびその他のバイナリ ファイルは、データベースに保存しないでください。IIS は、これらのファイルを私よりもはるかに効率的に処理します。

4

2 に答える 2

4

私たちの標準的なポリシーは常に「(データベース)フィールドに(画像)ファイルを保存しない」というものであったため、あなたの問題に対する明確な答えはありません。写真だけでなく、あらゆる種類のファイルやドキュメントに適用されるソリューションが標準になりました。

  • データベースには「ドキュメント」テーブルがあり、ドキュメント/ファイル名と相対フォルダーが保存されます (一意のドキュメント/ファイル名を取得するために、「ドキュメント」テーブルの主キー/uniqueIdentifier 値からそれらを生成します)。

この「ドキュメント」テーブルは、他のすべてのテーブルと同様に、さまざまなサブスクライバー間で複製されます

  • 各データベースサーバーで利用可能な「ドキュメント」フォルダーとサブフォルダーがあります。
  • ドキュメント フォルダは、データベースとは別に、いくつかのファイルおよびフォルダ レプリケーション ソフトウェアを使用してレプリケートされます (alwaysynch はオプションです)。
  • 主な発行者のフォルダは ftp を介して完全にアクセス可能であり、ローカル サーバーで (まだ) 利用できないドキュメントを読もうとしているユーザーは、ftp クライアント ソフトウェア (coreFTP やそのコマンド ライン オプションなど) を介してメイン サーバーからドキュメントをダウンロードするよう提案されます。
于 2009-04-14T22:03:50.133 に答える
0

そのような画像テーブルを使用して、その記事を一方向 (または必要に応じて双方向) マージ パブリケーションに移動することを検討しましたか? それはあなたの問題のいくつかを軽減するかもしれません.

于 2009-04-19T19:17:31.940 に答える