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

来源:互联网 发布:php global用法 编辑:程序博客网 时间:2024/05/22 17:46

第一部分:获取工具

      第二部分:建立资料档案库(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,如下图:

image

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

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

建立资料档案库(Migration Repository)

 

      一、连接到Oracle

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

      image

      配置完成后,点击连接按钮,连接到数据库。

      二,建立用户

      打开到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;

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

       image

      连接后,在该连接上点击右键,选择移植资料档案库-关联移植资料档案库,程序会在该用户下建立移植资料档案库所需要的表、存储过程等等,弹出一个对话框显示当前建立的进度,稍等片刻即建立完毕。


数据库移植向导

      一,建立到源SqlServer数据库的连接

      在连接窗口中,点击绿色加号按钮,打开连接配置窗口,按下图建立到SqlServer的连接:

image

      因为动态商品的使用,使得原来SqlServer配置页中默认的1433往往没有办法连接到SqlServer2008数据库,修改为1434即可。

      二、启动数据库移植向导

      建立到SqlServer的连接后,开始对数据库进行移植。有两个地方可以启动数据库移植向导,一个是在新建的SqlServer连接上点击右键,选择移植到Oracle,另一个是在菜单工具-移植-移植,启动向导后,第一页当然是向导的简介,通过简介,我们可以知道整个移植过程有7步,并且有两个先决条件,如下图:

     image

      直接点击下一步。

      三、选择资料档案库

      在这个页面中,我们也可以去建立连接和资料档案库,也就是前一部分中我们所做的工作在这里也可以进行。当然选择我们刚刚建立的migrations连接,如下图:

image

      这里截断的意思是将资料档案库清空,我们建立一个移植项目后,所有抓取的数据库结构信息、统计信息还有转换记录等都保存在这个资料档案库中,只要项目名称不同,即使不清空资料档案库也不会影响到移植工作。当然,如果希望更“清爽”一点,也可以勾选。这是后话。

      四、为转换项目命名

      选择好资料档案库后,点击下一步,为我们的转换项目输入名称和备注,以便识别。另外,还需要指定脚本生成目录,用于存放向导执行过程中生成的脚本。

      五、选择源数据库连接

      然后继续下一步,选择源数据库,在这里有联机和离线两种模式,联机即是直接连接到源数据进行抓取,而离线则是在SqlDeveloper不直接连接到源数据库的情况下,通过SqlDeveloper提供的脚本预先捕获数据库,得到数据库结构文件后,通过向导导入。

      这里当然是选择我们刚才建立的SqlServer连接。

      六、选择捕获源数据库

      在这一步中,显示为两个多选框,左边列出Sql Server中所有可选的数据库,通过中间的按钮将数据库移动到右边的已选数据库中。如下图:

image

      七、数据类型转换选项

      在这一页中,列出了所有系统内置的数据类型转换对应关系。可以其进行修改,一般不作修改直接下一步。如下图:

image

      八、选择目标数据库

      与源数据库的选择一样,目标数据库的选择同样也有联机和离线两种方式。仍旧选择联机。选择orcl(migrations)连接。

      九、移动数据选项

      这个页面中,也提供了联机或离线两种方式进行数据移动。所谓联机虽然“据说”可以直接以联机的方式从源数据库中移动数据到Oracle中,可我试过几次没有成功,原因不明。最终我选择了离线的方式进行数据移动。所谓离线移动数据,是在我们指定的脚本存放目录中生成“数据移动”脚本,分别在源数据库中卸载数据(即导出)和在目标数据库中加载数据。选择好后,点击下一步

      十、选项完毕,开始执行

      在向导的最后,是一个用于确认的“概要”页面。确认无误后,点击完成。移植将会开始执行。

image


0 0
原创粉丝点击