SqlServer发布订阅错误收集
目录
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_xmq\unc\WINDOWS-Q6MJ0R8_REMAIUS_REMAIUS\20161224144353\hy_wait_work_r45f6f27c_249.pre
(事务序列号: 0x0000FA7E0001C1D4005000000000,命令 ID: 252)
错误消息:
由于出现操作系统错误 3,进程无法读取文件“E:\DB_backup_xmq\unc\WINDOWS-Q6MJ0R8_REMAIUS_REMAIUS\20161224144353\hy_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发布订阅错误收集的更多相关文章
- SqlServer发布订阅
我们在开发系统的时候,经常会遇到高并发的问题,还有高可用性和安全性方面的考虑,需要用读写分离的方案来解决问题.也就是在我们使用数据库比较多,更新少而查询比较多的情况下使用读写分离,实现提高性能,减少数 ...
- SQLServer 发布订阅(Replication)造成的Memroy压力(cmemthread等待)
深入了解下发布订阅: 数据复制:允许一个数据源向一个或多个目标数据库分发数据,只需要OLE DB 访问接口即可访问: 整个复制框架包含:复制组件,复制代理,复制类型: 复制组件: 发布服务器: ...
- IIS发布站点错误收集(持续更新)
本文主要收集IIS在发布站点过程中遇到的错误,并提供解决办法.并亲测可行.如果您也在使用IIS发布站点的过程中遇到了一些问题,欢迎留言提问. (1.) HTTP错误500.21-Internal Se ...
- 知方可补不足~Sqlserver发布订阅与sql事务的关系
回到目录 前几讲说了一下通过sqlserver的发布与订阅来实现数据的同步,再通过EF这个ORM架构最终实现架构系统的读写分离,而在使用发布与订阅来实现数据同步时,需要我们注意几点,那就是当操作被使用 ...
- IIS发布站点错误收集
转载:http://www.cnblogs.com/hangwei/p/4249406.html 本文主要收集IIS在发布站点过程中遇到的错误,并提供解决办法.并亲测可行.如果您也在使用IIS发布站点 ...
- 使用SQLServer同义词和SQL邮件,解决发布订阅中订阅库丢失数据的问题
最近给客户做了基于SQLServer的发布订阅的“读写分离”功能,但是某些表数据很大,经常发生某几条数据丢失的问题,导致订阅无法继续进行.但是每次发现问题重新做一次发布订阅又非常消耗时间,所以还得根据 ...
- 使用zabbix监控sql server的发布订阅
(一)背景 个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制.在发布订阅环境搭建完成后,最重要的就是如何监控复制的状态了,sql serve ...
- MS SQL 2008 发布订阅配置错误总结
最近在配置SQL 2008的发布订阅功能时,遇到了几个小错误,顺便归纳总结一下(以后碰到各类关于发布订阅的错误都将收录.更新到这篇文章),方便自己在以后碰到这类问题时,能够迅速解决问题.毕 ...
- sqlserver 实时同步(发布订阅)
配置发布订阅手册 不同版本须知:https://www.sqlmanager.net/en/articles/1548 向后兼容性:参考https://docs.microsoft.com/zh-cn ...
随机推荐
- JavaScript各种数据类型
(一)JavaScript跟Java.Python等语言一样,也是一门编程语言,配合着html,css等可以让画面动起来, 在页面中导入方式主要有两种,如图 可以自己写在文件里面,一般写在body标签 ...
- RMAN 增量备份级别说明
通过Bat批处理调用RMan是我们定时备份数据库的好帮手,但是RMan的备份级别需要我们好好了解一下. RMAN备份全为全备和增量备份 增量备份:分为0 1 2级 ORACLE官方解释: A leve ...
- DPDK的代码规范
每个公司都会有自己代码风格或者编程规范,都旨在防范编程语言的一些陷阱或者提高代码效率,还有就是保持一致编码风格来提高代码可读性,方便code review: 或者说代码的一种美学,比如python也就 ...
- spring security注解(1)
Chapter 15. 基于表达式的权限控制 Spring Security 3.0介绍了使用Spring EL表达式的能力,作为一种验证机制 添加简单的配置属性的使用和访问决策投票,就像以前一样. ...
- POJ 1523 SPF 求割点的好(板子)题!
题意: 给个无向图,问有多少个割点,对于每个割点求删除这个点之后会产生多少新的点双联通分量 题还是很果的 怎么求割点请参考tarjan无向图 关于能产生几个新的双联通分量,对于每个节点u来说,我们判断 ...
- 【CF Edu 28 A. Curriculum Vitae】
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- 《c程序设计语言》-3.1 判断语句多少影响时间
#include <stdio.h> #define Num 1000000 /* int binsearch(int x,int v[],int n) { int low,high,mi ...
- spring in action 学习十二:property placeholder 注解的方式实现避免注入外部属性硬代码化
这里的注解是指@PropertySource这个注解.用@PropertySource这个注解加载.properties文件. 案例的目录结构如下: student.properties的代码如下: ...
- LinuxMint下JDK+Tomcat+Mysql+Eclipse javaEE安装
网上查了很多方法,总结下比较简单的做法. 本人使用的系统版本为64位LinuxMint18,cinnamon桌面环境,预装Openjdk1.8.开发使用版本为oracle的1.7版本jdk. 1 jd ...
- linux.backspace乱码(转)
42 linux.backspace乱码 linux环境sqlplus中使用backspace键出现乱码的解决方法2008-04-30 16:32 在linux环境下使用sqlplus,在回删(bac ...