SQL Server的数据目前是存在于公司服务器的,现时需要将它迁移至Azure SQL

迁移分两种

  1. 数据库结构复制
  2. 数据库结构复制与数据迁移至Azure SQL

第1种方法针对的是将现有数据库创建新库至新服务器,做法是在原服务器生成结构脚本,在新服务器执行即可

第2种方法针对的是将现有数据库完整迁移至Azure SQL,做法是使用Azure SQL迁移向导工具,将数据库结构与数据同时迁移至Azure SQL中


一:数据库结构复制

使用SSMS生成Azure SQL运行的DB脚本

第一步:在SSMS找到原数据库,鼠标右键点击任务(Task),并选择生成脚本(Generate Scripts)

第二步:选择要生成脚本的数据库对象,如果是生成新库的话需要全部选择

第三步:在弹出的SQL脚本向导窗口中,出现数据库窗口,选择我们需要迁移的目标数据库,并选择一个目录保存生成的脚本文件

【表/视图选项】

编写数据压缩选项的脚本:设置为FALSE,因为我们不能将数据写入至生成的脚本中

【常规】

编写USE DATABASE脚本:设置为FALSE,Azure SQL暂时不支持该选项

编写扩展属性脚本:设置为FALSE,Azure SQL暂时不支持扩展属性

将UDDT转换为基类型:设置为TRUE,Azure SQL暂时不支持用户自宝义数据类型,能够使用的数据类型就是Azure站点里列出的类型

第四步:第三步点击完成后,SSMS会自动生成脚本至指定目录

第五步:在Azure SQL中运行第四步生成的脚本文件即可


二:数据库结构复制与数据迁移至Azure SQL

首先需要下载工具 SQL Database Migration Wizard

SQL Database Migration Wizard 是一个第三方工具,它能够很好的解决SQL Server至Azure SQL迁移问题,能解决SQL Server与Azure SQL的兼容性问题,生成Azure SQL兼容的脚本,并且可以远程执行脚本实现数据库迁移
第一步:下载SQL Database Migration Wizard,并解压至本地目录

第二步:打开工具,并选择【分析并迁移数据库】,另外目录服务器选择【SQL数据库】

第三步:在弹出的数据库登陆页面输入服务器的IP和用户名/口令,并选择指定目标数据库,在弹出的服务器数据库列表中选择原目标数据库

第四步:选择要生成的脚本的对象,这里我们选择的是所有对象,因为,数据库迁移时,需要将所有相应的配置都加入,包括存储过程、表、用户定义的函数、视图,先不要直接选择下一步

第五步:在选择生成的脚本对象对话框中,选择高级选项,并在其中【表/视图选项】中【生成表/数据】中选择【表结构和数据】选项,这样才会把表结构和表中的数据一起迁移至新数据库

第六步:在弹出的生成脚本检查窗口中查看要生成的对象,如果所有的对象都在其中,可以跳至下一步,如果有的对象还未选择,应该返回第四步,选择你需要选择的对象

第七步:等待生成脚本和数据文件,数据文件即数据表中的数据指导出成单个的文件,默认存放的位置在C:\SQLAzureMW\BCPData,导出需要一点时间,时间长短取决于数据表中的数据大小和网络状况

第八步:生成了所有的结构脚本和表数据文件后,需要选择新目录数据库服务器的连接,并选择新目录数据库

第九步:开始执行脚本,最开始执行数据库结构脚本,创建好结构后,会将数据文件中的数据插入至数据表中

最后:使用SSMS连接至Azure SQL的数据库中,查看是否成功完整迁移数据库

这里提一下,在迁移后,使用SSMS 2014连接至Azure SQL,表、视图都是没有问题的,但存储过程却无法加载到SSMS中,以为在迁移过程中将存储过程遗漏了,但如果运行其中一个存储过程,是成功的,应该是存储过程也迁移成功了,但SSMS无法加载Azure SQL的存储过程


注意:迁移过程中出现了错误,导致迁移过程中断的情况,需要在SSMS中生成清除的DB脚本

生成以下脚本文件,需要将生成的脚本放入至Azure SQL中运行一次

执行过后的Azure SQL数据库是空的,可以再次执行迁移步骤以确保两个数据库是一致的


补充:当成功将SQL Server数据库迁移到了Azure SQL上,备份与还原的工作相对比较简单,在Azure管理系统中导出.bacpac包,即可备份并下载至本地,还原也非常简单

MS SQL Server迁移至Azure SQL的更多相关文章

  1. MS SQL Server迁移至Azure SQL(官方工具)

    前面,我有尝试过将MS SQL Server数据数据迁移至Azure SQL,请参考<MS SQL Server迁移至Azure SQL>,使用的是第三方工具,但现在官方更新了工具,我们尝 ...

  2. Microsoft: Get started with Dynamic Data Masking in SQL Server 2016 and Azure SQL

    Dynamic Data Masking (DDM) is a new security feature in Microsoft SQL Server 2016 and Azure SQL DB. ...

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

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

  4. 从 Microsoft SQL Server 迁移到 Oracle

    来源于:http://www.oracle.com/technetwork/cn/database/migration/sqlserver-095136-zhs.html Oracle SQL Dev ...

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

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

  6. 从Microsoft SQL Server迁移到MySQL指南

    转自 https://www.mysql.com/why-mysql/white-papers/sql-server-to-mysql-zh/ 由于 MySQL 将节约成本.自由选择平台.特性丰富等优 ...

  7. sql server迁移数据(文件组之间的互相迁移与 文件组内文件的互相迁移)

    转自:https://www.cnblogs.com/lyhabc/p/3504380.html?utm_source=tuicool SQLSERVER将数据移到另一个文件组之后清空文件组并删除文件 ...

  8. abp项目 从sql server迁移至mysql

    官方资料:https://aspnetboilerplate.com/Pages/Documents/EF-MySql-Integration 实验发现,还差了两步 整理一下,步骤如下: 1.引用My ...

  9. SQL Server 迁移数据库 (一)导入和导出

    今天正好换服务器,记录一下迁移数据库的过程. 以前经常用备份还原法,今天试试‘SQL Server 2016 导入和导出数据’这个看怎么玩. 1. 建数据库结构 1.1 在需要迁移的数据库名字上右击, ...

随机推荐

  1. Python爬虫学习笔记之微信宫格验证码的识别(存在问题)

    本节我们将介绍新浪微博宫格验证码的识别.微博宫格验证码是一种新型交互式验证码,每个宫格之间会有一条 指示连线,指示了应该的滑动轨迹.我们要按照滑动轨迹依次从起始宫格滑动到终止宫格,才可以完成验证,如 ...

  2. 【TYVJ】1520 树的直径

    [算法]树的直径 memset(a,0,sizeof(a)) #include<cstdio> #include<algorithm> #include<cstring& ...

  3. 关于反序列化时抛出java.io.EOFException异常

    https://www.cnblogs.com/ouhaitao/p/7683568.html https://blog.csdn.net/mym43210/article/details/40081 ...

  4. 如果你也想写个完整的 Vue 组件项目

    1.一个完整的组件项目需要什么? 必要的: 组件构建方式 ( webpack / rollup 之类 ),并提供至少一个主流的输出格式 (ESModule) Demo 及 Demo 源码 文档,可以是 ...

  5. SSM三大框架整合详细总结(Spring+SpringMVC+MyBatis)(山东数漫江湖)

    使用 SSM ( Spring . SpringMVC 和 Mybatis )已经很久了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录 ...

  6. 【转】CVE-2010-4258 漏洞分析

    一. 漏洞简介 CVE-2010-4258这个漏洞很有意思,主要思路是如果通过clone函数去创建进程,并且带有CLONE_CHILD_CLEARTID标志,那么进程在退出的时候,可以造成内核任意地址 ...

  7. Redis缓存Mysql模拟用户登录Java实现实例[www]

    Redis缓存Mysql模拟用户登录Java实现实例 https://jingyan.baidu.com/article/09ea3ede1dd0f0c0aede3938.html redis+mys ...

  8. 0x3F3F3F3F——ACM中的无穷大常量

    在算法竞赛中,我们常常需要用到设置一个常量用来代表“无穷大”. 比如对于int类型的数,有的人会采用INT_MAX,即0x7fffffff作为无穷大.但是以INT_MAX为无穷大常常面临一个问题,即加 ...

  9. jQuery 选中tr下面的第某个td

    1.问题描述 点击 table 中的某行 tr,获取该 tr 下的第一个 td 标签下的< input type="hidden" value="92"/ ...

  10. vscode和phpStorm使用xdebug调试设置

    phpStorm http://www.cnblogs.com/cxscode/p/7045944.html http://www.cnblogs.com/cxscode/p/7050781.html ...