sql server 数据库复制实现数据同步常见问题(不按期更新)

sql server2008数据库复制实现数据同步常见问题

在原做者基础上追加 sql server2008数据库复制实现数据同步常见问题html

23.发布 'xx' 的并发快照不可用,由于该快照还没有彻底生成,或者日志读取器代理未运行,没法激活它。若是并发快照的生成过程当中断,则必须从新启动用于该发布的快照代理,直到生成完整的快照。

  1. 删除相关的发布订阅
  2. 执行下列查询,若是仍是存在'xx'相关的行
select * from msdb..MSdistpublishers
select * from distribution..MSpublisher_databases
select * from distribution..MSpublications
select * from distribution..MSarticles
select * from distribution..MSsubscriptions
  1. 删掉全部与'xx'先关的行(记得先备份表)
delete from distribution..MSarticles where publisher_db = '<NameOfDatabase>'
delete from distribution..MSsubscriptions where publisher_db = '<NameOfDatabase>'
  1. 重建分发

参考 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

为了不过时致使的问题,有两种方法设置:代理

  1. 禁用这几个清除的做业;
  2. 设置更长的保质期。

26 添加新的分发表

1. 分发项-->右键属性-->项目-->勾选显示全部熟悉-->勾选分发表
2. 启动复制监视器-->选中分发项-->代理-->启动代理(等待代理完成,订阅会自动同步新的快照含新添加的项,期间耐心等待,可 F5 查看进度)

27 日志读取代理器未运行, 没法启动

相关文章
相关标签/搜索