oracle导出数据到postgresql之ora2pg数据迁移工具分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a964921988/article/details/80618781

ora2pg主要功能:

         Ora2Pg可用于任何反向工程Oracle数据库,到巨大的企业数据库迁移或简单地复制一些Oracle,数据导入PostgreSQL数据库。它非常易于使用,而且不需要任何Oracle数据库知识,需要知道其连接到Oracle数据库所需的参数。

Ora2pg总体描述: 

      1.安装ora2pg,安装其所需要的依赖包,以及Perl模块等。

      2.配置ora2pg.conf配置文件,此文件主要用于配置导出导入数据库数据,以及导出数据范围。

      3.执行命令,导出文件或者直接导入目标数据库中

Ora2pg工作过程:

        Ora2Pg中包括一个Perl脚本(Ora2Pg)和一个Perl模块(Ora2Pg.pm),你只需要修改配置文件Ora2Pg.conf中连接Oracle数据库的DSN设置和任意的一个模式名称。做完了这些然后你只需要设置一下你想要输出的对象类型,它提供的类型有:约束表、视图、表空间、序列、索引、触发器、授权、函数、存储过程、包封装、分区和数据。默认情况下Ora2Pg会导出一个文件,你可以通过psql客户端将其导入到PostgreSQL数据库中,不过你也可以通过设置PostgreSQL数据库的DSN直接导入。你可以通过配置ora2pg.conf的配置选项来完全控制导出什么以及如何去导出。

Ora2pg特性:

    导出整个数据库模式(表、视图、序列、索引),以及唯一性,主键、外键和检查约束。

    导出用户和组的授权/权限。

    导出筛选的表(通过制定表明)。

    导出Oracle模式到一个PostgreSQL(7.3以后)模式中。

    导出预定义函数、触发器、程序、包和包体。

    导出范围和列表分区。

    导出所有的数据或跟随一个WHERE子句。

    充分支持Oracle BLOB对象作为PG的BYTEA。

    导出Oracle视图作为PG表。

    导出定义的Oracle用户格式。

    提供关于转换PLSQL码为PLPGSQL的基本帮助(仍然需要手工完成)。

    可在任何平台上工作。

    Ora2Pg尽力将Oracle数据库转换到PostgreSQL中,但是仍需一部分的手动工作。Oracle特定的PL/SQL代码生成函数、过程  和触发器时必须进行审查,以便匹配PostgreSQL的语法

Ora2pg支持的导出对象:

    这是允许导出的不同的格式,默认是TABLE:

    TABLE:提取所有包括索引、主键、唯一键、外键和检查约束的表。

    VIEW:提取视图。

    GRANT:提取在所有对象中转换为Pg组、用户和权限的用户。

    SEQUENCE:提取所有的序列以及上一个位置。

    TABLESPACE:提取表空间。

    TRIGGER:提取通过动作触发的被指定的触发器。

    FUNCTION:提取函数。

    PROCEDUERS:提取存储过程。

    PACKAGE:提取包和包主体。

    DATA:提取数据,生成INSERT语句。

    COPY:提取数据,生成COPY语句。

    PARTITION:提取范围和列表分区。

    TYPE:提取Oracle用户自定义的格式。

    (以下两条是10.0新加的)

    FDW:提取外部数据封装表

    PARTITION:提取作为快照刷新视图所建立的视图

Ora2pg数据类型转换对照:

ORACLE:

POSTGRESQL:

DATE

timestamp

LONG  

text

LONG RAW

bytea

CLOB

text

NCLOB

text

BLOB

bytea

BFILE

bytea

RAW   

bytea

ROWID  

oid

FLOAT

double precision

DEC

decimal

DECIMAL

decimal

DOUBLE PRECISION

double precision

INT

integer

INTEGER

integer

REAL

real

SMALLINT

smallint

BINARY_FLOAT

double precision

BINARY_DOUBLE

double precision

TINESTAMP

timestamp

XMLTYPE

xml

BINARY_INTEGER

integer

PLS_INTEGER

integer

TIMESTAMP WITH TIME ZONE

timestamp with time zone

TIMESTAMP WITH LOCAL TIME ZONE

timestamp with time zone

这些数据类型的转换可根据实际情况用户自己指定,通过ora2pg.conf中的DATA_TYPE指定。如果未指定,默认转换类型如上表。



猜你喜欢

转载自blog.csdn.net/a964921988/article/details/80618781