天天看点

MSSQL发布提示进程无法向表“"dbo"."某表名"”进行大容量复制,错误号MSSQL_REPL20037

错误消息:

进程无法向表“"dbo"."某表名"”进行大容量复制。 (源: MSSQL_REPL,错误号: MSSQL_REPL20037)

获取帮助: http://help/MSSQL_REPL20037

成批发送失败

从 bcp 客户端收到的列值对列 id 37 无效。 (源: MSSQLServer,错误号: 4896)

获取帮助: http://help/4896

若要获取详细说明初始化订阅表时所遇到的错误的错误文件,请执行在下面显示的 bcp 命令。有关该 bcp 实用工具及其支持的选项的详细信息,请参阅 BOL。 (源: MSSQLServer,错误号: 20253)

获取帮助: http://help/20253

bcp "某发布名称"."dbo"."某表名" in "H:\SQL\MSSQL10_50.UZAI2008\MSSQL\ReplData\unc\SQLCLUSTER$SQL2008_某库名_某发布名\20120711171029\某表名_2.bcp" -e "errorfile" -t"\n<x$3>\n" -r"\n<,@g>\n" -m10000 -S订阅名\订阅实例名 -T -w (源: MSSQLServer,错误号: 20253)

MSSQL发布提示进程无法向表“"dbo"."某表名"”进行大容量复制,错误号MSSQL_REPL20037

错误就出现在分发服务器到订阅服务器.

发布的表数据约35万条,不算很大.因为我2百万条的数据都能发布到订阅.

后来排查到这张表有一列很长且有特殊html标签类/<&%|^等特殊字符,去掉该列就很顺利的发布成功了.

将所有的非unicode(varchar/char/text)   类型字段调整为unicode(nvarchar/nchar/ntext)类型即可"

有碰到该问题的朋友可以尝试排除某些特殊列来发布试试.为了便于测试,建议发布到一个新库测试,从而不影响原库的已发布的线上应用.

有更好的解决办法可以贴出来,一起分享.

继续阅读