Azure进阶攻略 | 数据库上云:零停机、自动化
小明最近挺忙,刚刚在外地找了个新工作,正在忙着搬家。多年积攒的家当很多,根本不能潇洒地「说走就走」,于是他联系了搬家公司。专业的就是不一样,不费什么事,就把所有东西打包、运输、拆包到位了。抵达新城市的小明很快投入了新工作中。
上班第二天,上司就交代了一项任务:公司打算将本地部署的 SQL Server 数据库迁移到 Azure,并让小明出一份方案,必须将本地数据库内的数据尽快迁移上云,同时这一过程不能影响数据库的运作,更不能造成业务中断。
目前的具体情况是这样的:
-
公司本地运行着 SQL Server 2014,并已安装所有更新;
-
公司已经在 Azure 中开通了所需配置的 Azure SQL 数据库;
-
小明手头已经有两个数据库的访问凭据之类的东西。
那么,小明需要制定什么样的方案,执行什么样操作才能完成任务呢?不用麻烦,只要找对「搬家公司」,一样可以快速简单地把本地数据搬上云端
事务复制(TransactionalReplication)是由 SQL Server 快照代理、日志读取器代理和分发代理共同实现的一种复制操作,可在服务器和服务器之间实现下列任务:
-
发生增量更改时将其传播到订阅服务器;
-
从发布服务器上发生更改,至更改到达订阅服务器,应用程序需要这两者之间的滞后时间较短;
-
应用程序需要访问中间数据状态。例如,如果某一行更改了五次,事务复制将允许应用程序响应每次更改(例如,激发触发器),而不只是响应该行最终的数据更改;
-
发布服务器有大量的插入、更新和删除活动;
-
发布服务器或订阅服务器非 SQLServer 数据库的情况。
因此只需将 Azure SQL 数据库作为事务复制的订阅服务器,将本地 SQL Server 作为发布服务器,即可通过事务复制功能,直接将本地数据以「事务」的方式复制到 Azure,并确保不停机不中断,获得无缝的迁移体验。
事务复制功能的详细介绍可参阅这里。
使用SQL Server Management Studio
迁移实战
「搬家公司」已经有了,小明很快开始在 SQL Server Management Studio 中执行数据迁移操作:
1、创建一个新的事务复制。右键点击 Replication 下的 Local Publication,并选择 New Publication Wizard,会调出新建复制向导。
2、选择 Snapshot publication 或 Transactional publication,本文以 Transactional publication 为例。
3、完成向导中的后续步骤,创建一个复制。
4、创建一个新的订阅。右键点击刚创建的发布,选择 New Subscriptions,调出新建订阅向导。
5、完成向导中所需步骤,在下图 Subscribers 页面,点击 Add Subscriber -> Add SQL Server Subscriber。
6、输入所需的信息,连接到 Azure SQL DB。
7、选择一个 Subscription Database 来接受复制内容。
8、完成向导的余下部分,创建订阅。
9、创建订阅后,可以看到改订阅出现在之前创建的发布下。
接着只要等待就行了。取决于数据量等因素,整个过程可能会需要一段时间。在复制进行的过程中,本地数据库依然在正常运行,不会受到任何影响,同时本地进行的数据更新增减等操作,也会自动复制到 Azure。
为了验证复制是否已经生效,可以尝试在本地 SQL Server 发布的表中插入数据,并继续等待复制,如果插入的数据也出现在 Azure SQL 数据库对应的表中,即意味着复制已经顺利生效了。
你一定得知道的注意事项
事务复制是一种很强大的功能,但在使用时依然有些问题需要注意:
-
只支持 Snapshot 及单向事务(本地 SQL 到 Azure SQL)复制,不支持 Peer-to-peer 事务复制及MergeReplication。
-
目前仅支持 SQL Azure V12。
-
无法通过 SQL Database 门户来配置事务复制。
-
复制只能使用 SQL Server 身份验证方式登录连接到 SQL DB。
-
只支持 Push Subscription。
-
被复制的表必须要有主键。
此外,目前该功能要求发布服务器和订阅服务器至少是以下 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(发行时) 推荐阅读
事务复制这个搬家公司怎么样?是不是让你的工作更加的高效便捷了,小编这里还有更多可以在你的操作中最常遇到的问题的解决办法,赶紧拿走吧:
《使用 Azure 虚拟机快速搭建安全的 FTPS 服务器》
对了,瞧小编这记性,差点就忘了一件大事被老板扣工资了,下面是大事。
大事:【Azure文档】菜单上线咯!
小伙伴们可以通过云科技公众号主页底部菜单【了解云】中的【Azure文档】菜单,一键获取你想得到想不到的 Azure 技术文档与示例等等无限量资源。
好了,就说这么多,更多的惊喜等你来发现!