SQL Server Migration Assistant简介(一)

SQL Server Migration Assistant(简称SSMA)是由微软发布的帮助客户更容易地从Oracle/Sybase/MySQL/Access迁移到SQL Server以及SQL Azure的一个工具集,几周前我们刚刚发布了SSMA 5.0版本,该版本支持了最新的代号为Denali的SQL Server的CTP版本,并且增加了对SQL Azure迁移的支持。下表说明了SSMA 5.0所支持的迁移矩阵:

Migrating From

Using SSMA Tool

To SQL Server (2005, 2008, 2008 R2, “Denali”)

To SQL Azure

Sybase

SSMA for Sybase

√

√ (New in SSMA 5.0)

Oracle

SSMA for Oracle

√

MySQL

SSMA for MySQL

√

√

Access

SSMA for Access

√

√

这里我们选择SSMA for Oracle 5.0为例介绍一下SSMA如何帮助您从Oracle迁移到SQL Server 2008 R2。首先我们从这里下载SSMA for Oracle 5.0的压缩包,解压缩后有两个exe文件,SSMA for Oracle 5.0.exe是工具的安装包,SSMA for Oracle 5.0 Extension Pack.exe必须安装在SQL Server 2008 R2所在服务器,用来创建一些辅助运行需要的数据库表和存储过程等。

首次运行SSMA for Oracle需要一个License,如图1所示,你可以点击链接,然后根据提示填写个人信息后免费申请,下载保存之后返回这个对话框选择你保存License的目录然后点击Refresh License按钮即可运行SSMA for Oracle了。

图1  License Management对话框

在主窗口File菜单中选择New Project…菜单项将显示图2所示的对话框,输入项目的名字,选择SQL Server 2008作为迁移的目标数据库版本。

图2  New Project对话框

我们将使用Oracle XE的HR schema为例(下文称之为HR数据库以避免歧义,但其实Oracle并没有SQL Server数据库类似的概念)。SSMA为提高性能,缺省情况下不加载某些示例数据库(包括HR数据库),这个缺省设置可以通过Project Settings来修改,选择Tools菜单的Project Settings菜单项,在弹出的对话框里点击General再选择Loading System Objects,然后勾选HR,如图3所示。

图3 Project Settings对话框

然后我们连接Oracle服务器,点击工具条上的Connect to Oracle,输入Server名称、SID和用户名/密码,如图4所示。连接后会有个警告对话框告诉你hr用户没有足够的权限。由于我们只需要迁移HR数据库,这里可以点击Continue忽略它。如果你的Oracle服务器上有很多数据库,数据加载可能需要比较长的时间,请耐心等待

图4 连接到Oracle服务器

连接上Oracle后我们首先评估一下迁移HR数据库会不会碰到问题,如果碰到问题大约需要多长时间来解决。评估并不需要连接目标SQL Server,只需要在左上方的树里展开Oracle服务器名称,然后展开Schemas,右键点击HR并选择Create Report,如图5所示。

图5 评估HR数据库

SSMA运行一段时间后会打开一个评估报告的对话框,如图6所示。这个评估报告很有用,里面会列出HR数据库里各种对象(包括函数、包、存储过程、表和视图等)能够成功迁移的比例,你可以在左边的树里选择你需要查看的某个对象,比如存储过程,比较Oracle的PL/SQL语法和迁移后的TSQL语法。

图6 评估报告

图7是一个包含有错误的评估报告,当包含错误时,SSMA会估算手工做转换大约需要多少时间,这样你就可以使用评估报告来帮助你做数据库迁移的时间规划。

图7 一个包含错误的评估报告

(未完待续)

软件开发工程师 徐进

Comments

  • Anonymous
    November 21, 2011
    当连接Oracle时提示:Starting conversion... Analyzing metadata...  conversion finished with 0 errors,0 warnings,and 0informational messages. there is nothing to process.

  • Anonymous
    April 14, 2013
    How to create a job for ssma? and on schedule migrate db to mssql.

  • Anonymous
    October 23, 2015
    倘License無註冊,ssma就無法使用嗎? 或者部分功能就會無法正常?

  • Anonymous
    October 23, 2015
    SSMA for Oracle 5.0 Extension Pack.exe必须安装在SQL Server 2008 R2所在服务器 這乙段話不太懂, 本人提問(已裝,sybase11 convert to sqlserver 2005): 1,於192.168.1.116,安裝2003 server+sqlserver2005 2,192.168.1.5,安裝sybase 11,sun450(4100埠) 3,192.168.131.36,裝:win7,sybase client,sql native client 9, ssma v5.3 for sybase(含extension pack,問題:會現於本機找不到sqlserver 執行個體,請問如何排除問題)