镜像切换Logreader Agent报错:分发数据库中可能存在不一致的状态(续)
报错:
分发数据库中可能存在不一致的状态: dist_backup_lsn {00000030:000001ba:0004},dist_last_lsn {00000030:000001cd:0004}。请执行 "sp_repldone NULL, NULL, 0, 0, 1",然后执行 sp_replflush。请重新初始化对发布的所有订阅。 (源: MSSQLServer,错误号: 18846)
错误来自于:
第一个参数为dist_last_lsn,第二个参数为dist_backup_lsn
其中dist_last_lsn来自于表MSrepl_transactions,通过存储过程sp_MSget_last_transaction @publisher_id = 9, @publisher_db = N'db_test', @for_truncate = 0x0获得
dist_backup_lsn来自于表MSrepl_backup_lsns,通过存储过程sp_MSget_last_transaction @publisher_id = 9, @publisher_db = N'db_test', @for_truncate = 0x1获得
如果这时对distribution数据库做一个备份,MSrepl_backup_lsns的值会被修改为和MSrepl_transactions的值一致,Logreader便会继续工作了。