本章我将介绍如何将本地(局域网内)的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云数据库上
    




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

 

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

-  数据库名: SQLAzureFrom2008R2

-  版本Web

-  最大大小:  1GB

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

 

4.点击OK

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

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

 

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

-  规则名称: All IP

-  IP范围开始值:  0.0.0.0

-  IP范围结束值:  255.255.255.255 

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个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云数据库上
    




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个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云数据库上
    




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

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

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个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云数据库上
    




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

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

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

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

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

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

 

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

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

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

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

-  SQL Azure的Server name

-  登录用户名

-  密码

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

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

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

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

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




SQL Azure(三) 创建一个SQL Azure 服务器
SQL Azure(四) 创建一个SQL Azure数据库

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

相关文章: