Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

时间:2022-11-19 07:47:32

首先到微软官方网站寻找 下载      SSMA(Sql Server迁移助手)

步骤1: 先安装Oracle 11g   和 Sql  Server 2008

步骤2:下载SSMA,  或者向我勒索  ,然后安装……

步骤3: 打开各种所需的服务(怎么打??????Win+R-------->>>services.msc---------->>>Enter)

步骤4: 如果你有一个  dmp 文件(这是从Oracle导出来的一个 备份的文件) ,先将他导入到Oracle中

怎么导入呢????

如图:    1.建议先创建一个用户  Create user  用户名  identified by  密码

       2.授权

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

接着,可以打开命令行,可不是打开 Sqlplus 哦

如图  imp userid=(上面创建的)用户名/ 密码 full=y file=文件路径

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

步骤5:你导入完成了没?  不知道 你数据量多少哦!   反正我话个把小时转完了……

步骤6:打开 SSMA

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

新建一个项目

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

步骤7:就此,基本完成了,然后就是 Click  Connect to Oracle

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

步骤8:接下来 看看SQL中国研发中心的Blog:http://blogs.msdn.com/b/sqlcrd/  你会懂的;

步骤9:想想我顺便贴出来一下,免得大家麻烦

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了。

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图1  License Management对话框

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

Sql Server迁移助手(SSMA) 将Oracle数据库转成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所示。

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图3 Project Settings对话框

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

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图4 连接到Oracle服务器

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

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图5 评估HR数据库

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

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图6 评估报告

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

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

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

首先我们需要连接目标数据库,点击工具条上的Connect to SQL Server,输入Server name,在Database里输入HR,如图1所示。如果你的SQL Server里不存在HR数据库,点击Connect后SSMA会提示错误,问你是否创建HR数据库,选择Yes。HR数据库创建后SSMA可能会提示SQL Server Agent未运行,这仅在使用服务器端数据迁移时才会用到,默认情况下我们使用的是客户端数据迁移,所以可以点击Continue忽略。 

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图1 连接到SQL Server服务器

连接上SQL Server服务器后我们就可以迁移Schema了,这里的Schema指数据以外的数据库定义,比如表结构、视图定义、存储过程等等。右键单击Oracle Metadata Explorer里的HR数据库,选择Convert Schema,如图2所示。SSMA运行一段时间后会在最下方的Output栏里显示转换是否有错误、警告或信息。这时你可以展开SQL Server Metadata Explorer里HR数据库的dbo schema,在Procedures文件夹下会发现ADD_JOB_HISTORY等存储过程,Tables文件夹下会发现COUNTRIES等表,说明Schema的迁移已经成功。

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图2 转换Schema

如果这时你使用SQL Server客户端工具SQL Server Management Studio或者Visual Studio的Server Explorer查看SQL Server上的HR数据库,你会发现找不到前面所说的存储过程、表或者视图。这是因为Convert Schema菜单项只是在SSMA的Project里进行了转换,并未转换到数据库。这么设计为了让你可以在同步到SQL Server之前再做些其他修改,比如REGIONS表里的REGION_ID列在Oracle里是NUMBER类型,它被SSMA转换成了最安全的float(53)类型,如果你知道REGION_ID就是个整形,你可以把它修改为int类型,当然你最好对COUNTRIES表的REGION列也做同样的修改。

在确认Schema迁移没有问题后,你可以同步到SQL Server数据库了,在SQL Server Metadata Explorer里右键点击HR数据库,选择Synchronize with Database,如图3所示。

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图3 同步HR数据库到SQL Server

这时可能会再次弹出SQL Server连接对话框和SQL Server Agent未运行的警告,确认后会显示Synchronize with the Database对话框,如图4所示。对话框里列出了SQL Server数据库和SSMA的树结构的差别,可以选择Hide Equal Objects来过滤掉两边相同的对象。由于我们连接的是新创建的HR数据库,所以左侧显示的都是 [Not Found] 状态,如果你之前做过同步这里会显示不同的状态,这里我们点击OK继续。等待右下角的进度条走完,留意主窗口Output栏是否报错,没有报错的话SQL Server里的对象应该已经创建好了。 

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图4 Synchronize with the Database对话框

再次使用SQL Server Management Studio或者Visual Studio来查看HR数据库中的对象,会发现一些$SSMA打头的表或者存储过程等,这些是迁移一些特殊对象(比如Oracle的Sequence对象)所创建出来的辅助对象。

在成功迁移了Schema之后,我们就可以来进行迁移的最后一步:数据迁移。有了SSMA的帮助数据迁移也非常简单,右键点击Oracle Metadata Explorer里的HR数据库,选择Migrate Data,如图5所示。SSMA会再次提示Oracle和SQL Server的连接信息,如果之前做过数据迁移可能会有数据覆盖的警告信息,如果有点击Continue继续。

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图5 数据迁移

如果你的数据库数据比较多,SSMA会运行较长一段时间,在这过程中你可以随时点击工具栏上的Stop按钮来停止数据迁移。迁移结束后,SSMA会有一个数据迁移报告,如图6所示。该报告描述了迁移过程中那些表的数据被成功迁移,多少行数据被迁移以及耗时多少等等。 

Sql Server迁移助手(SSMA) 将Oracle数据库转成Sql Server 2008

图6 数据迁移报告

本文简单介绍了如何使用SSMA for Oracle 5.0来帮助我们把一个Oracle数据库迁移到SQL Server数据库,包括迁移评估、Schema迁移以及数据迁移。

大功告成!!!!!!!!