1Â Â Â Â Â 迁移须知
此迁移操作手册适用于ORACLE到MSSQL2008R2的表和数据迁移。
迁移使用微软提供的SSMA工具。
供有类似需求的您作为参考。
从微软官方网站下载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
打开软件,建立迁移项目,fileànew project如图,这里选择迁移到SQL SERVER 2008
2.3 第三步:连接到ORACLE源服务器
连接源数据库oracle如图, 点击 connect, 将会加载ORACLE的对象,时间较长,需耐心等待
点击连接,如果你没有安装SSMA for Oracle.5.3.0.ExtPack.exe,会有下图提示,即使没有安装,对于只迁移数据和表结构而言,经测试未产生影响。
例如:
USE master
GO
CREATE DATABASE ORA2SQLT01
GO
2.6 第六步:选择要同步的对象
l 这里特别要注意,只选择表(Tables)
l 评估迁移对象的成功率(Create Report)
如图,先点击Tables,再点击Create Report
这里有个警告,是从NUMBER的转换,需要验证数据才能知晓 另外,可能有索引、外键、主键和触发器迁移评估失败,这个请直接忽略掉。原因请看后面的注意事项。同时遇到这样的错误需要用户自己调整修改。
验证没有问题对象,把结构转换后,写入SQL SERVER MEATDATA中(不是SQL SERVER R2中,是创建的项目中,这个一定要注意),同时可以看到转换的信息,如图:
点击Tables,然后点击Convert Schema
如果目标库存在该对象,就会提示:
如果目标数据库中不存在该对象,就会创建该对象,如果不存在数据库,同样也会在目标实例生成数据库
2.9 第八步: 将SQL SERVER MEATADATA 同步到SQL SERVER 2008 R2服务中
如图:
先点击Tables,再点击Synchronize with Database
点击OK,结构就在SQL SERVER数据库服务中,你就可以看对象了, 这里可以看出来,主键、外键信息都导入过去了。
2.10 第九步:同步数据
选择Oracle Metadata Explore,然后再点击Tables,接着点击Migrate Data
填写ORALCE的连接
填写SQL SERVER的连接
等待数据转换结束,验证一下,时间较长,需耐心等待。
3 参考文档数据库迁移成功后会显示如下信息,这个是微软给的评估,应该说是比较准确的了,不过自己可以选择性验证下,比如:
COUNT(*)验证一下数据的条数
对比差异
从目前来看NUMBER和时间显示的确有点差异,不过应该问题不大
时间格式
ORACLE
SQL SERVER:
[POINTS] [numeric](20, 15)
ORACLE:
SQL SERVER:
暂时没有其他发现有差异的地方,这些差异,用户需要调整程序显示,同时要通过回归测试进行业务订正。
(1)只能全量,没有增量
(2)适合表数据和表结构的转换,触发器、存储过程、函数、试图等转化率还是比较低,需人工干预
(3)特别要注意大小写。Oracle区分大小写,所以SSMA也区分大小写,而SQL SERVER默认设置是不区分
(4)时间类型的字段转化后格式会发生变化、显示样式不一样
(5)NUMBER的小数点精度填充不一样,SQL SERVER会填充到指定的精度
(6)SSMA应用到迁移中的话,还是需要事先做一次迁移演练,测试数据的可用性、确定不能转换的对象,提前建立对应的对象,然后再实施迁移
(7)INDEX包含函数不会成功
(8)ORACLE主键DISABLE后,并且数据产生了重复不会成功
(9)触发器转换成功率很低,一般不会成功,需要人工处理