附加数据库后无法创建发布,error 2812 解决

时间:2022-05-20 15:45:50

日前,由于业务需要,我要把一个数据库直接迁移到新的实例上

用的方法比较古老,就是直接停旧服务器,将数据文件复制到新服务器上,附加数据库

当然这个附加没有什么可说的了,但是在附加后需要将原来库上的发布重建,在按正常流程建立发布的最后,出现了一个错误:

附加数据库后无法创建发布,error 2812 解决

图中隐去的部分是我要发布内容的库名,涉及到公司业务,就不在这里显示了

OK,,然后我进到需要发布内容库的系统表中,可以看到这么这么一堆系统表,就是之前建立发布时候自动建立的一堆系统表:

附加数据库后无法创建发布,error 2812 解决

看一下箭头标出的那张表

内容是这样的

附加数据库后无法创建发布,error 2812 解决

抱歉各位又涂了不少东西,上面涂掉的是库名,下面涂的是实例名,为了不暴露公司业务,我还是小心一点吧

需要说的是,下面涂掉的实例名,是迁移DB之前的实例名,问题就是出在这里了.

我们来手动清理一下之前的发布信息:

exec sp_removedbreplication @dbname =  '发布库'

再看发布库,时自动创建的系统表就已经不见了,这时就可以重建发布

当然,还有一个比较low的方法,就是手动干掉系统表的记录:

DELETE FROM [dbo].[sysreplservers]

这样也可以重建发布,但是这样直接操作系统表是比较危险的,不建议这么操作!!

其实还有一个比较根本的解决办法,干活要细致啊!就是在迁移之前先把订阅复制删除,这样附加上来的库就是一个相对”干净“的数据库了,建立发布就没问题了