附加数据库后无法创建发布,error 2812 解决
2015-08-24 16:33
225 查看
日前,由于业务需要,我要把一个数据库直接迁移到新的实例上
用的方法比较古老,就是直接停旧服务器,将数据文件复制到新服务器上,附加数据库
当然这个附加没有什么可说的了,但是在附加后需要将原来库上的发布重建,在按正常流程建立发布的最后,出现了一个错误:
图中隐去的部分是我要发布内容的库名,涉及到公司业务,就不在这里显示了
OK,,然后我进到需要发布内容库的系统表中,可以看到这么这么一堆系统表,就是之前建立发布时候自动建立的一堆系统表:
看一下箭头标出的那张表
内容是这样的
抱歉各位又涂了不少东西,上面涂掉的是库名,下面涂的是实例名,为了不暴露公司业务,我还是小心一点吧
需要说的是,下面涂掉的实例名,是迁移DB之前的实例名,问题就是出在这里了.
我们来手动清理一下之前的发布信息:
exec sp_removedbreplication @dbname = '发布库'
再看发布库,时自动创建的系统表就已经不见了,这时就可以重建发布
当然,还有一个比较low的方法,就是手动干掉系统表的记录:
DELETE FROM [dbo].[sysreplservers]
这样也可以重建发布,但是这样直接操作系统表是比较危险的,不建议这么操作!!
其实还有一个比较根本的解决办法,干活要细致啊!就是在迁移之前先把订阅复制删除,这样附加上来的库就是一个相对”干净“的数据库了,建立发布就没问题了
用的方法比较古老,就是直接停旧服务器,将数据文件复制到新服务器上,附加数据库
当然这个附加没有什么可说的了,但是在附加后需要将原来库上的发布重建,在按正常流程建立发布的最后,出现了一个错误:
图中隐去的部分是我要发布内容的库名,涉及到公司业务,就不在这里显示了
OK,,然后我进到需要发布内容库的系统表中,可以看到这么这么一堆系统表,就是之前建立发布时候自动建立的一堆系统表:
看一下箭头标出的那张表
内容是这样的
抱歉各位又涂了不少东西,上面涂掉的是库名,下面涂的是实例名,为了不暴露公司业务,我还是小心一点吧
需要说的是,下面涂掉的实例名,是迁移DB之前的实例名,问题就是出在这里了.
我们来手动清理一下之前的发布信息:
exec sp_removedbreplication @dbname = '发布库'
再看发布库,时自动创建的系统表就已经不见了,这时就可以重建发布
当然,还有一个比较low的方法,就是手动干掉系统表的记录:
DELETE FROM [dbo].[sysreplservers]
这样也可以重建发布,但是这样直接操作系统表是比较危险的,不建议这么操作!!
其实还有一个比较根本的解决办法,干活要细致啊!就是在迁移之前先把订阅复制删除,这样附加上来的库就是一个相对”干净“的数据库了,建立发布就没问题了
相关文章推荐
- 数据库SQL Server2012笔记(二)——表的管理
- SQLite学习笔记(9)-SQLite的简单使用
- SQL Server 2008安装
- 使用WITH AS提高性能简化嵌套SQL
- Redis官网下载步骤(含windows版)
- Redis C语言
- mysql 读写分离
- 【MySQL】frm文件解析
- MySQL的安装和使用
- mongodb的简单操作
- 连接mysql数据库,忘记root密码
- Python操作redis
- 【其他】MySql常用命令
- 【其他】MySql数据库的安装与卸载
- 四种方式实现SQLServer 分页查询
- oracle恢复删除数据
- 各种数据库相关
- MySQL简单MHA环境搭建
- ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务
- 每个开发人员都需要了解的一个SQL技巧