通过SSMS工具迁移本地的SQL Server Database到Windows Azure SQL Database

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

微软的产品更新越来越快了,几乎每年都有产品更新,今天呢,我们主要介绍一下,如何将本地的SQL Server数据库迁移到windows azure上的SQL Server Database。当然说到SQL Serrver数据库的迁移,大家都会想到最普通及最普遍的方法,那就是通过备份数据库,然后通过备份的数据库文件进行还原。其实呢,我们在IT运维的工作中多少会有体会,最普通的方法往往是最有效的方法也是最安全的方法,但是效率不高,由于时代进步的太快了,我们也不能太out了,也不想用这个古老的方法去做数据迁移,毕竟SQL Server及windows azure都是微软的产品,微软肯定也有其他管理工具进行迁移或者管理。我们日常都会用到,数据库的管理工具,我们首选会用到SQL Server Manager Studio(SSMS)进行管理操作。那SSMS到底支不支持从本地的SQL Server数据库迁移数据到Windows azure SQL Server Database呢。答案是肯定支持的,那怎么操作呢,那就是我们今天介绍的主要内容,我们会主要着重介绍两种方法,第一是通过SSMS直接迁移到windows azure sql database下,还有一种就是通过SSMS导出需要迁移的数据库架构信息,然后在windows azure sql database下导入架构信息。

关于本地SQL Server迁移到Azure Database,首先我们需要明确二者之间的差异(比如支持的SQL语法及一些约束条件等),然后根据这些差异制定基于当前数据库的迁移计划。关于Azure SQL Database与传统SQL Server数据库几点重要的差异:

1. 聚集索引要求:Azure SQL Database 不支持没有聚集索引的表,表必须具有聚集索引(这点非常重要,更多约束参考:Azure SQL Database 一般性的指导原则和限制)。

2. Azure SQL Database Transact-SQL 参考

3. 不支持的 Transact-SQL 语句

关于具体的迁移实现过程,我们可以参考微软官方提供的迁移方案:

1. 将 SQL Server 数据库迁移到 Azure SQL Database

2. 使用 SQL Server Data Tools 将数据库迁移到 Azure SQL Database

使用SQL Server数据库导入Azure

前提条件:

a. 需要在本地安装SQL Server 2012 SP1 CU2 或者更新的版本. 如果您安装了 SQL Server 2012 SP1,可以从下面的连接下载并更新SQL Server.

SQL Server2012 SP1 CU2

http://support.microsoft.com/kb/2790947/en-us

SQL Server2012 SP1 CU4

http://support.microsoft.com/kb/2833645/en-us

b. 本地数据库的数据对象需要满足支持DAC的要求,具体可以查看 对 SQL Server 对象和版本的 DAC 支持 (http://technet.microsoft.com/zh-cn/library/ee210549.aspx)

另外我们还可以通过第三方的工具来迁移。

使用SQLAzureMW进行迁移

SQLAzureMW是微软公司发布在CodePlex上的一个项目,它可以将SQL 2005及SQL 2008数据库迁移到SQL Azure上。其最新版本是3.3,下载地址是:

http://sqlazuremw.codeplex.com/releases/view/32334

SQLAzureMW会检测并纠正SQL Server 2005/2008与SQL Azure之间的不兼容性。向导能修复的一些常见问题有:使用varChar(max)替换text列、将用户自定义类型转换为基类型。将text列转换为varchar(max),将image转换为varbinary(max),同时它还会取消对XML schema的绑定,因为SQL Azure并不支持它。由于SQL Azure缺乏对hierarchyID的支持,因此需要手工完成。除了在SQL Azure上生成脚本以部署迁移的schema之外,用户还可以凭借该工具通过BCP来迁移表数据。

废话不多说了,今天我们主要介绍通过SSMS如果做数据的迁移。具体操作见下:

前提是我们已经在windows azure上创建好了数据库,然后用2008的Sql Server Manager Studio对数据库进行连接管理,我们通过SSMS连接了本地的SQL SERVER及windows azure上的SQL Server Database。我们连接后发现,2008 sql server manager studio工具的任务下,没有部署数据到windows azure database的选项,经过咨询世纪互联后,告知,SSMS的版本必须是2012以上版本,而我们现在使用的是2008版本的SSMS,所以无法通过以下方法进行导出及导入:

clip_image002

为了解决问题,我们就在微软的MSDN网站上下载最新的数据库,目前微软最新的数据库版本为SQL Server 2014,所以我们就下载了SQL Seraver 2014 Manager Studio管理工具的安装包。

Sql server 2014 manager studio管理数据库

clip_image004

开始安装SQL Server Manager Studio2014

clip_image006

安装完成后,我们运行SQL Server Manager Studio2014工具

clip_image008

还是连接本地的SQL server数据库和Windows azure Sql server database数据库后,然后我们在本地数据库下,右击要迁移的数据库---Deploy Database to windows azure sql database

我们发现一共有两个选项,还有一个是Deploy Database to windows azure vm,这个选项是windows azure 上的vm上运行的sql 数据库迁移

clip_image010

我们迁移本地数据到windows azure sql database后,我们默认下一步

clip_image012

解析来我们需要连接目标服务,也就是说迁移的目的地,我们要迁移到windows azure上,所以我们需要连接windows azure sql server database

clip_image014

可根据自己的选项进行连接及配置

clip_image016

开始导出sql server 的架构信息

clip_image018

开始在windows azure上创建对应的数据库架构及数据包。

clip_image020

操作完成

clip_image022

我们通过SSMS可以看见windows azure sql server database下多了一个本地的数据库,通过查询语句查看,数据完整性好。

clip_image024

方法2:

我们在迁移数据库的时候还有一张方法,那就是Export data-tier application进行还原。该功能类似于数据库的备份机还原。

clip_image026

我们默认下一步

clip_image028

保存模板文件,模板文件的类型为.bacpac

clip_image030

保存信息提示

clip_image032

操作完成。导出数据库及架构等信息。

clip_image034

导出的架构文件及数据文件

clip_image036

接下来我们还是通过SSMS链接windows azure SQL Server database进行还原。我们右击windows azure sql server database后,右击import data-their application

clip_image038

提示信息。

clip_image040

我们选择刚才备份的数据库架构文件

clip_image042

确认数据库的配置信息后,下一步

clip_image044

确认信息

clip_image046

操作完成。

clip_image048

我们还是通过SSMS查看windows azure下的SQL Server database数据库信息

clip_image050

我们还是通过sql 查询语句对刚才迁移的数据库进行查询机判断。

clip_image052




本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1580834,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
4天前
|
SQL 数据库
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
30 0
|
18天前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
2月前
|
SQL 运维 监控
SQL Server 运维常用sql语句(二)
SQL Server 运维常用sql语句(二)
26 3
|
2月前
|
SQL XML 运维
SQL Server 运维常用sql语句(三)
SQL Server 运维常用sql语句(三)
16 1
|
2月前
|
SQL 存储 监控
|
2月前
|
Java 应用服务中间件 Maven
从零到英雄:一步步构建你的首个 JSF 应用程序,揭开 JavaServer Faces 的神秘面纱
【8月更文挑战第31天】JavaServer Faces (JSF) 是一种强大的 Java EE 标准,用于构建企业级 Web 应用。它提供了丰富的组件库和声明式页面描述语言 Facelets,便于开发者快速开发功能完善且易于维护的 Web 应用。本文将指导你从零开始构建一个简单的 JSF 应用,包括环境搭建、依赖配置、Managed Bean 编写及 Facelets 页面设计。
74 0
|
2月前
|
SQL 关系型数据库 MySQL
【超全整理】SQL日期与时间函数大汇总会:MySQL与SQL Server双轨对比教学,助你轻松搞定时间数据处理难题!
【8月更文挑战第31天】本文介绍了在不同SQL数据库系统(如MySQL、SQL Server、Oracle)中常用的日期与时间函数,包括DATE、NOW()、EXTRACT()、DATE_ADD()、TIMESTAMPDIFF()及日期格式化等,并提供了具体示例。通过对比这些函数在各系统中的使用方法,帮助开发者更高效地处理日期时间数据,满足多种应用场景需求。
102 0
|
2月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
177 0
|
5月前
|
开发框架 .NET API
在Windows Server 2008 R2上运行.Net 8应用
在Windows Server 2008 R2上成功运行.Net 8程序,需安装三个补丁:Windows Server 2008 R2 SP1 (KB976932)是基础更新;VC_redist.x64提供MSVC库支持;KB3063858解决.NET运行时加载`kernel.dll`的路径问题。KB3063858可能需要KB2533623。详细信息和下载链接在文中给出。
405 4
|
10月前
|
存储 安全 Apache
2023-10 适用于基于 x64 的系统的 Windows Server 2012 R2 月度安全质量汇总(KB5031419)
2023-10 适用于基于 x64 的系统的 Windows Server 2012 R2 月度安全质量汇总(KB5031419)
820 2