《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

  

  3.重新还原AdventureWorks2016CTP3

  基本定义:

  我们可以在本地SQL Server 2016,创建以下方法Function

CREATE FUNCTION dbo.fn_stretchpredicate(@column1 datatype1, @column2 datatype2 [, ...n])
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN SELECT 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 <=
--Review the Data
SELECT COUNT(*) FROM Sales.OrderTracking WHERE TrackingEventID >

  可以看到,TrackingEventID <= 3的数据量为。TrackingEventID>3的数据量为。图略。

  接下来的几个步骤,同之前的文档,主要作用是设置和打开归档功能。

--对本地SQL Server ,打开归档功能
EXEC sp_configure 'remote data archive' , '';
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的值(一共行),都保存到云端Stretch Database。

  3.我们在本机SSMS,执行以下T-SQL语句。创建FUNCTION

--Create Function
CREATE FUNCTION dbo.fn_stretchpredicate(@status int)
RETURNS TABLE WITH SCHEMABINDING AS
RETURN SELECT AS is_eligible WHERE @status <= ;

  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

  执行结果:

  如上图所示:Sales.OrderTracking保存在本地的数据有94426行

  Sales.OrderTracking保存在云端Stretch Database的数据有94364行

  

  参考资料:https://msdn.microsoft.com/en-us/library/mt613432.aspx

  

Azure SQL Database (22) 迁移部分数据到Azure Stretch Database的更多相关文章

  1. Oracle GoldenGate 支持 从SAP HANA database抽取或者复制数据到SAP HANA database 吗?

    Oracle GoldenGate 支持 从SAP  HANA database抽取或者复制数据到SAP HANA database 吗? 来源于: Does Oracle GoldenGate Su ...

  2. Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  3. Azure SQL Database (19) Stretch Database 概览

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  4. Azure SQL Database (20) 使用SQL Server 2016 Upgrade Advisor

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  5. 迁移 SQL Server 数据库到 Azure SQL 实战

    最近有个维护的项目需要把 SQL Server 2012 的数据库迁移到 Azure SQL 上去,迁移过程可谓一波三折,故在此分享这次迁移中碰到的点点滴滴,希望对朋友们有所帮助. 文章来源:葡萄城产 ...

  6. 迁移 SQL Server 到 Azure SQL 实战

    最近有个维护的项目需要把 SQL Server 2012 的数据库迁移到 Azure SQL 上去.主要是因为租用的主机到期,而运营商停止了主机租赁业务,看来向云端的迁移是大势所趋啊!经过一番折腾最终 ...

  7. 将 Azure SQL 内数据下载到本地,满足企业的「数据收集」

    嫌长不看版 本文介绍了通过复制和导出两个操作,将 Azure SQL 数据库中的内容转移至其他位置(例如本地环境)的具体做法.借此可以帮助用户在 Azure 中运行数据库的同时,在本地或指定的其他位置 ...

  8. 价格更低、SLA 更强的全新 Azure SQL 数据库服务等级将于 9 月正式发布

    继上周公告之后,很高兴向大家宣布更多好消息,作为我们更广泛的数据平台的一部分, 我们将在 Azure 上提供丰富的在线数据服务.9 月,我们将针对 Azure SQL 数据库推出新的服务等级.Azur ...

  9. 使用SSMS 2014将本地数据库迁移到Azure SQL Database

    使用SQL Server Management Studio 2014将本地数据库迁移到Azure SQL Database的过程比较简单,在SSMS2014中,有一个任务选项为“将数据库部署到Win ...

随机推荐

  1. MIT 6.828 JOS学习笔记17. Lab 3.1 Part A User Environments

    Introduction 在这个实验中,我们将实现操作系统的一些基本功能,来实现用户环境下的进程的正常运行.你将会加强JOS内核的功能,为它增添一些重要的数据结构,用来记录用户进程环境的一些信息:创建 ...

  2. mysql查询练习题-2016.12.16

    >>>>>>>>>> 练习时间:2016.12.16 编辑时间:2016-12-20-->22:12:08 题: 涉及:多表查询.ex ...

  3. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  4. Server.MapPath()

    ./当前目录/网站主目录../上层目录~/网站虚拟目录 如果当前的网站目录为E:\wwwroot   应用程序虚拟目录为E:\wwwroot\company 浏览的页面路径为E:\wwwroot\co ...

  5. Lambda表达式详解

    前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1.0后新增的最重要的功能之一 ...

  6. C++: Virtual Table and Shared Memory

    See at: 补充栏3: C++对象和共享内存 (叙述内容和Link1的内容基本一致) <C++网络编程 卷1:运用ACE和模式消除复杂性> <C++ Network Progra ...

  7. JQuery基本知识框架思维导图(上)

    一:认识jQuery 1.window.onload与$(document).ready()的对比 2.jQuery代码风格(1:链式代码风格2:位代码添加注释) 3.jQuery对象和DOM对象(1 ...

  8. ubuntu常用命令大全

    一.文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回 ...

  9. DataTable转换为JSON数组

    最后的格式为:[{},{},...] StringBuilder DataTableToJSON(DataTable dt) { string columnName; StringBuilder bu ...

  10. 【JBOSS】User not found SA

    启动JBOSS 发现报User not found: SA 错误, 找了老半天才找到处理方法,异常日志如下: java.sql.SQLException: User not found: SA at ...