我下载了可以在线免费下载的 zip 文件,但我无法安装下载的文件并运行该文件,请任何人帮我在我的 windows 机器上安装 ora2pg。
2 回答
简介:我不得不将几个表从 Oracle 数据库迁移到 PostgreSQL,以便我的本地开发团队在应用程序的几个模块上工作。
如何?为了节省时间,我在 postgreSQL 博客上做了一些研究,发现了一个工具 ora2pg 工具。如博客中所述,此工具在 UNIX 上效果最佳。但是当你的 PostgreSQL 在 windows 系统上时,会有相当大的挑战。
挑战:
- 在 Windows 上安装 Perl 5.0
- 在 Windows 上安装 Oracle DBD 库到 perl
- 表结构应该在运行工具之前存在
- 要在 Windows 上安装的 Oracle 客户端“管理员”包。
行动:
先决条件:
- 从“ http://strawberryperl.com/ ”下载并在您的 Windows 上安装 perl
- 在 Windows 上安装oracle 客户端
- 从“ http://sourceforge.net/projects/ora2pg/files/13.0/ora2pg-13.0.tar.bz2/download ”下载 ora2pg 软件并解压到 Windows 上的已知位置
- PostgreSQL 已预先安装在您的 Windows 机器上。否则从“ http://www.enterprisedb.com/products-services-training/pgdownload#windows ”下载
安装:
在 Windows 上的 cmd 中。确保您有互联网连接:
cd <un tarred location>\ora2pg-15.2
perl Makefile.PL
dmake && dmake install
Set the environment variables:
Set ORACLE_HOME=<ORACLE_CLIENT_SOFTWARE_LOCATION>
Set LD_LIBRARY_PATH=<ORACLE_CLIENT_HOME>/lib
安装 DBD::Oracle 库 - 必须上网
perl -MCPAN -e "install DBD::Oracle"
- 配置文件默认创建在
C:\ora2pg
- 将模板配置文件复制到原始文件名并编辑
- 将 ora2pg_dist.conf 复制到 ora2pg.conf
编辑配置文件,如我用于一张表的示例:
ORACLE_HOME C:\oracle\app\yaddanap\product\11.2.0\client_1
ORACLE_DSN dbi:Oracle:host=172.31.232.253;sid=SUPLINUX
ORACLE_USER system
ORACLE_PWD 1qaz2wsx!
USER_GRANTS 0
DEBUG 0
EXPORT_SCHEMA 0
SCHEMA DB000001
CREATE_SCHEMA 0
COMPILE_SCHEMA 0
EXPORT_INVALID 0
TYPE TABLE
ALLOW SL_01_DEPOS
DATA_LIMIT 150000
PG_DSN dbi:Pg:dbname=Drive1;host=localhost;port=5432
PG_USER kcc
PG_PWD kcc123
PRESERVE_CASE 0
BZIP2
GEN_USER_PWD 0
FKEY_DEFERRABLE 0
DEFER_FKEY 0
DROP_FKEY 0
DROP_INDEXES 0
PG_NUMERIC_TYPE 1
PG_INTEGER_TYPE 1
DEFAULT_NUMERIC bigint
KEEP_PKEY_NAMES 0
DISABLE_TRIGGERS 0
NOESCAPE 0
DISABLE_SEQUENCE 0
PLSQL_PGSQL 1
ORA_RESERVED_WORDS audit,comment
FILE_PER_CONSTRAINT 0
FILE_PER_INDEX 0
FILE_PER_TABLE 0
TRANSACTION committed
PG_SUPPORTS_WHEN 1
PG_SUPPORTS_INSTEADOF 1
FILE_PER_FUNCTION 0
TRUNCATE_TABLE 0
FORCE_OWNER 0
STANDARD_CONFORMING_STRINGS 1
JOBS 1
ORACLE_COPIES 1
PARALLEL_TABLES 1
ALLOW_CODE_BREAK 1
XML_PRETTY 0
DISABLE_COMMENT 0
USE_RESERVED_WORDS 0
PKEY_IN_CREATE 0
NULL_EQUAL_EMPTY 1
EXTERNAL_TO_FDW 1
ESTIMATE_COST 0
COST_UNIT_VALUE 5
DUMP_AS_HTML 0
STOP_ON_ERROR 1
TOP_MAX 10
ALLOW_PARTITION PARTNAME
USE_TABLESPACE 0
PG_SUPPORTS_MVIEW 1
REORDERING_COLUMNS 0
SYNCHRONOUS_COMMIT 0
PG_SUPPORTS_CHECKOPTION 0
AUTODETECT_SPATIAL_TYPE 1
CONVERT_SRID 1
DEFAULT_SRID 4326
GEOMETRY_EXTRACT_TYPE WKT
PREFIX_PARTITION 0
LOG_ON_ERROR 0
PG_SUPPORTS_IFEXISTS 1
WITH_OID 0
现在运行 ora2pg:
c:\ora2pg>ora2pg -c ora2pg.conf
在 PostgreSQL 中运行生成的 DDL 语句以创建表的结构 现在再次编辑 ora2pg.conf 文件的一个字段,如下所示,现在复制数据。
TYPE TABLE,INSERT
现在重新运行 ora2pg 工具,您将看到合并的数据。
c:\ora2pg>ora2pg -c ora2pg.conf
[========================>] 953/906 rows (105.2%) Table SL_01_DEPOS (952.9 recs/sec)
[========================>] 906/906 rows (100.0%) on total data (avg: 905.9 rec/sec
我已经分享了LINUX安装的步骤,请只通过windows的尊重命令,它肯定会工作。预安装步骤:
- 必须安装 ORACLE 客户端并设置 ORACLE_HOME。
- 安装 perl(5.6 及以上版本)
安装步骤:
安装 DBI(数据库接口模块)
apt-get install cpanminus (for ubuntu) yum install cpanminus (for Linux) cpanm DBI
安装 DBD::Oracle 和 DBD::Pg
cpanm DBD::Oracle cpanm DBD::Pg
从http://sourceforge.net/projects/ora2pg/下载最新版本的 ora2pg并运行以下命令:
tar -xvf ora2pg-18.0.tar cd ora2pg-18.0/ perl Makefile.PL su root make make install
按照要求进行更改 默认情况下,Ora2Pg 将在 /etc/ora2pg/ 目录中查找 ora2pg.conf 配置文件。
ORACLE_HOME /app/oracle/product/11.2.0 ORACLE_DSN dbi:Oracle:host=[hostname];sid=[SID name] ORACLE_USER [SYSTEM] ORACLE_PWD [password] USER_GRANTS 1
检查 pra2pg 的版本:
ora2pg SHOW_VERSION
运行以下命令
ora2pg -c /etc/ora2pg/ora2pg.conf ora2pg -c /etc/ora2pg/ora2pg.conf -p -P 10 -J 10 -L 1000000
将在当前目录中创建 .sql 文件已将数据转换为 PostgreSql
希望这会奏效。