SQL Server的合并复制,是可以备份发布端和订阅端数据库为BAK文件的,但是问题是合并复制在数据库中自动创建的系统表、触发器、表中的RowGuid列等也会被一起备份。

这里我们举个例子,下面图中的EFDemo数据库就是由一个合并复制发布端的备份BAK文件还原的:

我们可以看到合并复制自动创建的系统表也被自动还原了。。。

我们再来看看数据库中的其它用户表,例如下面的[dbo].[Person]表,其中合并复制自动创建的RowGuid列、约束、触发器等也被还原了:

最大的问题是,SQL Server的Instance中,居然合并复制也被自动还原了。在还原数据库EFDemo前,Replication下的Local Publications文件夹是空的,但是还原后现在自动多了一个合并复制发布端。。。

而且最关键的是这个发布端实际上是坏的,无法使用,也无法删除。。。。,如下所示:

然后我想尝试去删除刚才还原的数据库EFDemo,结果也删不掉,提示Replication正在使用该数据库。。。

而且数据库EFDemo还莫名其妙的变为了SINGLE_USER模式,点击这里查看怎么将数据库使用的线程Kill掉,再变为MULTI_USER

解决办法

究其根本还是因为SQL Server在还原数据库EFDemo时,将数据库上的合并复制对象(系统表、触发器、表中的RowGuid列等)也一起还原了,那么我们就要想办法在数据库EFDemo被还原后,移除合并复制对象,其实很简单,运行下面的存储过程即可(关于怎么用存储过程来移除数据库的合并复制,可以查看这篇文章):

USE master
EXEC sp_removedbreplication @dbname='EFDemo'
GO

运行该存储过程后,我们再查看EFDemo数据库:

可以看到,合并复制自动创建的系统表、触发器、表中的RowGuid列等都被移除了,EFDemo瞬间变为了一个没有使用合并复制的数据库。

再看看Replication下的Local Publications文件夹,也空了:

好了现在数据库EFDemo总算顺利被还原了~

SQL Server 合并复制如何把备份的发布端或订阅端BAK文件还原为数据库的更多相关文章

  1. SQL Server 合并复制遇到identity range check报错的解决 (转载)

    最近帮一个客户搭建跨洋的合并复制,由于数据库非常大,跨洋网络条件不稳定,因此只能通过备份初始化,在初始化完成后向海外订阅端插入数据时发现报出如下错误: Msg 548, Level 16, State ...

  2. SQL Server 合并复制的Article可以指定单个对象的更新方向

    如下所示,这是SQL Server中一个合并复制发布端的Article: 我们可以在Article中选择一个对象,比如这里我们选择MD.Car表,点击鼠标右键,选择"Set Properti ...

  3. SQL Server 合并复制遇到identity range check报错的解决

        最近帮一个客户搭建跨洋的合并复制,由于数据库非常大,跨洋网络条件不稳定,因此只能通过备份初始化,在初始化完成后向海外订阅端插入数据时发现报出如下错误: Msg 548, Level 16, S ...

  4. SQL Server 2012复制教程以及复制的几种模式

    简介 SQL Server中的复制(Replication)是SQL Server高可用性的核心功能之一,在我看来,复制指的并不仅仅是一项技术,而是一些列技术的集合,包括从存储转发数据到同步数据到维护 ...

  5. sql server 本地复制订阅 实现数据库服务器 读写分离(转载)

    转载地址:http://www.cnblogs.com/echosong/p/3603270.html 再前段echosong 写了一遍关于mysql 数据同步实现业务读写分离的文章,今天咱们来看下S ...

  6. sql server 本地复制订阅 实现数据库服务器 读写分离

    再前段echosong 写了一遍关于mysql 数据同步实现业务读写分离的文章,今天咱们来看下SQL Server的复制订阅实现数据的读写分离 比起mysql的复制,SQL server 复制相对强大 ...

  7. SQL Server 2012 复制(发布订阅的研究)

    原文:SQL Server 2012 复制(发布订阅的研究) 已实现发布订阅功能,可以实现局域网内双击备份. 一.注意事项: a) 使用[事务复制]功能 b) 必须是相同的SqlServer 帐号和密 ...

  8. SQL Server 事务复制爬坑记

    SQL Server 复制功能折腾了好几天了,现特将其配置过程以及其间遇到的问题记录下来,以备日后查阅.同时,也让“同道”同学们少走不必要的弯路.如果有不对之处,欢迎大家指正,欢迎沟通交流. 一.复制 ...

  9. SQL Server 2014新特性-原生备份加密

    注:本篇文章是IT68找我的约稿,原文地址:http://tech.it168.com/a2014/0610/1633/000001633147.shtml       SQL Server 2014 ...

随机推荐

  1. springboot @value和@configurationproperties注解的区别

      @ConfigurationProperties @value 功能 批量注入配置文件中的属性 一个个指定 松散绑定(松散语法) 支持 不支持 SpEL 不支持 支持 JSR303数据校验 支持 ...

  2. Eclipse 下Spring cloud项目集成开发插件Spring Tool Suite (STS) 安装

    安装eclipse插件 Help->Eclipse Marketplace-> Search中查找"Spring Tool Suite (STS) for Eclipse&quo ...

  3. SOA和微服务架构的区别?

    转自知乎:https://www.zhihu.com/question/37808426/answer/93335393 SOA和微服务架构的区别? 微服务架构强调的第一个重点就是业务系统需要彻底的组 ...

  4. Netty 心跳服务之 IdleStateHandler 源码分析

    前言:Netty 提供的心跳介绍 Netty 作为一个网络框架,提供了诸多功能,比如我们之前说的编解码,Netty 准备很多现成的编解码器,同时,Netty 还为我们准备了网络中,非常重要的一个服务- ...

  5. C#基础知识回顾:2.使用DbProviderFactory实现多数据库访问

    ADO.Net 2.0中,在System.Data.Common中引入了一系列抽象基类,使得开发人员能够在不依赖具体数据库操作的情况下进行编写数据访问代码,它们分别是DbConnection.DbCo ...

  6. 36.Linux驱动调试-根据oops定位错误代码行

    1.当驱动有误时,比如,访问的内存地址是非法的,便会打印一大串的oops出来 1.1以LED驱动为例 将open()函数里的ioremap()屏蔽掉,直接使用物理地址的GPIOF,如下图所示: 1.2 ...

  7. 【Java面试】2、面试题汇总

    Java基础部分 面试题总汇--JAVA基础部分 http://www.cnblogs.com/hyhnet/p/5544817.html 115个Java面试题和答案——终极列表(上) http:/ ...

  8. java基础进阶二:HashMap实现原理分析

    HashMap实现原理分析 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二 ...

  9. javascript经典面试题之for循环click

    经典重现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf- ...

  10. 记一次Full GC问题的排查

    今天看到监控平台显示项目的Full GC次数过多,查看了一下监控曲线,如下图,发现发生的时间点基本上都是在上午十点之后,到下午五点. 分析:考虑到业务形态,开始初步怀疑是访问人数增多引起的虚拟机内存不 ...