欧普下载是国内较新、较齐、较安全的软件下载基地!
当前位置:首页 ›› 其他软件 ›› 编程相关 ›› ora2pg(oracle转postgresql工具)下载

ora2pg(oracle转postgresql工具) v11.2免费版 附教程

ora2pg工具[下载地址]
ora2pg(oracle转postgresql工具) v11.2免费版 附教程

ora2pg工具是一款好用的Oracle数据转pgsql格式工具,主要用于表结构的迁移和表数据的迁移,支持导出表、视图和序列等,为方便新手用户使用小编还带来了ora2pg工具使用教程,需要的朋友快快下载吧!

ora2pg(oracle转postgresql工具) v11.2免费版 附教程

软件功能

- Export full database schema (tables, views, sequences, indexes), with unique, primary, foreign key and check constraints.

- Export grants/privileges for users and groups.

- Export a table selection (by specifying the table names).

- Export Oracle schema to a PostgreSQL 7.3+ schema.

- Export predefined functions, triggers, procedures, packages and package bodies.

- Export range and list Oracle partition.

- Export full datas or following a WHERE clause.

- Full support of Oracle BLOB object as PG BYTEA.

- Export Oracle views as PG tables.

- Export Oracle user defined types.

- Provide basic help for converting PLSQL code to PLPGSQL (still needs manual work).

- Works on any plateform.

ora2pg工具使用教程

1、在Oracle上创建测试用户并创建测试表

sys@ORCL>create user zhaoxu identified by zhaoxu;

User created.

sys@ORCL>grant dba to zhaoxu;

Grant succeeded.

sys@ORCL>conn zhaoxu/zhaoxu;

Connected.

zhaoxu@ORCL>create table emp as select * from scott.emp;

Table created.

zhaoxu@ORCL>select * from emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------

7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20

7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30

7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30

7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20

7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30

7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30

7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10

7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20

7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10

7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30

7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20

7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30

7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20

7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300 10

14 rows selected.

2、修改参数文件

[oracle@rhel6 ora2pg]$ cp /etc/ora2pg/ora2pg.conf /home/oracle/ora2pg/

[oracle@rhel6 ora2pg]$ cd /home/oracle/ora2pg/

[oracle@rhel6 ora2pg]$ vi ora2pg.conf

[oracle@rhel6 ora2pg]$ cat ora2pg.conf

ORACLE_HOME /u02/app/oracle/product/11.2.4/db1

ORACLE_DSN dbi:Oracle:host=192.168.56.2;sid=orcl

ORACLE_USER zhaoxu

ORACLE_PWD zhaoxu

SCHEMA zhaoxu

USER_GRANTS 0

DEBUG 0

ORA_INITIAL_COMMAND

EXPORT_SCHEMA 0

CREATE_SCHEMA 1

COMPILE_SCHEMA 0

TYPE TABLE,INSERT

OUTPUT output.sql

3、使用上面修改的参数导出数据

[oracle@rhel6 ora2pg]$ ora2pg -c ora2pg.conf

[========================>] 1/1 tables (100.0%) end of scanning.

[> ] 0/1 tables (0.0%) end of scanning.

[========================>] 1/1 tables (100.0%) end of table export.

[========================>] 14/1 rows (1400.0%) Table EMP (14 recs/sec)

[========================>] 14/1 total rows (1400.0%) - (0 sec., avg: 14 recs/sec).

[========================>] 1/1 rows (100.0%) on total estimated data (1 sec., avg: 1 recs/sec)

[oracle@rhel6 ora2pg]$ cat output.sql

-- Generated by Ora2Pg, the Oracle database Schema converter, version 17.6b

-- Copyright 2000-2016 Gilles DAROLD. All rights reserved.

-- DATASOURCE: dbi:Oracle:host=192.168.56.2;sid=orcl

SET client_encoding TO 'UTF8';

\set ON_ERROR_STOP ON

CREATE TABLE emp (

empno smallint,

ename varchar(10),

job varchar(9),

mgr smallint,

hiredate timestamp,

sal decimal(7,2),

comm decimal(7,2),

deptno smallint

) ;

-- Generated by Ora2Pg, the Oracle database Schema converter, version 17.6b

-- Copyright 2000-2016 Gilles DAROLD. All rights reserved.

-- DATASOURCE: dbi:Oracle:host=192.168.56.2;sid=orcl

SET client_encoding TO 'UTF8';

\set ON_ERROR_STOP ON

BEGIN;

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7369,E'SMITH',E'CLERK',7902,'1980-12-17 00:00:00',800,NULL,20);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7499,E'ALLEN',E'SALESMAN',7698,'1981-02-20 00:00:00',1600,300,30);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7521,E'WARD',E'SALESMAN',7698,'1981-02-22 00:00:00',1250,500,30);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7566,E'JONES',E'MANAGER',7839,'1981-04-02 00:00:00',2975,NULL,20);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7654,E'MARTIN',E'SALESMAN',7698,'1981-09-28 00:00:00',1250,1400,30);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7698,E'BLAKE',E'MANAGER',7839,'1981-05-01 00:00:00',2850,NULL,30);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7782,E'CLARK',E'MANAGER',7839,'1981-06-09 00:00:00',2450,NULL,10);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7788,E'SCOTT',E'ANALYST',7566,'1987-04-19 00:00:00',3000,NULL,20);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7839,E'KING',E'PRESIDENT',NULL,'1981-11-17 00:00:00',5000,NULL,10);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7844,E'TURNER',E'SALESMAN',7698,'1981-09-08 00:00:00',1500,0,30);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7876,E'ADAMS',E'CLERK',7788,'1987-05-23 00:00:00',1100,NULL,20);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7900,E'JAMES',E'CLERK',7698,'1981-12-03 00:00:00',950,NULL,30);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7902,E'FORD',E'ANALYST',7566,'1981-12-03 00:00:00',3000,NULL,20);

INSERT INTO emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (7934,E'MILLER',E'CLERK',7782,'1982-01-23 00:00:00',1300,NULL,10);

COMMIT;

4、把生成的output.sql传到PostgreSQL服务器上

[oracle@rhel6 ora2pg]$ scp output.sql pguser@192.168.56.25:/home/pguser/

pguser@192.168.56.25's password:

output.sql 100% 2599 2.5KB/s 00:00

5、在PostgreSQL数据库上创建对应的数据库、用户和Schema

#创建数据库 zhaoxu

postgres=# create database zhaoxu;

CREATE DATABASE

postgres=# \l

List of databases

Name | Owner | Encoding | Collate | Ctype | Access privileges

-----------+--------+----------+-------------+-------------+-------------------

postgres | pguser | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

template0 | pguser | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/pguser +

| | | | | pguser=CTc/pguser

template1 | pguser | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/pguser +

| | | | | pguser=CTc/pguser

zhaoxu | pguser | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

zx | pguser | UTF8 | en_US.UTF-8 | en_US.UTF-8 |

(5 rows)

#创建用户 zhaoxu

postgres=# create user zhaoxu superuser;

CREATE ROLE

postgres=# \dg

List of roles

Role name | Attributes | Member of

-----------+------------------------------------------------------------+-----------

lx | Superuser, Cannot login | {}

pguser | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

sq | Superuser, Create role, Create DB | {}

zhaoxu | Superuser | {}

zx | Superuser | {}

#在zhaoxu库下创建Schema zhaoxu

postgres=# \c zhaoxu zhaoxu

You are now connected to database "zhaoxu" as user "zhaoxu".

zhaoxu=# create schema zhaoxu;

CREATE SCHEMA

zhaoxu=# \dn

List of schemas

Name | Owner

--------+--------

public | pguser

zhaoxu | zhaoxu

(2 rows)

6、使用output.sql导入从Oracle导出的数据

[pguser@rhel7 ~]$ psql zhaoxu zhaoxu < output.sql

SET

CREATE TABLE

SET

BEGIN

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

INSERT 0 1

COMMIT

[pguser@rhel7 ~]$ psql zhaoxu zhaoxu

psql (9.6.1)

Type "help" for help.

zhaoxu=# \d

List of relations

Schema | Name | Type | Owner

--------+------+-------+--------

zhaoxu | emp | table | zhaoxu

(1 row)

zhaoxu=# select * from emp;

empno | ename | job | mgr | hiredate | sal | comm | deptno

-------+--------+-----------+------+---------------------+---------+---------+--------

7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | | 20

7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600.00 | 300.00 | 30

7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.00 | 500.00 | 30

7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | | 20

7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 | 30

7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850.00 | | 30

7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450.00 | | 10

7788 | SCOTT | ANALYST | 7566 | 1987-04-19 00:00:00 | 3000.00 | | 20

7839 | KING | PRESIDENT | | 1981-11-17 00:00:00 | 5000.00 | | 10

7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.00 | 0.00 | 30

7876 | ADAMS | CLERK | 7788 | 1987-05-23 00:00:00 | 1100.00 | | 20

7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | | 30

7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | | 20

7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300.00 | | 10

(14 rows)

数据导入完成。

常用命令介绍

Usage: ora2pg [-dhpqv --estimate_cost --dump_as_html] [--option value]

-a | --allow str : 指定允许导出的对象列表,使用逗号分隔。也可以与 SHOW_COLUMN 选项一起使用。

-b | --basedir dir: 设置默认的导出目录,用于存储导出结果。

-c | --conf file : 设置非默认的配置文件,默认配置文件为 /etc/ora2pg/ora2pg.conf。

-d | --debug : 使用调试模式,输出更多详细信息。

-D | --data_type STR : 通过命令行设置数据类型转换。

-e | --exclude str: 指定导出时排除的对象列表,使用逗号分隔。也可以与 SHOW_COLUMN 选项一起使用。

-h | --help : 显示帮助信息。

-g | --grant_object type : 导出指定类型的对象上的授权信息,取值参见 GRANT_OBJECT 配置项。

-i | --input file : 指定要导入的 Oracle PL/SQL 代码文件,导入文件时不需要连接到 Oracle 数据库。

-j | --jobs num : 设置用于发送数据到 PostgreSQL 的并发进程数量。

-J | --copies num : 设置用于从 Oracle 导出数据的并发连接数量。

-l | --log file : 设置日志文件,默认为 stdout。

-L | --limit num : 导出数据时,每次写入磁盘之前在内存中缓冲的记录数量,默认值为 10000。

-m | --mysql : 导出 MySQL 数据库。

-n | --namespace schema : 设置需要导出的 Oracle 模式。

-N | --pg_schema schema : 设置 PostgreSQL 中的搜索路径 search_path。

-o | --out file : 设置导出的 SQL 文件的存储路径。默认值为当前目录下的 output.sql 文件。

-p | --plsql : 启用 PLSQL 代码到 PLPGSQL 代码的转换。

-P | --parallel num: 同时导出多个表,设置并发数量。

-q | --quiet : 不显示进度条。

-s | --source DSN : 设置 Oracle DBI 数据源。

-t | --type export: 设置导出类型。该参数将会覆盖配置文件中的导出类型(TYPE)。

-T | --temp_dir DIR: 为多个同时运行的 ora2pg 脚本指定不同的临时存储目录。

-u | --user name : 设置连接 Oracle 数据库连接的用户名。也可以使用 ORA2PG_USER 环境变量。

-v | --version : 显示 Ora2Pg 版本信息并退出。

-w | --password pwd : 设置连接 Oracle 数据库的用户密码。也可以使用 ORA2PG_PASSWD 环境变量。

--forceowner : 导入数据时,强制 ora2pg 将导入 PostgreSQL 的表和序列的拥有者设置为连接 Oracle 数据库时的用户。如果设置为指定的用户名,所有导入的对象属于该用户。默认情况下,对象的拥有者为连接 Pg 数据库的用户。

--nls_lang code: 设置 Oracle 客户端的 NLS_LANG 编码。

--client_encoding code: 设置 PostgreSQL 客户端编码。

--view_as_table str: 将视图导出为表,多个视图使用逗号分隔。

--estimate_cost : 在 SHOW_REPORT 结果中输出迁移成本评估信息。

--cost_unit_value minutes: 成本评估单位,使用分钟数表示。默认值为 5 分钟,表示一个 PostgreSQL 专家迁移所需的时间。如果是第一次迁移,可以设置为 10 分钟。

--dump_as_html : 生成 HTML 格式的迁移报告,只能与 SHOW_REPORT 选项一起使用。默认的报告是一个简单的文本文件。

--dump_as_csv : 与上个参数相同,但是生成 CSV 格式的报告。

--dump_as_sheet : 生成迁移评估时,为每个数据库生成一行 CSV 记录。

--init_project NAME: 创建一个ora2pg 项目目录结构。项目的顶级目录位于根目录之下。

--project_base DIR : 定义ora2pg 项目的根目录,默认为当前目录。

--print_header : 与 --dump_as_sheet 一起使用,输出 CSV 标题信息。

--human_days_limit num : 设置迁移评估级别从 B 升到 C 所需的人工日数量。默认值为 5 人工日。

--audit_user LIST : 设置查询 DBA_AUDIT_TRAIL 表时需要过滤的用户名,多个用户使用逗号分隔。该参数只能用于 SHOW_REPORT 和 QUERY 导出类型。

--pg_dsn DSN : 设置在线导入时的 PostgreSQL 数据源。

--pg_user name : 设置连接 PostgreSQL 的用户名。

--pg_pwd password : 设置连接 PostgreSQL 的用户密码。

--count_rows : 在 TEST 方式下执行真实的数据行数统计。

--no_header : 在导出文件中不添加 Ora2Pg 头部信息。

--oracle_speed : 用于测试 Oracle 发送数据的速度。不会真的处理或者写入数据。

--ora2pg_speed : 用于测试 Ora2Pg 发送转换后的数据的速度。不会写入任何数据。

更新说明

修复很多主要的问题,特别是直接导入数据到 PG 和 Windows 下的移植版本,这两个地方都会导致程序崩溃。

下载ora2pg(oracle转postgresql工具) v11.2免费版 附教程
本地下载地址:
本地电信下载
本地电信下载
本地联通下载
本地联通下载
本地迅雷下载
本地迅雷下载
移动用户下载
移动用户下载

版权声明:本站提的序列号、注册码、注册机、补丁等均来自互联网,仅供学习交流之用,请在下载后24小时内删除。

相关文章
软件评论
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!
    登录   注册