ora2pg是一款免费迁移工具,能将oracle迁移到pg,简单使用并记录过程如下
环境:
虚拟机 oracle linux 7.7
oracle 11GR2 11.2.0.4
pg 13.1
Ora2Pg v21.0
安装ora2pg
安装perl依赖
ora2pg是Perl语言编写的,所以需要先安装相关环境依赖
[root@localhost ~]$ yum install -y perl perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker Loaded plugins: langpacks, ulninfo Resolving Dependencies --> Running transaction check ---> Package perl.x86_64 4:5.16.3-294.el7_6 will be updated ---> Package perl.x86_64 4:5.16.3-297.el7 will be an update (省略中间...) Dependency Installed: gdbm-devel.x86_64 0:1.10-8.el7 libdb-devel.x86_64 0:5.3.21-25.el7 perl-ExtUtils-Install.noarch 0:1.58-297.el7 perl-ExtUtils-Manifest.noarch 0:1.61-244.el7 perl-ExtUtils-ParseXS.noarch 1:3.18-3.el7 perl-IPC-Cmd.noarch 1:0.80-4.el7 perl-Locale-Maketext.noarch 0:1.23-3.el7 perl-Locale-Maketext-Simple.noarch 1:0.21-297.el7 perl-Module-CoreList.noarch 1:2.76.02-297.el7 perl-Module-Load.noarch 1:0.24-3.el7 perl-Module-Load-Conditional.noarch 0:0.54-3.el7 perl-Module-Metadata.noarch 0:1.000018-2.el7 perl-Params-Check.noarch 1:0.38-2.el7 perl-Perl-OSType.noarch 0:1.003-3.el7 perl-Test-Harness.noarch 0:3.28-3.el7 perl-devel.x86_64 4:5.16.3-297.el7 perl-version.x86_64 3:0.99.07-6.el7 pyparsing.noarch 0:1.5.6-9.el7 systemtap-sdt-devel.x86_64 0:4.0-13.0.1.el7 Updated: perl.x86_64 4:5.16.3-297.el7 Dependency Updated: perl-libs.x86_64 4:5.16.3-297.el7 Complete! [root@localhost ~]$
安装DBI
DBI,Database Independent Interface,是Perl语言连接数据库的接口
下载地址https://metacpan.org/release/DBI 下载出DBI-1.643.tar.gz
然后解压安装
[root@localhost /usr/local]$ tar -xzvf DBI-1.643.tar.gz [root@localhost /usr/local/DBI-1.643]$ cd DBI-1.643/ [root@localhost /usr/local/DBI-1.643]$ perl Makefile.PL [root@localhost /usr/local/DBI-1.643]$ make [root@localhost /usr/local/DBI-1.643]$ make install
安装DBD::Oracle模块
安装DBD-Oracle驱动,下载地址https://metacpan.org/pod/release/PYTHIAN/DBD-Oracle-1.74/lib/DBD/Oracle.pm,下载出DBD-Oracle-1.74.tar.gz
[root@localhost /usr/local/DBD-Oracle-1.74]$ tar -zxvf DBD-Oracle-1.74.tar.gz [root@localhost /usr/local/DBD-Oracle-1.74]$ cd DBD-Oracle-1.74/ [root@localhost /usr/local/DBD-Oracle-1.74]$ perl Makefile.PL [root@localhost /usr/local/DBD-Oracle-1.74]$ make [root@localhost /usr/local/DBD-Oracle-1.74]$ make install
安装DBD-Pg
安装DBD-Pg驱动,下载地址https://metacpan.org/release/DBD-Pg,下载出DBD-Pg-3.14.2.tar.gz
[root@localhost /usr/local]$ cd DBD-Pg-3.14.2/ [root@localhost /usr/local]$ perl Makefile.PL [root@localhost /usr/local]$ make [root@localhost /usr/local]$ make install
安装ORA2PG
下载地址https://sourceforge.net/projects/ora2pg/
[root@localhost /usr/local]$ cd ora2pg-21.0/ [root@localhost /usr/local/ora2pg-21.0]$ ls changelog doc INSTALL lib LICENSE Makefile.PL MANIFEST packaging README scripts [root@localhost /usr/local/ora2pg-21.0]$ perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Ora2Pg Done... ------------------------------------------------------------------------------ Please read documentation at http://ora2pg.darold.net/ before asking for help ------------------------------------------------------------------------------ Now type: make && make install [root@localhost /usr/local/ora2pg-21.0]$ make cp lib/Ora2Pg.pm blib/lib/Ora2Pg.pm cp lib/Ora2Pg/GEOM.pm blib/lib/Ora2Pg/GEOM.pm cp lib/Ora2Pg/PLSQL.pm blib/lib/Ora2Pg/PLSQL.pm cp lib/Ora2Pg/MySQL.pm blib/lib/Ora2Pg/MySQL.pm cp scripts/ora2pg blib/script/ora2pg /usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/ora2pg cp scripts/ora2pg_scanner blib/script/ora2pg_scanner /usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/ora2pg_scanner Manifying blib/man3/ora2pg.3 [root@localhost /usr/local/ora2pg-21.0]$ make install Installing /usr/local/share/perl5/Ora2Pg.pm Installing /usr/local/share/perl5/Ora2Pg/GEOM.pm Installing /usr/local/share/perl5/Ora2Pg/PLSQL.pm Installing /usr/local/share/perl5/Ora2Pg/MySQL.pm Installing /usr/local/share/man/man3/ora2pg.3 Installing /usr/local/bin/ora2pg Installing /usr/local/bin/ora2pg_scanner Installing default configuration file (ora2pg.conf.dist) to /etc/ora2pg Appending installation info to /usr/lib64/perl5/perllocal.pod [root@localhost /usr/local/ora2pg-21.0]$
查看安装了哪些perl模块
[root@localhost ~]$ cat check.pl #!/usr/bin/perl use strict; use ExtUtils::Installed; my $inst=ExtUtils::Installed->new(); my @modules = $inst->modules(); foreach(@modules){ my $ver = $inst->version($_) || "???"; printf("%-12s -- %s\n",$_,$ver); } exit; [root@localhost ~]$ perl check.pl DBD::Oracle -- 1.74 DBI -- 1.643 Ora2Pg -- 21.0 Perl -- 5.16.3 [root@localhost ~]$
...