【问题标题】:SQL Server Transactional replication - The process could not bulk copy intoSQL Server 事务复制 - 进程无法大容量复制到
【发布时间】:2016-08-26 13:01:13
【问题描述】:

所以我已经从发布者 (SQL Server 2014) 分发者 (SQL Server 2014) 订阅者 (SQL Server 2008 R2) 设置了 T-replication,并使用快照对其进行了初始化。

检查复制监视器我发现快照代理已成功完成并且日志读取器代理正在运行。

现在在“未分发的命令”选项卡旁边的“分发者到订阅者历史记录”选项卡中

我收到以下错误:

进程无法批量复制到表 '"dbo"."BEAMDATA"'。 (来源:MSSQL_REPL,错误号:MSSQL_REPL20037)
获取帮助:http://help/MSSQL_REPL20037
已到达文件末尾、缺少终止符或字段数据不完整
要获取包含初始化订阅表时遇到的错误的详细信息的错误文件,请执行下面出现的 bcp 命令。有关 bcp 实用程序及其支持的选项的更多信息,请参阅 BOL。 (来源:MSSQLServer,错误号:20253)
获取帮助:http://help/20253
bcp "LOWIS_BUCT"."dbo"."BEAMDATA" in "C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\ReplData\unc\LOWISBUCT_CSSQLDB_BUCT_CSSQLDB_BUCT_ALL_TABLES\20160826064516\BEAMDATA_34#1.bcp" -e "errorfile" - t"\n\n" -r"\n\n" -m10000 -SLOWISTSTSQL -T -w(来源:MSSQLServer,错误号:20253)
获取帮助:http://help/20253

我认为这可能是某种数据溢出,因此检查了 Publisher 和 Distributor 的表架构,它们完全匹配。

我彻底清理了整个复制设置并重新设置,但仍然卡在同一张桌子的同一个地方。

有没有人遇到过这种情况?问我是否需要我提供的更多信息。

【问题讨论】:

    标签: sql-server sql-server-2014 replication bcp transactional-replication


    【解决方案1】:

    我找到了原因。这是由于发布者和订阅者的架构不匹配。 在上述表中,列的数据类型为(date(datetime),当复制为该表编写架构脚本时,它被编写为date,因此在订阅者应用快照时,该字段的数据类型为date

    当数据从日期时间复制到日期字段时,会导致上述错误。

    我在订阅者端对数据类型进行了必要的更改,事情得到了修复,

    【讨论】:

      【解决方案2】:

      我遇到了类似的错误和问题“sql replication repl20037 field size too large”。我发现的是这个。我在 SQL Server 12.0 上使用本地 Sql Management Studio v18.10 设置订阅。这导致了大容量复制问题和字段不匹配。解决方法:直接在源服务器的Mgmt Studio上设置Publication,在目的服务器的Mgmt Studio上直接设置订阅。

      【讨论】:

        猜你喜欢
        • 2021-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-19
        • 2021-04-08
        • 2016-12-31
        • 1970-01-01
        • 2013-11-27
        相关资源
        最近更新 更多