SQL Server的数据目前是存在于公司服务器的,现时需要将它迁移至Azure SQL
迁移分两种
- 数据库结构复制
- 数据库结构复制与数据迁移至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数据库】
第三步:在弹出的数据库登陆页面输入服务器的IP和用户名/口令,并选择指定目标数据库,在弹出的服务器数据库列表中选择原目标数据库
第四步:选择要生成的脚本的对象,这里我们选择的是所有对象,因为,数据库迁移时,需要将所有相应的配置都加入,包括存储过程、表、用户定义的函数、视图,先不要直接选择下一步
第五步:在选择生成的脚本对象对话框中,选择高级选项,并在其中【表/视图选项】中【生成表/数据】中选择【表结构和数据】选项,这样才会把表结构和表中的数据一起迁移至新数据库
第六步:在弹出的生成脚本检查窗口中查看要生成的对象,如果所有的对象都在其中,可以跳至下一步,如果有的对象还未选择,应该返回第四步,选择你需要选择的对象
第七步:等待生成脚本和数据文件,数据文件即数据表中的数据指导出成单个的文件,默认存放的位置在C:SQLAzureMWBCPData,导出需要一点时间,时间长短取决于数据表中的数据大小和网络状况
第八步:生成了所有的结构脚本和表数据文件后,需要选择新目录数据库服务器的连接,并选择新目录数据库
第九步:开始执行脚本,最开始执行数据库结构脚本,创建好结构后,会将数据文件中的数据插入至数据表中
最后:使用SSMS连接至Azure SQL的数据库中,查看是否成功完整迁移数据库
这里提一下,在迁移后,使用SSMS 2014连接至Azure SQL,表、视图都是没有问题的,但存储过程却无法加载到SSMS中,以为在迁移过程中将存储过程遗漏了,但如果运行其中一个存储过程,是成功的,应该是存储过程也迁移成功了,但SSMS无法加载Azure SQL的存储过程
注意:迁移过程中出现了错误,导致迁移过程中断的情况,需要在SSMS中生成清除的DB脚本
生成以下脚本文件,需要将生成的脚本放入至Azure SQL中运行一次
执行过后的Azure SQL数据库是空的,可以再次执行迁移步骤以确保两个数据库是一致的
补充:当成功将SQL Server数据库迁移到了Azure SQL上,备份与还原的工作相对比较简单,在Azure管理系统中导出.bacpac包,即可备份并下载至本地,还原也非常简单