时间:2021-07-01 10:21:17 帮助过:5人阅读
STEP2:向表中插入数据,要求value字段长度超过65536
insert into test01 values(1, ‘Ea user must be granted the ALTER SETTINGS server-level permission. The ALTER SETTINGS ... 省略N字符 .... permission is implicitly held by the sysadmin and serveradmin fixed server roles. Execute p ‘);
-- 查看字符长度 select DATALENGTH(id),DATALENGTH(value) from test01; ---- ------ 4 89612
STEP3:配置事物复制,配置完成后,确认备库test01表数据是否正常
select DATALENGTH(id),DATALENGTH(value) from test01; ---- ------ 4 89612经过确认,事物复制配置无异常。
STEP4:主库添加新纪录,要求长度大于65530,这里insert长度依然是89612
insert into test01 values(2, ‘Ea user must be granted the ALTER SETTINGS server-level permission. The ALTER SETTINGS ... 省略N字符 .... permission is implicitly held by the sysadmin and serveradmin fixed server roles. Execute p ‘);
发现主库插入数据失败,报错如下:
消息 7139,级别 16,状态 1,第 1 行
要复制的 LOB 数据的长度(89612)超出了配置的最大值 65536。请使用存储过程 sp_configure 为 max text repl size 选项(默认值为 65536)增加配置的最大值。配置值为 -1 表示无限制,其他值表示由数据类型施加限制。
语句已终止。
在主库上确认是否插入成功,发现插入失败了。
STEP5:修改主库的参数,不用修改备库。将max text repl size(最大文本复制尺寸)改为: 89613。可以使用SMSS,也可以使用T-SQL,具体操作如下:
方法1:使用SMSS
方法2:使用T-SQL
GO EXEC sp_configure ‘show advanced options‘, 1 ; RECONFIGURE ; GO EXEC sp_configure ‘max text repl size‘, 89613 ; GO RECONFIGURE; GO
STEP6:再次执行第五步失败的SQL语句,执行成功
(四)总结
如果使用了SQL SERVER的复制功能,建议把max text repl size(最大文本复制尺寸)直接改为“-1”,可以可以确保复制不会影响到生产业务。max text repl size修改后直接生效,无需重启数据库。
参考文档:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-text-repl-size-server-configuration-option?redirectedfrom=MSDN&view=sql-server-ver15
SQL server事物复制报错:要复制的 LOB 数据的长度(xxxxx)超出了配置的最大值 65536 …
标签:大文本 create engine upd length border 过程 top radmin