使用ora2pg完成从oracle到postgresql的迁移工作

来源:互联网 发布:网络情歌排行 编辑:程序博客网 时间:2024/05/16 09:22

使用Ora2Pg实现从oracle平台往postgres平台的迁移ora2pg这个软件是通过perl语言来实现数据库的连接与同步的PERL语言一直是90年代开发CGI程序的首选语言。因为那个时代Python/Ruby/PHP这类相对“高级”的脚本语言尚属幼年或着根本没有出生;而用C/C++来开发CGI,灵活性则又太差。PERL以其快速的开发周期,灵活的语法定义和能充分扩展模块机制,在那个Web应用才刚刚开始的火热年代,领尽了风骚。Web开发,不外乎两点,一为版面,一为内容。论版面,PERL的CGI模块功能强大,又简单易用,短短数行,便能动态生成HTML网页。而论内容,那么必然会用到数据库,用数据库来管理内容。PERL对数据库的支持广而且全,几乎所有的主流数据库都有与之相应的PERL模块支持。为了开发可在不同数据库上移植的PERL应用,DBI(DataBase Interface)模块应运而生,使用这个模块,应用只需使用统一的接口便能操作不同的数据库,真正实现了可移植;当然,这个DBI也配备有相应的开关来支持不同数据库的各种特性,每一个数据库都能单独成文,本篇暂不涉及这此点。DBI只是个抽象层,要实现支持不同的数据库,则需要在DBI之下,编写针对不同数据库的驱动。对MySql来说,有DBD::Mysql, 而对Oracle来说,则是DBD::Oracle。其中的DBD这是DataBase Driver之简写。查看perl的版本perl -vThis is perl, v5.10.1 (*) built for x86_64-linux-thread-multiCopyright 1987-2009, Larry WallPerl may be copied only under the terms of either the Artistic License or theGNU General Public License, which may be found in the Perl 5 source kit.Complete documentation for Perl, including FAQ lists, should be found onthis system using "man perl" or "perldoc perl".  If you have access to theInternet, point your browser at http://www.perl.org/, the Perl Home Page.安装DBItar xvf DBI-1.627.tar cd DBI-1.627perl Makefile.PL makemake testmake install安装DBD:oraclecd /tmptar zxf DBD-Oracle-1.64.tar cd DBD-Oracle-1.64export  ORACLE_HOME=/u01/app/oracle/product/11.2.0/db; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;perl Makefile.PL makemake testmake install安装DBD:pgexport POSTGRES_HOME=/usr/local/pgsqlexport POSTGRES_INCLUDE=/usr/local/pgsql/includeexport POSTGRES_LIB=/usr/local/pgsql/lib检查验证系统中安装了哪些Perl modulescheck.pl脚本#!/usr/bin/perluse strict;use ExtUtils::Installed; my $inst=ExtUtils::Installed->new(); my @modules = $inst->modules(); foreach(@modules){        my $ver = $inst->version($_) || "???";        printf("%-12s -- %s\n",$_,$ver);}[03:05:49 root(db)@enmorep ~]# perl perl.pl DBD::Oracle  -- 1.74DBI          -- 1.627Perl         -- 5.10.1安装Ora2Pg软件tar -zxvf ora2pg-12.1.tar.gz makemake installcd /etc/ora2pg/cat ora2pg.conf.distORACLE_HOME/u01/app/oracle/product/11.2.0/dbORACLE_DSNdbi:Oracle:host=10.211.55.4;sid=enmoORACLE_USERsystemORACLE_PWDoracleSCHEMASCOTTTYPE TABLE DATAPG_NUMERIC_TYPE    0PG_INTEGER_TYPE    1DEFAULT_NUMERIC floatSKIP    fkeys pkeys ukeys indexes checksNLS_LANG    AMERICAN_AMERICA.UTF8PG_DSN        dbi:Pg:dbname=test;host=127.0.0.1;port=5432PG_USER    kiwiPG_PWD    kiwiOUTPUT        output.sql这儿我们需要注意的是,他只同步的是表的数据,所以我们要先创建好表的定义才行[20:04:22 root(db)@enmorep ora2pg]# ora2pg -c table.conf[========================>] 5/5 tables (100.0%) end of scanning.      [>                        ] 0/5 tables (0.0%) end of scanning.        [========================>] 5/5 tables (100.0%) end of table export.[========================>] 0/0 rows (100.0%) Table BONUS (0.0 recs/sec)[>                        ]  0/24 rows (0.0%) on total data (avg: 0.0 recs/sec)[========================>] 4/4 rows (100.0%) Table DEPT (4.0 recs/sec)        [====>                    ]  4/24 rows (16.7%) on total data (avg: 4.0 recs/sec)[========================>] 14/14 rows (100.0%) Table EMP (14.0 recs/sec)       [==================>      ] 18/24 rows (75.0%) on total data (avg: 18.0 recs/sec)[========================>] 5/5 rows (100.0%) Table SALGRADE (5.0 recs/sec)      [=======================> ] 23/24 rows (95.8%) on total data (avg: 23.0 recs/sec)[========================>] 1391776/1 rows (139177600.0%) Table TEST (4256.2 recs/sec)[========================>] 24/24 rows (100.0%) on total data (avg: 0.1 recs/sec)     


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 踏板摩托车淋雨打不着火怎么办 购房小蓝本丢了怎么办 3d下载模型没颜色怎么办 车辆被扣30分怎么办 驾驶证被扣15分怎么办 驾驶本被扣分了怎么办 违章扣分扣错了怎么办 出国自驾游怎么办手续 新加坡开车工作遇到坏人怎么办 身份证户口本都丢了怎么办 户口本和身份证都丢了怎么办 网上预约挂完号没收到短信怎么办 驾驶证过了换证期限怎么办 身体弱末梢神经循环不好怎么办 自来水钙镁离子超标怎么办 呼吸感觉有煤烟味是怎么办 酒精弄到衣服上怎么办 孕妇吃了糟卤怎么办 气泡机打不了气怎么办 膝盖好冷好凉怎么办吃什么好 卸妆水进眼睛了怎么办 外出没带卸妆水怎么办? 种睫毛卸睫膏弄眼睛里面了 怎么办 化了妆没卸妆水怎么办 痘痘变成了黑痣怎么办 痘痘形成的痣怎么办 图片文件重命名改不了怎么办 想给宝宝改名字怎么办 洗照片像素过低怎么办 用ps改尺寸照片变形怎么办 平安银行卡三次密码错误怎么办 平安银行卡密码忘了怎么办 平安银行行用卡多次还款怎么办 平安银行大润发卡还不上怎么办 八载图片被投诉怎么办 ps用替换颜色后怎么办 三星s8百度闪退怎么办 吃了过敏的东西怎么办 过敏了痒的厉害怎么办 脸吃麻辣过敏了怎么办 脸过敏发红痒怎么办急救