使用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
- 使用ora2pg完成从oracle到postgresql的迁移工作
- Mac上使用Ora2Pg迁移Oracle到PostgreSQL
- Oracle迁移到PostgreSQL的一些经验
- 今天完成了工程从JBuilder迁移到Eclipse的工作
- postgresql数据库迁移到oracle
- Oracle迁移到PostgreSQL问题
- Cocolog 从 PostgreSQL 迁移到 MySQL 的经验
- 通过Ruby完成从MoveableType到.Text的迁移
- 【解决问题】完成从Mysql到SQLite数据库的整体迁移
- 把数据库从MYSQL迁移到POSTGRESQL
- PostgreSQL 数据迁移 (从Mysql到Postgres)
- 从MySQL迁移到Oracle
- 从 Oracle 迁移到 DB2
- 从 MySQL 迁移到 Oracle
- 使用OGG完成Tandem到DB2 UDB的初始化迁移
- 使用ibatis将数据库从oracle迁移到mysql的几个修改点
- 使用传输表空间的方法来迁移oracle 数据库从SPARC到X86-64
- Sqoop学习笔记 --- 使用Sqoop 对 Oracle 做数据迁移 到 PostgreSQL
- Xcode7 真机调试出现 "The account 'Apple ID' has no team with ID 'team ID'的解决方案
- ionic 设置标题或菜单栏的属性
- 太原UI设计师及web前端师郭文军讲网页中网格布局思路?
- Java 标准计算器(使用SWT做界面)
- msql修改字符编码
- 使用ora2pg完成从oracle到postgresql的迁移工作
- 欢迎使用CSDN-markdown编辑器
- 成本控制、挣值分析
- Xcode 的蛋疼---描述文件出错
- MVC连接SQL Server2008遇到的问题
- 用oracle database作为hvr的hub的一个注意点
- 【Android】【xUtils3网络下载图片的简单操作】
- 【一起学AngularJS】第六章、双向数据绑定
- Linux中限制用户访问权限的3种方法