SQL2005新建复制“找不到存储过程 错误:2812”的解决方法

一台服务器重装系统后,用附加表再配置同步复制的时候出错: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

终于找到了问题所在了。我们把该表的记录删除。

然后随便发布一次。

再把该发布删除。

至此,该数据库中的陈旧同步复制信息已经去除,数据库重新变得洁净可爱。

时间: 2024-10-20 07:36:13

SQL2005新建复制“找不到存储过程 错误:2812”的解决方法的相关文章

SQL2005错误:2812 的解决方法

  一台服务器重装系统后,用附加表再配置同步复制的时候出错: sql server 无法创建发布 找不到存储过程 错误 2812 在SQL SERVER 2005中,有数据库DB1,在A服务器上.由于要更换服务器,要把数据库DB1迁移到B服务器上.而DB1是用于同步复制的.粗心的你没有把同步复制(发布和订阅)删掉,就直接把DB1.mdf和DB1_log.ldf两个文件到B服务器上附加.附加成功了,原来的程序都能连接上,你以为大功告成.但是,几天过后,当你想把服务器重新同步复制,以作实时备份时,你

java socket手机通信-关于java的问题:手机用socket连接电脑的服务端时老出现文件找不到的错误,求解决

问题描述 关于java的问题:手机用socket连接电脑的服务端时老出现文件找不到的错误,求解决 30C 解决方案 也可以私聊我.扣扣1944687725 解决方案二: 解决方案三: 你那个斜杠是不是写反了 passwdinput.dat 解决方案四: 你仔细看看出错的提示, 是读文件的时候找不到,对应的代码是在ServerThread.java的51行然后,你把路径改为绝对路径试一试,如果可以了,就是你相对路径的根目录不对.保证passwd文件夹在你的执行目录下 解决方案五: 右键 prope

ant-Android Ant 报资源找不到的错误,怎么解决

问题描述 Android Ant 报资源找不到的错误,怎么解决 工程依赖了一个v7包,使用ant打包时,生成R.java文件时报上面的错误,大神们怎么解决啊.急急急,在线等. 解决方案 Android 找不到资源文件错误的解决办法 解决方案二: http://www.cppblog.com/colorful/archive/2014/12/25/209298.aspx

win8宽带连接错误813的解决方法

  现在的社会无线网铺天盖地,不管是家庭.公司还是商业大楼中都设置了无线网,这也能说明我们国家的互联网发展迅速,已经变成一个互联网大国.即使无线网使用的如此频繁,但是网线连接一直没有被磨灭掉,能够保存必有他的优势之处,理性的分析来看,网线连接的电脑网速更加快,不容易存在信号不稳定的情况,所以网线连接一直难以被淘汰.但是最近有用户反映来说,在使用宽带连接的时候,总是显示连接失败,出现错误提示813的情况,下面小编就来为大家解答,win8电脑宽带连接失败,错误提示813怎么办? win8宽带连接错误

win7系统宽带连接错误734的解决方法

win7系统宽带连接错误734的解决方法   解决方法: 一.右键网上邻居,选择属性,将里面的宽带连接删除掉,重新建立宽带连接. 二.检查你的网络是否开通了绿色上网,如果有的话马上关掉. 三.可在网络连接--属性--安全--验证我的身份中,选择"没有安全措施的密码",也许能解决问题. 四.更新电脑网卡的驱动程序. 五.致电ISP询问,删除所有网络组件重新安装网络. 六.可卸载原拔号程序,重新下载安装互联星空或新建宽带连接.在关机时先关掉宽带连接. 七.可在本地连接里面把micosoft

U盘装系统找不到硬盘、c盘解决方法

  现在的社会提倡增加动手能力,自己可以搞定的事情绝不麻烦他人,所以重装系统这件事在现在来说是很简单的事情了,实现的方法有很多种,人人都是技术员了.虽然说重装系统这件事是很简单的事情,但是我们自己装系统会出现很多的问题,比如说装完系统之后发现找不到电脑中的硬盘和C盘了,那该怎么办呢?今天小编就来教大家U盘装系统找不到硬盘.c盘解决方法. 其实U盘装系统看不到硬盘.C盘最主要的原因是: 1.C盘分区表错误 2.C盘已经损坏了 最简单的方法就是通过格式化C盘来恢复C盘的分区表,并修复C盘. 好了,U

批处理命令篇--配置免安装mysql 5.6.22, 以及1067错误的一个解决方法

  mysql 服务启动出现1067错误的一个解决方法: 当服务启动出现1067错误时,可查看"windows 事件查看器",发现类似错误提示 Can't find messagefile 'F:\    ools\mysql\mysql-5.6.22-winx64\share\errmsg.sys', 但是配置似乎没问题: basedir=F:\tools\mysql\mysql-5.6.22-winx64datadir=F:\tools\mysql\mysql-5.6.22-win

找不到BufferedImage这个Class的解决方法

找不到BufferedImage这个Class的解决方法 环境:       [1]RedHat AS5 64位       [2]WebSphere6.0 32位版本 正文:     发现原来在RedHat AS4 32位系统上跑的程序不能在64位RedHat AS5中运行. 系统报java.awt.image.bufferedImage这个Class找不到.在Sun JDK 1.5平台中,该类在rt.jar包中,但是在IBM JDK1.4.2平台中 该类在graphics.jar包中.   

linux找不到动态链接库 .so文件的解决方法(转自:http://www.cnblogs.com/xudong-bupt/p/3698294.html)

linux找不到动态链接库 .so文件的解决方法 如果使用自己手动生成的动态链接库.so文件,但是这个.so文件,没有加入库文件搜索路劲中,程序运行时可能会出现找不到动态链接库的情形. 可以通过ldd命名来查看可执行文件依赖的动态链接库,如下(其中D为可执行程序):  其中的libjson_linux-gcc-4.6_libmt.so cannot found. 解决这个问题:  (1)在系统中查找这个文件(当然要保证系统中已经有这个.so文件,只是查找路径没有设置正确而已): sudo fin