Azure SQL Database (22) 迁移部分数据到Azure Stretch Database

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

 《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 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
复制代码

  执行结果:

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

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

 

 

  

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

 



本文转自Lei Zhang博客园博客,原文链接:http://www.cnblogs.com/threestone/p/5826450.html,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
9天前
|
关系型数据库 MySQL Java
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
18 1
|
27天前
|
SQL 安全 数据处理
揭秘数据脱敏神器:Flink SQL的神秘力量,守护你的数据宝藏!
【9月更文挑战第7天】在大数据时代,数据管理和处理尤为重要,尤其在保障数据安全与隐私方面。本文探讨如何利用Flink SQL实现数据脱敏,为实时数据处理提供有效的隐私保护方案。数据脱敏涉及在处理、存储或传输前对敏感数据进行加密、遮蔽或替换,以遵守数据保护法规(如GDPR)。Flink SQL通过内置函数和表达式支持这一过程。
55 2
|
2月前
|
Java 网络架构 数据格式
Struts 2 携手 RESTful:颠覆传统,重塑Web服务新纪元的史诗级组合!
【8月更文挑战第31天】《Struts 2 与 RESTful 设计:构建现代 Web 服务》介绍如何结合 Struts 2 框架与 RESTful 设计理念,构建高效、可扩展的 Web 服务。Struts 2 的 REST 插件提供简洁的 API 和约定,使开发者能快速创建符合 REST 规范的服务接口。通过在 `struts.xml` 中配置 `&lt;rest&gt;` 命名空间并使用注解如 `@Action`、`@GET` 等,可轻松定义服务路径及 HTTP 方法。
37 0
|
2月前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
59 0
|
2月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
38 0
|
SQL 存储 监控
SAP HANA Database Explorer 里的 SQL 语句如何排错 trouble shoot
SAP HANA Database Explorer 里的 SQL 语句如何排错 trouble shoot
206 0
SAP HANA Database Explorer 里的 SQL 语句如何排错 trouble shoot
|
5月前
|
SQL Oracle 关系型数据库
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database (
77 2
|
5月前
|
Oracle 关系型数据库
19c 开启Oracle Database Vault
19c 开启Oracle Database Vault
136 1
|
5月前
|
SQL Oracle 关系型数据库
Connect to Autonomous Database Using Oracle Database Tools
Connect to Autonomous Database Using Oracle Database Tools
47 1
下一篇
无影云桌面