sqlserver向oracle数据库移植

发布时间 : 星期三 文章sqlserver向oracle数据库移植更新完毕开始阅读

使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g

上一次,我使用手工转换SQL脚本的方式进行数据库的迁移,其间过程相当繁琐,特别是标识符长度的限制让我焦头烂额,因为我们的系统中长标识符真是多如繁 星,另外,表结构建好之后,数据的迁移又是一个相当复杂的过程,因为修改了不少的表名,需要把导出的数据和表一一对应上。

但是,除了手工的方式之外,其实我们还有更为简便和自动化的解决方案,那就是ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench。 什么是Oracle SQL Developer?在官方页面上,是这样介绍它的:

Oracle SQL Developer is a free and fully supported graphical tool for database development. With SQL Developer, you can browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. You can also run any number of provided reports, as well as create and save your own. SQL Developer enhances productivity and simplifies your database development tasks .

另外,通过第三方驱动包,该工具还支持连接和管理各种主流数据库服务器。 下面就把我使用这个工具迁移Microsoft SQL Server 2008数据库到Oracle 11G的过程记录下来,为了积累也为分享。

第一部分:获取工具

第二部分:建立资料档案库(Migration Repository) 第三部分:数据库移植向导

第四部分:SqlServer中的架构到Oracle中的模式,名称的处理 第五部分:转移数据

第六部分:存储过程和函数

首先,当然是获得工具,该工具在Oracle Sql Developer官方下载页面里面可以直接下载到。Windows 32位直连地址:Windows 32bit Sql Developer。Oracle Sql Developer需要JDK的支持,在下载页面中提供了包含JDK的下载包,还有支持各种操作系统的下载选项。

下载后,解压到任意位置。直接运行程序。第一次运行,需要指定JDK的目录。

启动后,我们要做的第一件事,不干别的,先下载SQL SERVER的驱动程序。点击菜单帮助,选择检查更新,弹出检查更新向导窗口,第一页一般是废话,直接下一步,等更新中心列表加载完毕后,只选择“Third Party SQL Developer extensions”,点击下一步,等待更新搜索完毕后,中列表中找到并选中 JTDS JDBC Driver,如下图:

下一步,在许可协议页面,点击“我同意”按钮后再点下一步,等下载完毕后关闭窗口,弹出提示需要重启程序才能完成更新,点击“是”。等程序重启完毕。

环境准备完毕,开始进入到正题移植数据库。

建立资料档案库(Migration Repository)

一、连接到Oracle

在程序左边的连接窗口中,点击加号按钮,添加一个到Oracle数据库的dba连接,如下图:

配置完成后,点击连接按钮,连接到数据库。 二,建立用户

打开到Oracle数据的连接,新建一个用户,我们要在该用户的模式中建立所谓的“资料档案库”,并使用该用户去建立SQL Server移植后的用户名,以及做其它的一些工作。按照帮助中的说明,这个用户最少需要以下权限和角色: Roles

CONNECT WITH ADMIN OPTION,RESOURCE WITH ADMIN OPTION Privileges

ALTER ANY ROLE,ALTER ANY SEQUENCE,ALTER ANY TABLE,ALTER TABLESPACE,ALTER ANY TRIGGER,COMMENT ANY TABLE,CREATE ANY SEQUENCE,CREATE ANY TABLE,CREATE ANY TRIGGER,CREATE VIEW WITH ADMIN OPTION,CREATE PUBLIC SYNONYM WITH ADMIN OPTION,CREATE ROLE

CREATE USER,DROP ANY SEQUENCE,DROP ANY TABLE,DROP ANY TRIGGER,DROP USER,DROP ANY ROLE,GRANT ANY ROLE,INSERT ANY TABLE,SELECT ANY TABLE,UPDATE ANY TABLE

以下语句直接建立一个名为migrations的用户: -- Create the user create user MIGRATIONS identified by MIGRATIONS default tablespace USERS temporary tablespace TEMP profile DEFAULT;

-- Grant/Revoke role privileges

grant connect to MIGRATIONS with admin option; grant resource to MIGRATIONS with admin option; -- Grant/Revoke system privileges grant alter any role to MIGRATIONS; grant alter any sequence to MIGRATIONS; grant alter any table to MIGRATIONS; grant alter any trigger to MIGRATIONS; grant alter tablespace to MIGRATIONS; grant comment any table to MIGRATIONS; grant create any sequence to MIGRATIONS; grant create any table to MIGRATIONS; grant create any trigger to MIGRATIONS; grant create any view to MIGRATIONS;

grant create materialized view to MIGRATIONS with admin option; grant create public synonym to MIGRATIONS with admin option; grant create role to MIGRATIONS;

grant create session to MIGRATIONS with admin option; grant create synonym to MIGRATIONS with admin option; grant create tablespace to MIGRATIONS; grant create user to MIGRATIONS;

grant create view to MIGRATIONS with admin option; grant drop any role to MIGRATIONS; grant drop any sequence to MIGRATIONS; grant drop any table to MIGRATIONS; grant drop any trigger to MIGRATIONS; grant drop tablespace to MIGRATIONS; grant drop user to MIGRATIONS; grant grant any role to MIGRATIONS; grant insert any table to MIGRATIONS; grant select any table to MIGRATIONS;

grant unlimited tablespace to MIGRATIONS with admin option; grant update any table to MIGRATIONS;

再次点击连接中的加号按钮,添加一个使用刚刚新建立的用户的连接。

联系合同范文客服:xxxxx#qq.com(#替换为@)