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

2018-02-07 20:14:00来源:cnblogs.com作者:Vinton.Liu人点击

分享

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

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

23.发布 'xx' 的并发快照不可用,因为该快照尚未完全生成,或者日志读取器代理未运行,无法激活它。如果并发快照的生成过程中断,则必须重新启动用于该发布的快照代理,直到生成完整的快照。

  1. 删除相关的发布订阅
  2. 执行下列查询,如果还是存在'xx'相关的行

    select * from msdb..MSdistpublishersselect * from distribution..MSpublisher_databasesselect * from distribution..MSpublicationsselect * from distribution..MSarticlesselect * from distribution..MSsubscriptions
  3. 删掉所有与'xx'先关的行(记得先备份表)

    delete from distribution..MSarticles where publisher_db = '<NameOfDatabase>'delete from distribution..MSsubscriptions where publisher_db = '<NameOfDatabase>'
  4. 重建分发

参考 stackoverflow

如果没有像22那样修改过密码,就是删除分发复制时由于某些原因没删干净(上边的那些表)
经测试,删除发布、订阅时MSsubscriptions表中的数据会自动被删掉,
如果还存在之前的‘xx’那就是未删除干净

24. 错误号:15517

进程无法在“WIN-XXX”上执行“sp_replcmds” 无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限。 (源: MSSQLServer,错误号: 15517

权限不够,解决方法

  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 = 2from distribution.dbo.MSsubscriptions sub where status<>2 and publication_id='publicationID'

执行之后,重新关闭和启动该分发代理作业,很快,复制正常了!~

为了避免过期导致的问题,有两种方法设置:

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

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台