sql server2008数据库复制实现数据同步常见问题
在原做者基础上追加 sql server2008数据库复制实现数据同步常见问题html
23.发布 'xx' 的并发快照不可用,由于该快照还没有彻底生成,或者日志读取器代理未运行,没法激活它。若是并发快照的生成过程当中断,则必须从新启动用于该发布的快照代理,直到生成完整的快照。
- 删除相关的发布订阅
- 执行下列查询,若是仍是存在'xx'相关的行
select * from msdb..MSdistpublishers select * from distribution..MSpublisher_databases select * from distribution..MSpublications select * from distribution..MSarticles select * from distribution..MSsubscriptions
- 删掉全部与'xx'先关的行(记得先备份表)
delete from distribution..MSarticles where publisher_db = '<NameOfDatabase>' delete from distribution..MSsubscriptions where publisher_db = '<NameOfDatabase>'
- 重建分发
参考 stackoverflowsql
若是没有像22那样修改过密码,就是删除分发复制时因为某些缘由没删干净(上边的那些表) 经测试,删除发布、订阅时MSsubscriptions表中的数据会自动被删掉, 若是还存在以前的‘xx’那就是未删除干净数据库
24. 错误号 MSSQL_REPL20011 错误号:15517
进程没法在“WIN-XXX”上执行“sp_replcmds”。 (源: MSSQL_REPL,错误号 MSSQL_REPL20011) 获取帮助: http://help/MSSQL_REPL20011 没法做为数据库主体执行,由于主体 "dbo 不存在、没法模拟这种类型的主体,或您没有所需的权限。 (源 MSSQLServer,错误号: 15517) 获取帮助: http://help/15517 进程没法在“WIN-XXX”上执行“sp_replcmds”。 (源: MSSQL_REPL,错误号 MSSQL_REPL22037) 获取帮助: http://help/MSSQL_REPL22037
- 权限不够,解决方法
ALTER AUTHORIZATION ON DATABASE::[数据库名] TO [sa] ALTER AUTHORIZATION ON DATABASE::[数据库名] TO [分发帐户] USE 数据库名 GO sp_changedbowner '分发帐户'
参考并发
25 错误信息:已将此(这些)订阅标记为不活动,必须将其从新初始化。须要删除 NoSync 订阅,而后从新建立它们
解决方法: 更改分发库中的一个表 MSsubscriptions 的状态字段(0 = 不活动;1 = 已订阅;2 = 活动),订阅中的每一个已发布项目在MSsubscriptions表中占一行。测试
update sub set status = 2 from distribution.dbo.MSsubscriptions sub where status<>2 and publication_id='publicationID'
执行以后,从新关闭和启动该分发代理做业,很快,复制正常了!~spa
为了不过时致使的问题,有两种方法设置:代理
- 禁用这几个清除的做业;
- 设置更长的保质期。
26 添加新的分发表
1. 分发项-->右键属性-->项目-->勾选显示全部熟悉-->勾选分发表 2. 启动复制监视器-->选中分发项-->代理-->启动代理(等待代理完成,订阅会自动同步新的快照含新添加的项,期间耐心等待,可 F5 查看进度)