Oracle 迁移至MSSQL2008R2操作手册-仅供参考

1      迁移须知

此迁移操作手册适用于ORACLE到MSSQL2008R2的表和数据迁移。

迁移使用微软提供的SSMA工具。

供有类似需求的您作为参考。

2      迁移步骤

2.1      第一步: 下载并安装SSMA软件和ORACLE客户端

 

从微软官方网站下载SSMA 5.3软件

SSMA for Oracle.5.3.0.exe 安装在WINDOWS平台上

SSMA for Oracle.5.3.0.ExtPack.exe 安装在SQL SERVRE 2008 R2上(即需要迁移到目的端的SQL SERVER上,功能是创建一些辅助运行需要的数据库表和存储过程等)

下载并安装ORACLE CLIENT

从ORACLE官网下载与操作系统匹配的ORALCE客户端软件

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

 

2.2      第二步:新建迁移项目

 

打开软件,建立迁移项目,fileànew project如图,这里选择迁移到SQL SERVER 2008

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

2.3      第三步:连接到ORACLE源服务器

 

连接源数据库oracle如图, 点击 connect, 将会加载ORACLE的对象,时间较长,需耐心等待

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

 

2.4      第四步:连接目标数据库SQL SERVER目的端


Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

点击连接,如果你没有安装SSMA for Oracle.5.3.0.ExtPack.exe,会有下图提示,即使没有安装,对于只迁移数据和表结构而言,经测试未产生影响。

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

 

2.5      第五步:在SQL SERVER目的端创建对应的数据库名

 

例如:

 

USE master

GO

CREATE DATABASE ORA2SQLT01

GO

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

l  这里特别要注意,只选择(Tables)

l  评估迁移对象的成功率(Create Report)

 

如图,先点击Tables,再点击Create Report

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

这里有个警告,是从NUMBER的转换,需要验证数据才能知晓 另外,可能有索引、外键、主键和触发器迁移评估失败,这个请直接忽略掉。原因请看后面的注意事项。同时遇到这样的错误需要用户自己调整修改。

 

 

2.8      第七步:结构转换

 

验证没有问题对象,把结构转换后,写入SQL SERVER MEATDATA中(不是SQL SERVER R2中,是创建的项目中,这个一定要注意),同时可以看到转换的信息,如图:

点击Tables,然后点击Convert Schema

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

如果目标库存在该对象,就会提示:

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

如果目标数据库中不存在该对象,就会创建该对象,如果不存在数据库,同样也会在目标实例生成数据库

 

 

2.9      第八步: 将SQL SERVER MEATADATA 同步到SQL SERVER 2008 R2服务中

如图:

先点击Tables,再点击Synchronize with Database

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考


 

点击OK,结构就在SQL SERVER数据库服务中,你就可以看对象了, 这里可以看出来,主键、外键信息都导入过去了。

 


 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

选择Oracle Metadata Explore,然后再点击Tables,接着点击Migrate Data

 


 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

填写ORALCE的连接

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

填写SQL SERVER的连接

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

等待数据转换结束,验证一下,时间较长,需耐心等待。

数据库迁移成功后会显示如下信息,这个是微软给的评估,应该说是比较准确的了,不过自己可以选择性验证下,比如:


COUNT(*)验证一下数据的条数

 

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

对比差异

从目前来看NUMBER和时间显示的确有点差异,不过应该问题不大

 

时间格式

ORACLE

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

SQL SERVER:

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

 

[POINTS] [numeric](20, 15)

 

ORACLE:

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

SQL SERVER

Oracle 迁移至MSSQL2008R2操作手册-仅供参考

 

暂时没有其他发现有差异的地方,这些差异,用户需要调整程序显示,同时要通过回归测试进行业务订正。

 

3    参考文档

4      注意事项


(1)只能全量,没有增量
(2)适合表数据和表结构的转换,触发器、存储过程、函数、试图等转化率还是比较低,需人工干预
(3)特别要注意大小写。Oracle区分大小写,所以SSMA也区分大小写,而SQL SERVER默认设置是不区分
(4)时间类型的字段转化后格式会发生变化、显示样式不一样
(5)NUMBER的小数点精度填充不一样,SQL SERVER会填充到指定的精度
(6)SSMA应用到迁移中的话,还是需要事先做一次迁移演练,测试数据的可用性、确定不能转换的对象,提前建立对应的对象,然后再实施迁移
(7)INDEX包含函数不会成功
(8)ORACLE主键DISABLE后,并且数据产生了重复不会成功
(9)触发器转换成功率很低,一般不会成功,需要人工处理

 

 

上一篇:乐视云监控数据存放到influxdb中


下一篇:程序从MYSQL迁移ORACLE注意事项之一