更换数据库 no way?一招鲜吃遍天,最详细图文教学——SQL server转换Oracle

Hi,i am Toni.

继上一篇文章至今,过了好久,身份也从学生转换为上班族,因为个人原因也迟迟没有心思整理这两年来的收获心路历程。想着之前在物联沃这边分享过一些自己的小玩意,选择回来这边发,分享给有缘人。

说到转换,刚好今天这篇也提到转换一词,不过是在数据库转换领域方面的,也算一个小的工作经历吧。

芸芸人海相聚此处,希望可以帮到你。

致各位看官

转换流程模式:SQL server源数据库——>达梦数据库(中间库)——>Oracle目标库

生产环境(本地独立设备)

生产工具

SQL server 2012(源数据库)

达梦数据库(中间库)

Oracle 11g R2(目标库)

注:达梦数据库试了windows server 2008 、2012都安装不了,估计是版本太低了。感兴趣的朋友可以将成功的版本或条件留在文章评论,本人最后直接用笔记本的win10安装成功


源数据库准备

首先,准备好SQL server源库,实例名Magisk


中间库

安装达梦数据库,达梦数据库,【简体中文】【确定】【开始】

默认接受,【下一步】

这里的key文件可以不需要输入,达梦数据库在本次转换中只是单纯扮演Oracle与SQL server的中间媒介角色,并且转换环境是在本地设备,不作为数据的最终运行环境。【下一步】

选择【典型安装】,自动全选,【下一步】。同样,作为中间库不选择服务器安装。

自行选择安装路径,选完【下一步】

检查信息【典型安装】【安装路径】【磁盘空间是否富余】,无问题点击【安装】

安装完数据库,这里可能要等一会才弹出来数据库初始化,点击【初始化】,这个初始化过程会等上一段时间

初始化完,自动弹出数据库配置助手如下图,选择【创建实例】(如果等十分钟都没弹出,自行在开始菜单找到达梦数据库-启动数据库配置助手)

选择【一般用途】【下一步】

这里可以自己选实例存放路径,默认数据库根目录\data

实例名默认即可,这里的端口号5236是达梦它自己数据库监听实例的端口号,相当于Oracle默认的1521,SQL server默认的1433,配置完【下一步】

默认【下一步】

这里很关键,一共三点:

1、页大小一定要选择最大的数值,我的最大是32K。(数值大代表申请的内存性能大,为转换提供足够的内存,包括物理内存不足时硬盘跑虚拟内存也会更友好)

2、【字符串比较大小写敏感】‘不勾选’,如图示

3、【VARCHAR类型以字符为单位】‘勾选’,如图示

其余默认不变,【下一步】

这里我选择统一口令,设置完【下一步】

示例库啥都不需要选,点【下一步】

检查一下端口号是不是5236或是自己定义的,没问题就点【完成】

等待实例创建完成

提示创建成功,点继续或者完成,这里已经不需要配置助手了。

接下来,在开始菜单找到【DM管理工具】

使用SYSDBA管理员用户登陆

与Oracle类似,需建立表空间、用户以及授权用户

/* 创建表空间以及物理数据文件存放路径 */

create tablespace DAMENG datafile 'D:\dmdbms\data\DAMENG\DAMENG.DBF' size 512 autoextend on next 100 CACHE = NORMAL;

/* 创建Magisk 用户并指定表空间DAMENG */

create user Magisk identified by 123456789
default tablespace DAMENG
default index tablespace DAMENG;

/* 授权Magisk用户管理员权限以及数据增删改查权限 */

grant resource,dba to Magisk;
grant create table,select table,update table,insert table to Magisk;

表空间、用户配置完成。


开始正式迁移工作

SQL server转换至达梦中间库

打开【DM数据迁移工具】(开始菜单达梦数据库找)

打开后,在左侧的迁移管理空白处右键,新建工程

建完工程,找到迁移,新建sql-达梦的迁移

建完迁移后,会自动打开这个迁移,点击【下一步】

找到SQL server ==> DM7,点击【下一步】

配置SQL server的数据源,本教程是本地转换,主机名也可以输入网络ip连接服务器的源数据库,【下一步】

目的库,主机名与上面数据源同理。配置完【下一步】

指定模式,这个概念简单理解就是表的权限,源模式指的是源库中表的权限为dbo(全数据库权限),目的模式指的是接收库的源模式,我这里直接双击目的模式,改成了MAGISK模式,是直接用了Oracle目标库的源模式,这样我们在达梦转换至Oracle时就不用再转变源模式了。(当然如果后续在转Oracle时还可以再修改指定目的模式)选择后【下一步】

这里列出了所有源库中的表以及转后后对应的模式以及表名,直接点红框的【选择】,会默认全选,然后【下一步】

检查迁移任务,这里检查一下主机名,端口,实例。还有就是右下方的【同步生成迁移日志】这个可以勾选,勾选之后,在log文件夹会生成一个迁移日志,方便查看整个迁移过程信息

焦急等待……

这里提示迁移完成,可以在源模式以及表空间看到迁移到达梦中间库的表数据,可以点保存迁移错误日志方便自己查阅错误信息,等到转换完Oracle再统一集中处理。

达梦中间库转换至Oracle

同样新建一个迁移,从达梦中间库转换至Oracle目标库,前提是Oracle目标库应为空库。多次一线实施经验反馈这一步迁移出错率非常高,所以要保证Oracle目标库为空库,提高迁移成功率,可以Oracle执行sql语句[drop user Oracle用户名 cascade]擦拭接收数据的实例用户名所有文件

默认【下一步】

找到DM7 ==> Oracle,点击【下一步】

这里的数据源是达梦中间库,配完【下一步】

目标库,填Oracle的主机,端口,实例名,角色默认,输入用户和口令,【下一步】

目的模式这里同样可以双击进行编辑,如果这里的源模式就是Oracle数据库所需要的模式,则直接与源模式一致即可。

准备表对象,直接点选择,【下一步】

检查接收库有无问题,【下一步】

正在转换至Oracle……从多次实施的经验来看,这一步应该是错误信息最多的一步。静候完成。

提示完成,报错迁移日志,对错误进行分析,填坑补漏。

迁移成功,此时中间库转换至Oracle目标库已经完成99%了。

剩下的就是解决迁移错误

这里就不展开讨论,都是填坑补漏的导入表或修改字段等等,等之后有时间了,再写一篇关于配置Oracle数据源实现SQL server与Oracle数据导入传输的文章。

最后总结,SQL server转换至Oracle整个流程比较简单,难点有二,一是在于迁移时源库、中间库、目标库它们模式有各自区别,因源库建表时用户权限不同,在转换至目标库时要做对应的处理,这个很关键,直接影响的是目标库表使用权限的问题。

二是安装数据库时的性能配置要合理一些,另外做迁移所使用的机器性能也相对较高,三个数据库服务,生成的迁移日志(以GB为单位),源库(这里测试的数据库不算大,4G左右)。所以机器性能上限高,迁移成功率也越高。

 

所以朋友,你今天到上限了吗?

——End——

关注夜猫笔记,了解最新万物智联资讯

物联沃分享整理
物联沃-IOTWORD物联网 » 更换数据库 no way?一招鲜吃遍天,最详细图文教学——SQL server转换Oracle

发表评论