设为首页 收藏本站
查看: 1279|回复: 0

[经验分享] Azure SQL Database (22) 迁移部分数据到Azure Stretch Database

[复制链接]

尚未签到

发表于 2017-6-30 09:39:51 | 显示全部楼层 |阅读模式
  《Windows Azure Platform 系列文章目录》
  Azure SQL Database (19) Stretch Database 概览
  Azure SQL Database (20) 使用SQL Server 2016 Upgrade Advisor
  Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里
  Azure SQL Database (22) 迁移部分数据到Azure Stretch Database
  在之前的文档中,笔者介绍了如何迁移一张表的所有数据,到云端Stretch Database
  Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里
  在这里,笔者介绍如何将一张表里的部分数据,迁移到云端Stretch Database里。
  更多的内容,请参考MSDN文章:https://msdn.microsoft.com/en-us/library/mt613432.aspx
  准备工作:
  1.如果你已经开始之前的练习,请删除之前在本地的Sample Database:AdventureWorks2016CTP3
  2.登陆Azure China管理平台:https://manage.windowsazure.cn/,删除Stretch Database
DSC0000.png

  3.重新还原AdventureWorks2016CTP3
  基本定义:
  我们可以在本地SQL Server 2016,创建以下方法Function



CREATE FUNCTION dbo.fn_stretchpredicate(@column1 datatype1, @column2 datatype2 [, ...n])  
RETURNS TABLE  
WITH SCHEMABINDING   
AS   
RETURN  SELECT 1 AS is_eligible  
WHERE <predicate>  
  返回值:
  如果返回的值为非空(non-empty)的话,则这些返回结果会被迁移到云端Stretch Database。
  剩下的值(即不在这些返回值中的内容),则会保留在本地SQL Server 2016
  条件:
  这里的条件,就是<predicate> 参数。
  我们还是以数据库AdventureWorks2016CTP3,表Sales.OrderTracking为例。
  1.首先打开本地计算机的SQL Server Management Studio(SSMS),运行以下脚本:



USE AdventureWorks2016CTP3
--Review the Data
SELECT COUNT(*) FROM Sales.OrderTracking WHERE TrackingEventID <= 3
--Review the Data
SELECT COUNT(*) FROM Sales.OrderTracking WHERE TrackingEventID > 3
  可以看到,TrackingEventID <= 3的数据量为94364。TrackingEventID>3的数据量为94426。图略。
  接下来的几个步骤,同之前的文档,主要作用是设置和打开归档功能。



--对本地SQL Server 2016,打开归档功能
EXEC sp_configure 'remote data archive' , '1';
RECONFIGURE;
--对云端Azure SQL Database的用户名和密码,进行加密,加密的密码同SQL Database的密码:
USE Adventureworks2016CTP3;
CREATE MASTER KEY ENCRYPTION BY PASSWORD='Abc@123456'
CREATE DATABASE SCOPED CREDENTIAL AzureDBCred WITH IDENTITY = 'sqladmin', SECRET = 'Abc@123456';
--将本地的SQL Server 2016的归档目标,指向到微软云SQL Database Server(l3cq1dckpd.database.chinacloudapi.cn)
--这个l3cq1dckpd.database.chinacloudapi.cn,是我们在准备工作中,创建的新的服务器
ALTER DATABASE [AdventureWorks2016CTP3] SET REMOTE_DATA_ARCHIVE = ON
(SERVER = 'l3cq1dckpd.database.chinacloudapi.cn', CREDENTIAL = AzureDBCred);
  2.然后我们计划把TrackingEventID <= 3的值(一共94364行),都保存到云端Stretch Database。
  3.我们在本机SSMS,执行以下T-SQL语句。创建FUNCTION



--Create Function
CREATE FUNCTION dbo.fn_stretchpredicate(@status int)
RETURNS TABLE WITH SCHEMABINDING AS
RETURN    SELECT 1 AS is_eligible WHERE @status <= 3;
  4.开始迁移数据表中的部分数据



--Migrate Some Data to the Cloud
ALTER TABLE Sales.OrderTracking SET (REMOTE_DATA_ARCHIVE = ON (
MIGRATION_STATE = OUTBOUND,
FILTER_PREDICATE = dbo.fn_stretchpredicate(TrackingEventId)));
  5.我们可以执行以下语句,查看归档数据迁移的进度



SELECT * from sys.dm_db_rda_migration_status
  6.等待一段时间后,我们可以执行以下T-SQL语句



USE AdventureWorks2016CTP3
GO
--显示本地数据行和数据容量
EXEC sp_spaceused 'Sales.OrderTracking', 'true', 'LOCAL_ONLY';
GO
--显示云端Stretch Database的数据行和数据量
EXEC sp_spaceused 'Sales.OrderTracking', 'true', 'REMOTE_ONLY';
GO
  执行结果:
DSC0001.png

  如上图所示:Sales.OrderTracking保存在本地的数据有94426行
  Sales.OrderTracking保存在云端Stretch Database的数据有94364行
  参考资料:https://msdn.microsoft.com/en-us/library/mt613432.aspx

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389633-1-1.html 上篇帖子: 通过 PHP 连接China Azure Blob 存储 下篇帖子: Azure虚拟机从ASM迁移到ARM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表