事务复制问题排查
来源:互联网 发布:软件测试网站大全 编辑:程序博客网 时间:2024/06/07 20:32
前言
今天在搭建事务复制的时候,遇到一个比较棘手的问题。也是不常见的一个场景,分享出来供大家参考
正文
使用导出的脚本建立的发布订阅 。之前是一个发布,订阅到很多服务器,现在是想把这个发布分开,所以建了很多发布,在建上第一个发布的时候,没有问题。订阅也正常。然后在建第二个发布订阅之后不久,就提示:
进程无法在“DATABASE”上执行“sp_replcmds”
因为一个库上的发布都使用的是一个log reader ,当log reader 出现问题是,相关的发布就都无法正常工作。
日志读取代理的详细错误信息如下:
作业内的详细错误信息:
-querytimeout 1800
-readbatchsize 500
-readbatchsize 500000
2017-12-11 02:43:46.831 状态: 4096,代码: 20024,文本: '初始化'。
2017-12-11 02:43:46.831 代理正在运行。请使用复制监视器查看此代理会话的详细信息。
状态: 0,代码: 20011,文本: '进程无法在“DATABASE”上执行“sp_replcmds”。'。
2017-12-11 02:43:46.846 进程无法在“DATABASE”上执行“sp_replcmds”。
状态: 0,代码: 18764,文本: '筛选存储过程 1470068423 的执行失败。有关详细信息,请参阅 SQL Server 错误日志。'。
2017-12-11 02:43:46.846 状态: 0,代码: 18805,文本: '日志扫描进程无法从日志序列号(LSN) {00275656:00000cc6:0020} 构造复制命令。请备份发布数据库,然后与客户支持服务部门联系。'。
2017-12-11 02:43:46.846 状态: 0,代码: 22037,文本: '进程无法在“DATABASE”上执行“sp_replcmds”。'。
尝试解决办法:
EXEC sp_repldone @xactid =NULL, @xact_segno =NULL, @numtrans = 0, @time =0, @reset =1
EXEC sp_replflush
重启SQL Server Agent服务。
解决
以上办法,都没有能够解决问题。只能根据目前的现象来推论了。既然加第二个发布订阅的时候除了问题。那就把这个发布订阅删除了,然后试试。在删除了新建的2个发布订阅后,之前的那个发布订阅就正常运行了。
问题2
新建别名的情况下,, 是不需要ping同计算机名字的,不用在hosts里面增加解析,通过别名SSMS就可以访问这个名字。
但是某一个别名始终无法访问,原因是别名中有空格
总结
以上2个问题看上去很棘手,但解决办法很简单。实际上很多问题的解决都是一样,需要大胆尝试,细心求证。做DBA的一个最基本素质就是一定要细心。然后收集目前已知的信息,分析,然后解决问题
阅读全文
0 0
- 事务复制问题排查
- 事务复制问题排查
- spring事务问题排查记录一下
- SQL Server同步复制问题排查方法
- 问题排查
- SQL2005中的复制问题的处理(仅用于事务复制)
- 事务复制
- springmvc 事务失效,错误排查
- 使用TableDiff实用工具解决事务复制中的问题
- 转:邹建--使用TableDiff实用工具解决事务复制中的问题
- 使用TableDiff实用工具解决事务复制中的问题
- 使用TableDiff实用工具解决事务复制中的问题
- 使用TableDiff实用工具解决事务复制中的问题
- 使用TableDiff实用工具解决事务复制中的问题
- 使用TableDiff实用工具解决事务复制中的问题
- 使用TableDiff实用工具解决事务复制中的问题
- 使用TableDiff实用工具解决事务复制中的问题
- 使用TableDiff实用工具解决事务复制中的问题
- 数据库SQL性能优化(一)
- 进制转换相关工具类
- composer中自动加载文件
- java核心基础--jdk源码分析学习--Integer
- java--集合--HashTable
- 事务复制问题排查
- Linux Socket 多并发服务器开源代码:xSocketd 实现PPC/TPC/SELECT/POLL/EPOLL
- Servlet入门
- Java8-Stream-No.11
- LeetCode-
- Java8-Stream-No.12
- 【重磅推荐】精品项目实战—高仿支付宝,附源码Demo
- Linux的时间和时区设置
- 研三学姐找工作分享-----机器学习