EntperpriseDB 目前作为Postgre开源数据库的企业发行版,在原开源社区的基础上对postgre进行了扩展(contribute),值得关注的技术有infiniteCache,以及其强大的迁移工具Migration tools;下面我们来简单测试该迁移工具.
通过安装postgreplus-advanced-server软件包,其中将默认包括DBA management Server,DBA monitor Console,Migrate Studio,Replication Tools等一系列管理工具。我们需要用到的是Migrate Studio.
打开Migrate Studio首先定义迁移目标端的Enterprisedb实例,事先已经在主机rh2.home上安装了EnterpriseDB 8.3R2版本,同时创建了名为maclean的数据库(database),使用默认端口5444,新建EDB服务器:
该工具同大多数Oracle管理工具一样使用java驱动,但速度较快显得十分轻量级。
接着我们需要创建源端的Oracle服务器,同样在远程主机rh2.home上建立了Version 10.2.0.1的Oracle EE版数据库实例名为g10r21,Listener监听在端口1521上,尝试创建该服务器时将被要求Oracle JDBC包,该包可以到oracle官方网站下载,之后将该包放置到$EDBHOME/jre/lib/ext目录下;新建Oracle服务器:
之后我们可以尝试将Oracle实例中Scott模式下的对象迁移到enterprisedb中,在此之前我们在该模式下建立简单的存储过程,协同测试。
SQL> create or replace procedure scott.count_emp as
2 c int;
3 begin
4 select count(*) into c from scott.emp;
5 dbms_output.put_line('emp count is '||c);
6 end;
7 /
Procedure created.
SQL> set serveroutput on ;
SQL> exec scott.count_emp;
emp count is 14
PL/SQL procedure successfully completed.
接下来开始进行正式迁移,打开源库Oracle实例的树形图,并找到Scott模式,右键进入在线迁移模式, 目标端服务器为target(rh2.home:5444),指定Maclean数据库,架构(模式)仍为Scott,其他均使用默认设置,点击运行开始迁移:
迁移日志如下:
[Starting Migration]
源数据库连接信息...
连接 =jdbc:oracle:thin:@rh2.home:1521:g10r21
用户 =system
密码=******
目标数据库连接信息...
连接 =jdbc:edb://rh2.home:5444/maclean
用户 =maclean
密码=******
正在导入 Redwood 架构 SCOTT...
正在创建架构...scott
正在创建表...
正在创建表: BONUS
正在创建表: DEPT
正在创建表: EMP
正在创建表: SALGRADE
已创建 4 个表。
正在以 8 MB 批次大小加载表数据...
正在加载表: BONUS ...
表数据加载摘要: 时间总计 (秒): 0.128 行数总计: 0
正在加载表: DEPT ...
已迁移 4 行。
表数据加载摘要: 时间总计 (秒): 0.118 行数总计: 4
正在加载表: EMP ...
已迁移 14 行。
表数据加载摘要: 时间总计 (秒): 0.121 行数总计: 14
正在加载表: SALGRADE ...
已迁移 5 行。
表数据加载摘要: 时间总计 (秒): 0.145 行数总计: 5
数据加载摘要: 时间总计 (秒): 0.512 行数总计: 23 大小总计 (MB): 0.0
正在创建约束: PK_DEPT
正在创建约束: PK_EMP
正在创建约束: FK_DEPTNO
正在创建过程: COUNT_EMP
已成功导入架构 SCOTT。
正在创建用户: SCOTT
迁移过程已成功完成。
迁移日志已保存到 C:\Users\windesk\.enterprisedb\migrationstudio\build60
******************** 迁移摘要 ********************
Tables: 4 来自 4
Constraints: 3 来自 3
Procedures: 1 来自 1
Users: 1 来自 1
全部对象: 9
成功计数: 9
失败计数: 0
*************************************************************
----------------FINISHED---------
迁移过程中没有出现错误,下面我们来测试下之前建立的存储过程:
maclean=# exec count_emp;
emp count is 14
EDB-SPL Procedure successfully complete