日期:2013/03/26 14:44:20来源: 绿色资源网整理
一台服务器重装系统后,用附加表再配置同步复制的时候出错:
sql server 无法创建发布 找不到存储过程 错误 2812
在SQL SERVER 2005中,有数据库DB1,在A服务器上。由于要更换服务器,要把数据库DB1迁移到B服务器上。而DB1是用于同步复制的。粗心的你没有把同步复制(发布和订阅)删掉,就直接把DB1.mdf和DB1_log.ldf两个文件到B服务器上附加。附加成功了,原来的程序都能连接上,你以为大功告成。但是,几天过后,当你想把服务器重新同步复制,以作实时备份时,你发现自己的倒霉时刻到了。SQL SERVER 2005 像病了一样,只提示:“找不到存储过程’’…错误:2812”。
如果你的经历与以下的不完全一致,那么这篇文章可能也值得你参考。
但如果你的经历恰好一样,而且你在Google或Baidu上苦寻答案而不觅,那么,这篇文章或者能帮你一把。
如果数据库迁移后,数据并没有更新过。那么你的想法是把这个该死的数据库分离,然后再重新把去掉同步复制的干净的数据库迁移过来。但是,如果你的新数据库已经投入生产,那么,请参考我的方法:
打开B服务器上的DB1数据库的系统表,你会发现有12个表在里面。这12个表就是因同步复制而产生的,包括:
表/视图 |
有记录 |
复制必需 |
Mspeer_lsns |
||
Mspeer_request |
||
Mspeer_response |
||
Mspub_identity_range |
||
Sysarticlecolumns |
有 |
是 |
Sysarticles |
有 |
是 |
Sysarticlesupdates |
是 |
|
syspublications |
有 |
是 |
Sysreplservers |
有 |
|
Sysschemaarticles |
是 |
|
Syssubscriptions |
有 |
是 |
systranschemas |
||
sysextendedarticlesview |
是 |
问题就出现在这里了。这12 个系统表和1个视图是因同步复制而生的,如果没有发生同步复制,他们是不会出现的。我们把mdf和ldf文件直接迁移过来,数据库里面的这些系统表和视图也随之而来了。
不能简单的把这12个系统表和1个视图删掉,这样同样不行。在经过了长时间的摸索后,我发现了问题的真正所在。
我们看一下系统表 sysreplservers的内容,有两列:
Srvname |
Srvid |
旧服务器名称 |
0 |
终于找到了问题所在了。我们把该表的记录删除。
然后随便发布一次。
再把该发布删除。
至此,该数据库中的陈旧同步复制信息已经去除,数据库重新变得洁净可爱。
相关文章
相关下载
sql server 2005 sp4补丁 升级补丁292.96Mv1.0
详情sql server2005 64位电脑版 数据库类1863.67Mv1.0
详情kb2463332(sql server 2005 sp4补丁) 数据库类780.00Mv1.0
详情SQL Server 2005 Sp3 x86 x64补丁中文版 数据库类300.00Mv1.0
详情microsoft sql server 2005 express 数据库类57.03Mv1.0
详情sqlserver 2005驱动包 数据库类3.59Mv1.0
详情网友评论