问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sqlserver2008 R2 发布订阅失败

发布网友 发布时间:2022-04-20 07:29

我来回答

2个回答

懂视网 时间:2022-05-01 19:47

1. SqlServer发布订阅错误收集

1.1. Message:脚本对于表“dbo.table”失败。

1.1.1. 错误消息

1.1.2. 处理方法

1.2. 由于出现操作系统错误 3,进程无法读取文件D:\XXXX\X.pre (源: MSSQL_REPL,错误号: MSSQL_REPL20024) 

1.2.1. 错误消息

1.2.2. 解决方法

1.3. 应用复制的命令时在订阅服务器上找不到该行

1.3.1. 错误消息

1.3.2. 解决方法

1.4. 数据库 ‘dbtest‘ 的事务日志已满

1.4.1. 错误消息

1.4.2. 解决方法

2. 进程无法向表“"dbo"."某表名"”进行大容量复制。

2.1.1. 错误消息

2.1.2. 解决方法

 

1. SqlServer发布订阅错误收集

1.1. Message:脚本对于表“dbo.table”失败。

1.1.1. 错误消息

Source: Microsoft.SqlServer.Smo

Target Site: System.Collections.Generic.IEnumerable`1[System.String] ScriptWithList(Microsoft.SqlServer.Management.Smo.DependencyCollection, Microsoft.SqlServer.Management.Smo.SqlSmoObject[])

Message: 脚本 对于 表“dbo.HY_CORP_BAD_CREDIT_INFO”失败。 

Stack:    在 Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithList(DependencyCollection depList, SqlSmoObject[] objects)

   在 Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithList(SqlSmoObject[] objects)

   在 Microsoft.SqlServer.Replication.Snapshot.TransSmoScriptingManager.GenerateLogBasedArticleSchScript(Scripter scripter, BaseArticleWrapper articleWrapper, Table smoTable)

   在 Microsoft.SqlServer.Replication.Snapshot.TransSmoScriptingManager.GenerateLogBasedArticleScripts(ArticleScriptingBundle articleScriptingBundle)

   在 Microsoft.SqlServer.Replication.Snapshot.TransSmoScriptingManager.GenerateArticleScripts(ArticleScriptingBundle articleScriptingBundle)

   在 Microsoft.SqlServer.Replication.Snapshot.SmoScriptingManager.GenerateObjectScripts(ArticleScriptingBundle articleScriptingBundle)

   在 Microsoft.SqlServer.Replication.Snapshot.SmoScriptingManager.DoScripting()

   在 Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.DoScripting()

   在 Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.GenerateSnapshot()

   在 Microsoft.SqlServer.Replication.SnapshotGenerationAgent.InternalRun()

   在 Microsoft.SqlServer.Replication.AgentCore.Run() (源: Microsoft.SqlServer.Smo,错误号: 0)

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

Source: Microsoft.SqlServer.Smo

Target Site: Void CheckSupportedType(Microsoft.SqlServer.Management.Smo.ScriptingOptions)

Message: 对象 HY_CORP_BAD_CREDIT_INFO 中的列 fHappenDate 包含类型 Date,此类型不受目标服务器版本 SQL Server 2005 支持。

Stack:    在 Microsoft.SqlServer.Management.Smo.Column.CheckSupportedType(ScriptingOptions options)

   在 Microsoft.SqlServer.Management.Smo.Column.VersionValidate(ScriptingOptions so)

   在 Microsoft.SqlServer.Management.Smo.Column.ScriptDdlCreateImpl(StringBuilder sb, ScriptingOptions so)

   在 Microsoft.SqlServer.Management.Smo.Column.ScriptDdl(StringCollection queries, ScriptingOptions so)

   在 Microsoft.SqlServer.Management.Smo.Table.ScriptTableInternal(ScriptingOptions so, StringBuilder sb, ColumnCollection columns, IndexCollection indexes)

   在 Microsoft.SqlServer.Management.Smo.Table.GetTableCreationScript(ScriptingOptions so, StringBuilder sb)

   在 Microsoft.SqlServer.Management.Smo.Table.ScriptCreate(StringCollection queries, ScriptingOptions so)

   在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.ScriptCreateInternal(StringCollection query, ScriptingOptions so)

   在 Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithListWorker(DependencyCollection depList, SqlSmoObject[] objects)

   在 Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithList(DependencyCollection depList, SqlSmoObject[] objects) (源: Microsoft.SqlServer.Smo,错误号: 0)

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

1.1.2. 处理方法

将数据库兼容级别设置到100,在发布数据库上执行如下代码,修改数据库的兼容级别到100。

ALTER DATABASE [DataBase] SET COMPATIBILITY_LEVEL = 100

或者界面操作:

 

1.2. 由于出现操作系统错误 3,进程无法读取文件D:\XXXX\X.pre (源: MSSQL_REPL,错误号: MSSQL_REPL20024)

1.2.1. 错误消息

尝试的命令:

E:DB_backup_xmquncWINDOWS-Q6MJ0R8_REMAIUS_REMAIUS20161224144353hy_wait_work_r45f6f27c_249.pre

(事务序列号: 0x0000FA7E0001C1D4005000000000,命令 ID: 252)

 

错误消息:

由于出现操作系统错误 3,进程无法读取文件“E:DB_backup_xmquncWINDOWS-Q6MJ0R8_REMAIUS_REMAIUS20161224144353hy_wait_work_r45f6f27c_249.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20051)

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

系统找不到指定的路径。

 (源: MSSQL_REPL,错误号: MSSQL_REPL3)

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

1.2.2. 解决方法

qlServer2008的订阅发布,起初使用推送订阅很顺利,后来改成请求订阅出现了这个问题。

 

 

1.3. 应用复制的命令时在订阅服务器上找不到该行

1.3.1. 错误消息

尝试的命令:

if @@trancount > 0 rollback tran

事务序列号:  

--0x0000FDAB0003A908008F00000000 命令 ID: 7

错误消息:

应用复制的命令时在订阅服务器上找不到该行。 (源: MSSQLServer,错误号: 20598)

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

应用复制的命令时在订阅服务器上找不到该行。 (源: MSSQLServer,错误号: 20598)

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

1.3.2. 解决方法

1.发布服务器的

exec sp_helpsubscriptionerrors ‘WINDOWS-Q6MJ0R8‘

, ‘remaius‘

, ‘remaius‘

, ‘WIN-V0R4COILDAS‘

, ‘remaius‘;

2.解决

a.忽略,在订阅上执行

exec sp_setsubscriptionxactseqno ‘WINDOWS-Q6MJ0R8‘

,  ‘remaius‘

,  ‘remaius‘

, 0x0000FDAB0003A908008F00000000;

b.如第一个找xact_seqno的SQL,拿到xact_seqno,command_id

然后在发布上,

sp_browsereplcmds ‘0x0000FBF300119D32000900000000‘,‘0x0000FBF300119D32000900000000‘;

sp_browsereplcmds ‘0x0000FDAB0003A908008F00000000‘,‘0x0000FDAB0003A908008F00000000‘;

 

找到 {CALL [dbo].[sp_MSupd_dboTable1](,‘dd‘,4,0x04)}【默认的命名规则是sp_MS+operation+schemaName+tableName】

然后在订阅服务器,补充主键=4的数据,然后复制就恢复了。

【注意】:id自增的时候需要打来自动增长的标志:

--set identity_insert Table_1  ON--打开

--insert into Table_1(id) values(134);

--set identity_insert Table_1  OFF--关闭

1.4. 数据库 ‘dbtest‘ 的事务日志已满

1.4.1. 错误消息

尝试的命令:

if COLUMNPROPERTY( OBJECT_ID(‘MSreplication_subscriptions‘),‘distribution_agent‘,‘AllowsNull‘) <> 1 BEGIN alter table MSreplication_subscriptions alter column distribution_agent sysname null end

 

错误消息:

数据库 ‘dbtest 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。 (源: MSSQLServer,错误号: 9002)

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

1.4.2. 解决方法

--清空日志

-- Truncate the log by changing the database recovery model to SIMPLE.

ALTER DATABASE remaius SET RECOVERY SIMPLE;

-- Shrink the truncated log file to 1 MB.

DBCC SHRINKFILE (remaius_new_log, 1);

-- Reset the database recovery model.

ALTER DATABASE remaius SET RECOVERY FULL;

2. 进程无法向表“"dbo"."某表名"”进行大容量复制。

2.0.1. 错误消息

进程无法向表“"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:SQLMSSQL10_50.UZAI2008MSSQLReplDatauncSQLCLUSTER$SQL2008_某库名_某发布名20120711171029某表名_2.bcp" -e "errorfile" -t"n<x$3>n" -r"n<,@g>n" -m10000 -S订阅名订阅实例名 -T -w (源: MSSQLServer,错误号: 20253)
获取帮助: http://help/20253

2.0.2. 解决方法

因为这张表有一列很长且有特殊html标签类/<&%|^等特殊字符,去掉该列就很顺利的发布成功了。或者将所有的非unicode(varchar/char/text) 类型字段调整为unicode(nvarchar/nchar/ntext)类型即可"

 

SqlServer发布订阅错误收集

标签:错误   sea   code   .sql   tar   new   script   读取   imp   

热心网友 时间:2022-05-01 16:55

环境:发布服务器A:Windows Server 2008 R2 Standard, SQL SERVER 2008 R2, 订阅服务器B:Windows Server 2003 R2 Standard X64 Edition Service Pack2, SQL SERVER 2008 R2 Standard
开始前,你必须确保实例已经安装了Replication Componets,否则会报错,详情请见MS SQL 2008 发布订阅配置遇到的错误,在服务器A上,打开SSMS,右键单击Local Publication(本地发布),选择New Publication(新建发布)

(图1)
然后就进入新建发布的向导了,如果第一次新建发布,有可能出现下面图2、图3,否则不会遇到这些界面

(图2)
不建议将快照文件夹放在C盘,最好设置在其它非系统磁盘。如果下面你不用UNC路径并且共享改目录,必须设置可读权限,否则后面你可能会碰到一个让你棘手的错误,具体参见MS SQL 2008 发布订阅配置错误总结

(图3)
选择你要发布的数据库,这里只能单选,不能选择多个数据库。

(图4)
接下来,关于选择发布类型,根据你的实际情况,选择合适的发布类型
快照复制:快照复制将数据以特定时刻的瞬时状态分发,而不监视对数据的更新。发生同步时,将生成完整的快照并将其发送到订阅服务器。 当符合以下一个或多个条件时,使用快照复制本身是最合适的:

1: 很少更改数据。
2: 在一段时间内允许具有相对发布服务器已过时的数据副本。 
3: 复制少量数据。
4: 在短期内出现大量更改。

事务复制:事务复制通常用于服务器到服务器环境中, 在以下各种情况下适合采用事务复制:
 1: 希望发生增量更改时将其传播到订阅服务器。
 2: 从发布服务器上发生更改,至更改到达订阅服务器,应用程序需要这两者之间的滞后时间较短。 
3: 应用程序需要访问中间数据状态。 例如,如果某一行更改了五次,事务复制将允许应用程序响应每次更改(例如,激发触发器),而不只是响应该行最终的数据更改。
4:发布服务器有大量的插入、更新和删除活动。
 5:发布服务器或订阅服务器不是 SQL Server 数据库(例如,Oracle)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中导条约是什么意思 南京的事业单位待遇好吗 condition ...个登陆和注册信息的源代码,最简单的就可以,不需要数据库的那种... 个旧附近的vba编程培训机构哪家比较正规? 个旧附近的.Net培训班? 个旧附近的编程培训班? 个旧附近哪里有编程培训在哪里? 湖口哪里可以学电脑电脑技术哪里可以学习 个旧北大青鸟少儿编程培训学费多少? 关于MSSQL发布订阅服务器负担问题 如何在SQLServer2000中配置发布、分发和订阅服务 网传特斯拉FSD订阅服务将在5月内发布 费用最高约95... cache是什么存储器 高速缓存(cache)和主存是不是指的内存(就是大家所说的内存条)啊? . 单选题 以下哪一项不属于内部存储器( )。 A 硬盘 B RAM C ROM D CACHE? 如何用示波器定量测量交流信号的电压和频率 示波器测量电压有何优缺点? 怎样用示波器测量交流电压? 怎样用数字示波器测电压啊。。。。 怎样用示波器测信号电压 k1钢化膜和z3i钢化膜能通用吗? Sonyz3+,前后贴了钢化膜影响散热么?音质影响大吗? iQOO Z3出厂是否有贴保护膜? oppor17和vivoz3哪个打游戏好,不容易发热 iqoo3通用膜有什么型号 求一万左右的电脑配置,i7-9700K,Z390A vivoz3i标准版,维修需要花多少钱? iqooZ3和vivoZ3是一个手机的吗? Vivo x23钢化膜和谁的通用 sqlserver发布订阅成功,为什么在订阅服务器查不到... sqlserver订阅发布有什么用 SQL SERVER 2000SP4 发布与订阅服务器数据不一致 苹果顺势推出的Apple Arcade游戏订阅服务,到底有... sqlserver同步2 如何让订阅服务器与发布服务器库结... 苹果设置订阅服务在哪 SqlServer发布订阅の代理服务器无法启动,救命啊 两台服务器sqlserver2008 R2 发布订阅 特斯拉有望年底前推出FSD订阅服务,包月100美元 国外推出汽车订阅服务,按月收费会有人想尝试吗? 乐动上的订阅服务是什么意思? 苹果手机的订阅服务在哪里 体现了“走没人走过的路,做没人做过的事”的含义的诗句 真正干大事的人,为何都具备“逆向思维”? 看少有人走过的路这种心灵鸡汤有用吗 如何让自己变得优秀自信 求《少有人走过的路》全集MOBI资源,跪求 从未有人走过的路这本书作者是谁, 没有人走过的路在文言文里怎么说 总有别人没走过的路,总有别人没看过的风景,……后面...