设想
在我们的复制方案中,我们复制了许多表,包括一个photos
包含二进制图像数据的表。所有其他表都按预期复制,但照片表没有。我怀疑这是因为照片表中的数据量较大,或者可能是因为图像数据是一个varbinary
字段。但是,使用较小的varbinary
字段并没有帮助。
配置信息
这是一些配置信息:
- 每个图像可以是 65-120 Kb 的任何地方
- 修订和批准的副本与缩略图一起存储,因此单行可能接近约 800Kb
- 我曾经遇到过“ ”配置字段的问题,但我已使用and
max text repl size
将其设置为最大值sp_configure
reconfigure with override
- 照片是根据“已发布”字段过滤的,但其他工作表也是如此
- 数据库使用相同的本地数据库服务器(在开发环境中)并配置为事务复制
- 复制的数据库使用“推送”订阅
此外,我注意到有时重新生成快照并重新初始化订阅会导致图像复制。考虑到这一点,我将快照代理配置为每分钟左右重新生成一次快照以用于调试目的(显然这对于生产环境来说太过分了)。然而,这并没有帮助。
问题
是什么导致photos
表不复制而所有其他表都没有问题?有没有解决的办法?如果没有,我将如何进一步调试?
笔记
我使用 SQL Server Profiler 和复制监视器来查找错误。不存在错误。据我所知,该操作只是默默地失败了。
我在 Windows Server 2003 Service Pack 2 上使用 SQL Server 2005 和 Service Pack 3。
[更新]
我发现Philippe Grondier在下面的回答中绝对正确。图像、视频和其他二进制文件不应存储在数据库中。IIS 处理这些文件的效率比我高得多。