Azure SQL数据库迁移阿里云RDS SQLserver实践

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云服务器 ECS,每月免费额度280元 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 由于尝试直接使用DTS工具迁移,从微软云迁移SQL数据库到RDS SQLserver时发现,DTS虽然能够连接到Azure SQL, 但是无法获取结构,主要由于Azure SQL是微软针对微软云定制的数据库版本。

 

 

一、背景

         由于尝试直接使用DTS工具迁移,从微软云迁移SQL数据库到RDS SQLserver时发现,DTS虽然能够连接到Azure SQL, 但是无法获取结构,主要由于Azure SQL是微软针对微软云定制的数据库版本。与原本的MSSQL server还是不一样的。为了方便大家能够顺利迁移。整理了导入导出的迁移方式.

 

二、Azure SQL 数据库迁移到RDS SQLserver实践步骤

 

1、         在阿里云控制台创建好目标数据库和登陆用户。

a)       记录下新建的数据库名称、登陆地址、登陆用户名、密码。

b)      登陆用户具有写入权限。

2、         购买一台ECS用于迁移,ECS要求

a)       绑定公网IP。

b)      4核4G的即可。

c)       OS是windows系统

d)      ECS与目标库最好买在同一个可用区或者VPC可以通过内网访问新建的目标数据库。

e)       建议按量购买,迁移完即释放

3、         在购买的ECS上安装SQL server的客户端工具(SSMS)。

a)       SSMS微软下载地址:https://msdn.microsoft.com/library/mt238290.aspx

b)      安装过程,双击可执行文件,全程默认安装即可。过程不再累述

4、         配置迁移过程。

a)       登陆ECS,启动SSMS

6e62a25b3a053ba7bec0062ce1ed0f2ede8961d4

b)      连接的新建的目标数据库

473448d7ad959e5ec44c3abff5133a76191e6bf6

登陆使用的信息,在步骤1 a)已经记录。点击连接登陆

c)      开始配置导入任务

24bc938880e84a67adffc4f50affc446b03d96d2

     

936c2e05b20dfb33fe84ef5c71cf110eaa13ec65

填写数据源连接信息

6166cd4aef99a1b3fbc172b79faa31665daf086e


填写目标数据库连接信息

f2d030185a03a19116d2816855f912998e3168bb

83eec8984d95920a2245c4307609b3575c121169

  

选择表的对应关系,也可以编辑字段的对应关系,可以预览迁移后的数据,一般都是同名对应,如果目标创建的表结构,自动同名对应也可以自定义对应关系,如果目标没有创建表结构,这里可以自动生成与原表结构一致。

8dc1a1a7efac967be3f0d0f69ebf0299491649e5

 列之间的映射关系可以自定义,默认同名对应。同时可以选择追加,还是删除目标表数据,重新导入。其中插入标示如果选中,代表如果源表中的标示是自动增长的,源表是什么值就插入目标表是什么值,如果不选中,默然重新生成标示。

54122f373b0e8ab5bc3df40b0291f69e0ed8de6a

  预览迁移的数据如图,如果没有问题开始正式迁移

eb737eca0c3ae6f2db2c52a93e0c927b2f7e2f4b   

efd5b5b45a97fe371fb0b3250ac0671059db8d7a

533ef2ddd7d5f865ee14cf6ac2c894c81efde3bb

  如果正常到这里就完成了数据的迁移,如果有问题,在消息列会提供报错信息,根据报错信息进行调整即可。   

 

 

5、    数据迁移完了,还有一些脚本性的的代码没有迁移,比如存储过程、试图、自定义函数。迁移的方法就是连接到源库,生成存储过程、试图、自定义函数的脚本,拿到目标库执行,创建这些对象。另外执行计划,需要登录目标库重新创建即可。

生成迁移对象的脚本

0e5da858485567aa939e8d261169585352423759

923addaa58e4f6caf4c026fa0dc77800d6e86093

选择生成的对象:

1a2b7b7dd7790937391620a59eb62d3443673772

选择存放位置和格式:

bd671ac06de27cc64ef8078bee884072964aae5f

ee8950354ca25f6e88d6973dfa4cff617207d84b

 

把生成的脚本,拿到目标库执行,注意脚本不能有操作系统表的行为,否则会超出RDS给提供的用户权限。如果存在建议应用实现这样的功能。

 

 

三、注意事项

a)       这种方式只适用于全量迁移,没有增量。

b)      停机时间取决于数据量的大小,如果停机时间较长,业务不可接受,可以考虑采用这种方式分批迁移数据,得需要业务的配合。

 

 

 

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
47 10
|
18天前
|
SQL 关系型数据库 MySQL
mysql一条sql查询出多个统计结果
mysql一条sql查询出多个统计结果
13 0
|
8天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
66 6
|
3天前
|
SQL 自然语言处理 测试技术
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
|
4天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
4天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
32 3
|
7天前
|
SQL 人工智能 自然语言处理
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL
|
7天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
29 0
|
8天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
10天前
|
SQL 存储 关系型数据库
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-2
【4月更文挑战第5天】两阶段提交是为确保`redo log`和`binlog`逻辑一致,避免数据不一致。若先写`redo log`, crash后数据可能丢失,导致恢复后状态错误;若先写`binlog`,crash则可能导致重复事务,影响数据库一致性。一天一备相较于一周一备,能缩短“最长恢复时间”,但需权衡额外的存储成本。
16 1

热门文章

最新文章