SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

时间:2022-03-10 16:22:08

本章我将介绍如何将本地(局域网内)的SQL Server 2008 R2数据库内容迁移到SQL Azure云端数据库上。

在开始本章的内容之前,我建议大家能够对前熟悉了解之前几章的内容:

-  SQL Azure(三) 创建一个SQL Azure 服务器

-  SQL Azure(四) 创建一个SQL Azure数据库

-  SQL Azure(五) 使用SQL Server Management Studio连接SQL Azure

 

为了更好的进行动手试验,我希望大家能够预先安装以下软件:

-  SQL Server 2008 R2

-  SQL Server Management Studio

 

一.创建新的SQL Azure 数据库

1.首先打开浏览器,导航到https://windows.azure.com/,输入订阅Azure服务的Live ID。点击在左侧的"数据库"连接。

2.因为前几张我们已经创建了位于香港数据中心的SQL Azure服务器,所以我们只要创建一个新的SQL Azure数据库就可以了。

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

 

 3.新的数据库信息包含:

-  数据库名: SQLAzureFrom2008R2

-  版本Web

-  最大大小:  1GB

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

 

4.点击OK

5.点击"防火墙规则"按钮,选中"允许其他Windows Azure服务访问此服务器"

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

 

6.在"防火墙"规则里,点击"添加"按钮,让某个特定的IP能够访问我创建的SQL Azure服务器。为了方便,我是这样创建的

-  规则名称: All IP

-  IP范围开始值:  0.0.0.0

-  IP范围结束值:  255.255.255.255 

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

 

二.生成DDL脚本

您可以使用本地已经创建好的SQL Server 2008 R2服务来进行以下的迁移工作。我已经在本地安装了SQL Server 2008 R2并且创建了数据库School,包含数据表和存储过程。T-SQL脚本可以在这里下载.

1.启动SQL Server Managemenet Studio

2.连接本地的School数据库。

3.选中School数据库,右键-->Task-->Generate Scripts

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

4.如果出现"Introduction"对话框,选择"Next"

5.在"Choose Objects"对话框里,选择"Select specific database objects",然后选择Table(表),Views(视图),Store Procedures(存储过程)等。

(注意: SQL Azure要求所有的表必须要有聚集索引。如果本地SQL Server里的表没有聚集索引,就不能导入到SQL Azure里)

 6.在"Choose Objects"里选择"Select specific database objects" (因为本地数据库School的所有Table均已有聚集索引,所以我们选择所有的Table)

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

7.在"Set Scripting Options"对话框里,选择"Advanced"按钮

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

 

8.修改选项:

-  General-->"Script for the database engine type"设置成"SQL Azure Database"

-  Table/View Options-->Script Index设置成"True"

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

9.在Set Scripting Options对话框了,选择"Save scripts to a specific location",然后选择"Save to new query window"

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

10.在Summary对话框里,选择Next

11.查看Save or Publish Scripts对话框,然后点击Finish

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

 

三.在SQL Azure里执行导出的T-SQL语句

1.在之前的生成脚本窗口里,右键Connection-->Change Connection

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

2.在弹出的Connect to Database Engine对话框里输入

-  SQL Azure的Server name

-  登录用户名

-  密码

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

3.点击"Options",在Connection Properties里指定我们要连接的SQL Azure Database

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

4.连接SQL Azure成功后,按F5(或者Query-->execute menu option)执行脚本

SQL Azure(九) 把本地的SQL Server数据库迁移到SQL Azure云数据库上

可以看到之前在本地SQL Server的Table和Store Procedure已经成功迁移到SQL Azure里。