【数据库-Azure SQL Database】如何创建事务复制将本地数据同步到 SQL Azure
Azure SQL DB 可以被配置成为 SQL Server 事务复制的一个订阅者( subscriber )。
主要应用场景有两种:
- 将您的数据迁移到 Azure SQL DB, 并且没有宕机时间。
- 将 Azure SQL DB 作为 SQL on-premises / on VMs 的一个备份或只读实例。
我们扩展了已有的事务复制逻辑以使得 Azure SQL DB 可以成为一个事务复制订阅者。 从使用的体验上来说,能够察觉到的唯一的区别是在你创建一个订阅者的时候:你需要提供 Azure SQL DB 的 URL 而非一台 server 或者一个实例的名字。如果您已经知道了怎么使用事务复制,那么在 Azure SQL DB 上面使用这个功能的学习成本几乎为 0,意味着您将有一种无缝的体验。将数据复制到 Azure SQL DB 上将会变得非常轻松和便捷。当发布服务器和分发服务器至少是以下 SQL Server 版本之一时,支持此方案:
- SQL Server 2016 CTP3(预览版)和更高版本
- SQL Server 2014 SP1 CU3 和更高版本
- SQL Server 2014 RTM CU10 和更高版本
- SQL Server 2012 SP2 CU8 和更高版本
- SQL Server 2012 SP3(发行时)
它是如何工作的呢?
数据的复制实际上是通过分发代理( Distribution Agent )完成的。
下面的这张表展示了整体的架构:

注意事项:
- 只支持 Snapshot 及单向的事务( onpromise sql 到 sql azure )复制. 不支持 Peer-to-peer transactional replication 及 merge replication。
- 只提供 SQL Azure V12 的支持。
- 无法通过 SQL Database 门户来配置事务复制。
- 复制只能使用 SQL Server 身份验证方式登录连接到 SQL DB。
- 只支持 push subscription。
- 被复制的表必须要有主键。
下面的例子展示如何用 SQL Server Management Studio 将 Azure SQL DB 配置成为一个事务复制订阅者。
- 创建一个新的事务复制。
右键 Replication 下的 Local Publication,并选择 New Publication Wizard,会调出新建复制向导。
- 选择 Snapshot publication 或者 Transactional publication, 本示例以 Transactional publication 为例

- 完成向导中的后续步骤,创建一个复制。

- 创建一个新的订阅。
右键刚刚创建的发布,选择 New Subscriptions,调出新建订阅向导。
- 完成向导中所需步骤,在下图 Subscribers 页面,点击 Add Subscriber -> Add SQL Server Subscriber。

- 输入所需的信息,连接到 Azure SQL DB。

- 选择一个 Subscription Database 来接受复制内容。

- 完成向导的余下部分,创建订阅。

- 创建订阅后,可以看到改订阅出现在之前创建的发布下。

在同步完成后,我们来验证一下复制是否生效。
向 SQL Server 发布的这张表中插入数据后,等复制发生之后,发现插入的数据出现在了 Azure SQL DB 指定的表中。 
【数据库-Azure SQL Database】如何创建事务复制将本地数据同步到 SQL Azure的更多相关文章
- SQL Server 事务复制分发到订阅同步慢
原文:SQL Server 事务复制分发到订阅同步慢 最近发现有一个发布经常出现问题,每几天就出错不同步,提示要求初始化.重新调整同步后,复制还是很慢!每天白天未分发的命令就达五六百万条!要解决慢的问 ...
- Azure SQL Database (27) 创建Table Partition
<Windows Azure Platform 系列文章目录> 昨天客户正好提到这个问题,现在记录一下. 我们在使用传统的SQL Server,会使用Table Partition,这个功 ...
- domino数据同步到sql server
近期有个需求,要同步domino数据到selservlet数据库,查看几年前ls使用odbc写的同步功能,还能正常使用.而且加入读者域进去功能(之前没有这个需求).改进成网页配置版本号(曾 ...
- SQL Server 2008复制发布订阅(数据同步)
数据库同步问题 1.有一台主数据库服务器A和另外一台数据库服务器B,客户端首先访问数据库B,当B数据库服务器挂掉时就访问A,当对数据库B进行DML操作时,同时对A进行更新,如果A与B之间通讯失败,则将 ...
- [SDK2.2]Windows Azure Storage (15) 使用WCF服务,将本地图片上传至Azure Storage (上) 服务器端代码
<Windows Azure Platform 系列文章目录> 这几天工作上的内容,把项目文件和源代码拿出来给大家分享下. 源代码下载:Part1 Part2 Part3 我们在写WEB服 ...
- [SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码
<Windows Azure Platform 系列文章目录> 前一章我们完成了服务器端的代码,并且已经发布到了Windows Azure云端. 本章我们将实现客户端的代码,客户端这里我们 ...
- 多点数据同步服务器sql汇总
1. a表中是否存在c的列 IF COL_LENGTH('FeeType', 'ftName') IS NOT NULL select N'存在'as result ELSE select N'不存在 ...
- Azure SQL Database Active Geo-Replication 简介
对于数据库的维护来说,备份工作可谓是重中之重.MS Azure 当然也提供了很完善的数据库备份功能.但是在动手创建备份计划前请思考一下备份工作的真实目的.当然首先要保证数据的安全,一般来说定时创建数据 ...
- [转]Azure 表存储和 Windows Azure SQL Database - 比较与对照
本文转自:https://msdn.microsoft.com/library/azure/jj553018 更新时间: 2014年10月 作者:Valery Mizonov 和 Seth Manhe ...
随机推荐
- Maven下org.junit.Test无法使用
原文地址: https://blog.csdn.net/allenChenZhiMing/article/details/81412983 我在看Spring in action(第四版)的时候,看到 ...
- 使用libvirt技术监控虚拟机资源利用情况
使用libvirt技术监控虚拟机资源利用情况 (一)计算资源与内存资源的监控 libvirt中提供virDomainGetInfo方法可以将一个domain的计算资源和内存资源的使用情况封装在一个结构 ...
- Python深入浅出property特性属性
导语 在Java中,通常在类中定义的成员变量为私有变量,在类的实例中不能直接通过对象.属性直接操作,而是要通过getter和setter来操作私有变量. 而在Python中,因为有property这个 ...
- 华为codecraft2018总结
华为codecraft2018总结 想来也是参加了第二次了,自己还是那么的菜.总结下今年的比赛,得奖是不存在的了,但是收获还是有的. 代码相关的都在这里了:https://github.com/hui ...
- Rusty String
题意: 给定一个含有两种字符'V','K'以及?的字符串,问该串可能的循环节. 解法: 首先如果对于$d$,我们有不存在 $(j-i) | d$ 且 $S_i = 'V', S_j = 'K'$ 的 ...
- java一些jar包的bug(不定期更新)
c3p0-0.9.5.jar 连接池jar包,常用于web项目,关闭连接池时,没有注销所有的driver 解决:可声明一个ServletContextListener的子类并设置监听,重写contex ...
- dom4j的解析实例
book.xml数据如下: <books> <book> <author>Thomas</author> <title>Java从入门到放弃 ...
- [CVE-2017-5487] WordPress <=4.7.1 REST API 内容注入漏洞分析与复现
记录下自己的复现思路 漏洞影响: 未授权获取发布过文章的其他用户的用户名.id 触发前提:wordpress配置REST API 影响版本:<= 4.7 0x01漏洞复现 复现环境: 1) Ap ...
- 混用ngui和ugui渲染顺序问题
http://blog.csdn.net/xtxy/article/details/38332801 为NGUI panel 添加 sorting layer 接着上一篇文章的问题,看到了老外做的一个 ...
- perl C/C++ 扩展(二)
第二讲perl 加载c/c++的库 先通过h2xs 创建一个新的工程 h2xs -A -n two_test 进入目录 cd two_test 创建一个mylib文件夹,存放静态库 mkdir myl ...