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
Comment