宝哥软件园

SQL2005在新的复制中找不到存储过程 错误:分辨率为2812

编辑:宝哥软件园 来源:互联网 时间:2021-08-02

类型:数据库类大小:36.0M语言:中文评分:1.2标签:立即下载服务器并重新安装系统后,用附加表重新配置同步复制时出错:

Sql server无法创建发布。找不到存储过程。错误2812

在SQL SERVER 2005中,服务器上有一个数据库DB1。由于服务器需要更换,数据库DB1应该迁移到B服务器。而DB1用于同步复制。粗心,没有删除同步复制(发布和订阅),所以直接将两个文件DB1.mdf和DB1_log.ldf附加到B服务器。附件成功,可以连接原程序。你以为你完了。然而,几天后,当你想重新同步服务器进行实时备份时,你发现你的糟糕时刻已经到来。SQL SERVER 2005像生病一样,只提示:“存储过程“”找不到…错误:2812”。

如果你的经历与以下不完全一致,那么这篇文章可能也值得你参考。

但是如果你的经历完全一样,你在谷歌或者百度上搜索答案,那么这篇文章可能会对你有帮助。

如果数据库迁移后数据尚未更新。所以你的想法是分离这个该死的数据库,然后在没有同步复制的情况下重新迁移干净的数据库。但是,如果您的新数据库已经投入生产,请参考我的方法:

在b服务器上打开DB1数据库的系统表,会发现里面有12个表。这12个表是通过同步复制生成的,包括:

表格/视图

有记录

需要副本

Mspeer _ lsns

ms对等请求

Mspeer_response

Mspub_identity_range

Sysarticlecolumns

系统文章

Sysarticlesupdates

syspublications

Sysreplservers

Sysschemaarticles

Syssubscriptions

systransschemas

sysextendedarticlesview

这就是问题出现的地方。这12个系统表和1个视图是同步复制的产物,如果不发生同步复制,它们就不会出现。我们直接迁移了mdf和ldf文件,数据库中的这些系统表和视图也随之迁移。你不能简单地删除这12个系统表和一个视图,这样也不行。经过长时间的探索,我发现了真正的问题。

让我们看看sysreplservers系统表的内容。有两列:

Srvname

Srvid

旧服务器名

0

终于发现了问题。我们删除了这张表中的记录。

然后随意发表。

然后删除该出版物。

至此,数据库中旧的同步复制信息已被移除,数据库再次变得干净可爱。

更多资讯
游戏推荐
更多+