Ora2Pg安装配置

Ora2Pg安装配置,第1张

概述 说明 该文档为简单的Ora2Pg安装配置使用说明文档,主要涵盖安装前其它组件的安装、Ora2Pg安装、配置以及利用Ora2Pg从Oracle生成sql脚本,利用sql脚本导入PostgreSQL数据库中。 Ora2Pg是以perl开发的perl模块工具,为使安装能够顺利通过,在安装Ora2Pg之前必须先确保系统已经安装了perl模块以及DBI、DBD::Oracle模块。若需要直接导入到Po  说明 @H_403_8@该文档为简单的Ora2Pg安装配置使用说明文档,主要涵盖安装前其它组件的安装、Ora2Pg安装、配置以及利用Ora2PgOracle生成sql脚本,利用sql脚本导入Postgresql数据库中。

@H_403_8@Ora2Pg是以perl开发的perl模块工具,为使安装能够顺利通过,在安装Ora2Pg之前必须先确保系统已经安装了perl模块以及DBIDBD::Oracle模块。若需要直接导入到Postgresql则还需要安装DBD::Pg模块。并且在Ora2Pg的使用过程中要求数据库为正常运行状态。

@H_403_8@本次实验是将OraclePostgresqlOra2Pg安装在不同的PC上,最终搭建一个用于迁移数据的Ora2Pg终端,通过远程一端连接Oracle,另一端连接Postgresql

@H_403_8@

@H_403_8@

@H_403_8@

Ora2Pg简介 @H_403_8@

@H_403_8@Ora2Pg是一个免费的工具,用于将Oracle数据库迁移到Postgresql兼容的模式里。它连接Oracle数据库,扫描并自动抽取其结构或数据,然后生成用于实现迁移的sql脚本,利用该脚本你可以将数据库结构或数据加载到Postgresql数据库中。
我们可以使用Ora2Pg实现逆向工程Oracle数据库到大型企业级数据库的迁移或者简单地复制一些Oracle数据库到Postgresql数据库中。你只需要提供连接Oracle数据库时所需的连接参数,无需了解任何Oracle数据库的知识。

@H_403_8@

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

@H_403_8@

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

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

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

@H_403_8@导出Oracle模式到一个Postgresql7.3以后)模式中。

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

@H_403_8@导出范围和列表分区。

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

@H_403_8@充分支持Oracle BLOB对象作为PGBYTEA

@H_403_8@导出Oracle视图作为PG表。

@H_403_8@导出定义的Oracle用户格式。

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

@H_403_8@可在任何平台上工作。

@H_403_8@Ora2Pg尽力将Oracle数据库转换到Postgresql中,但是仍需一部分的手动工作。Oracle特定的PL/sql代码生成函数、过程和触发器时必须进行审查,以便匹配Postgresql的语法。你会发现一些有用的不利因素在将Oracle PL/sql移植到PostgresqlPL/PGsql

@H_403_8@

支持的导出对象 @H_403_8@这是允许导出的不同的格式,默认是table:

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

@H_403_8@VIEW:提取视图。

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

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

@H_403_8@tableSPACE:提取表空间。

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

@H_403_8@FUNCTION:提取函数。

@H_403_8@PROCEDUERS:提取存储过程。

@H_403_8@PACKAGE:提取包和包主体。

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

@H_403_8@copY:提取数据,生成copY语句。

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

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

@H_403_8@(以下两条是10.0新加的)

@H_403_8@FDW:提取外部数据封装表

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

@H_403_8@

数据类型转换对照 @H_403_8@DATE timestamp

@H_403_8@LONG text

@H_403_8@LONG RAW bytea

@H_403_8@CLOB text

@H_403_8@NCLOB text

@H_403_8@BLOB bytea

@H_403_8@Bfile bytea

@H_403_8@RAW bytea

@H_403_8@ROWID oID

@H_403_8@float double precision

@H_403_8@DEC decimal

@H_403_8@DECIMAL decimal

@H_403_8@DOUBLE PRECISION double precision

@H_403_8@INT integer

@H_403_8@INTEGER integer

@H_403_8@REAL real

@H_403_8@SMALliNT smallint

@H_403_8@BINARY_float double precision

@H_403_8@BINARY_DOUBLE double precision

@H_403_8@TInesTAMP timestamp

@H_403_8@XMLTYPE xml

@H_403_8@BINARY_INTEGER integer

@H_403_8@PLS_INTEGER integer

@H_403_8@(以下两条是10.0新加的)

@H_403_8@TIMESTAMP WITH TIME ZONE timestamp with time zone

@H_403_8@TIMESTAMP WITH LOCAL TIME ZONE timestamp with time zone

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

@H_403_8@

10.0 changelog @H_403_8@整体上有了更多的改进以及BUG的修复,出现了一个新的输出类型:SHOW_REPORT,它将输出一份关于您Oracle数据库中含有的所有对象的汇总报告及其导出建议。 通过该报告你可以使用一个新的指令ESTIMATE_COST使Ora2Pg来评估数据库的迁移成本(按人天计算)。 还有另一个新的配置指令EXTERNAL_TO_FDW,它允许所有Oracle外部表作为file_fDW外部表输出,默认是关闭的。
下面是具体的说明:

@H_403_8@- Fix quote escaPing on table comments.

@H_403_8@- Fix some other issues with 8i databases,added database version auto-detection to avoID printinf warning.

@H_403_8@- Allow null value in Bfile to the oar2pg_get_bfilename().

@H_403_8@- Update documentation about Bfile export.

@H_403_8@- Add drop function ora2pg_get_bfilename() when necessary.

@H_403_8@- Add support to Bfile external path export by creating a function ora2pg_get_bfilename( p_bfile IN Bfile ) to retrIEve path from Bfile. Bfile will be

@H_403_8@exported as text fIEld with the full path to the file as value. Note that this is the first time that Ora2Pg need write access to the Oracle database,

@H_403_8@if you do not have Bfile or you have set the corresponding Postgresql type asd bytea (the default) the function will not be created.

@H_403_8@- Fix a performance issue when extracting BLOB with a LongReadLen upper than 1MB.

@H_403_8@- Fix priviledge on schema created from Oracle package body.

@H_403_8@- Add object type in comment before priviledge extraction.

@H_403_8@- Order output of grant to groups grants by object types. This is useful to quickly disable some sql orders corresponding of not already loaded objects.

@H_403_8@- Fix progress bar output.

@H_403_8@- Fix priviledge on sequence,tablespace and schema.

@H_403_8@- Fix backward compatibility with Oracle 8i,remove query with JOIN.

@H_403_8@- Postgresql clIEnt_enCoding is Now forced to UTF8 when BINMODE is set to utf8.

@H_403_8@- Replace disABLE TRIGGER ALL by disABLE TRIGGER USER following the value if USER_GRANTS to avoID permission denIEd on constraint trigger when data are load

@H_403_8@under a non PG superuser.

@H_403_8@- Rename disABLE_table_TRIGGERS to disABLE_TRIGGERS and set default value to 0. Other values are USER or ALL following the connected user.

@H_403_8@- Fix missing newline after comment in PL/sql code.

@H_403_8@- Fix report message on external table export.

@H_403_8@- The export TYPE have been entirely rewritten to only export supported user defined types. Exported are: nested tables,Object type,Type in herited and

@H_403_8@Subtype,Varrays. Associative Arrays,Type Body and type with member method are not supported.

@H_403_8@- When file_PER_INDEX is enable,sql order to move indexes in their respective tablespace will be written into a dedicated file prefixed by TBSP_INDEXES_.

@H_403_8@- Fix location on external table export. Thanks to Thomas Reiss for the help.

@H_403_8@- PG_SUPPORTS_INSTEADOF is Now activated by default,that mean that migration should be done on PG >= 9.1.

@H_403_8@- Remove obsolete --xtable commande line option,should be replaced by --allow,backward compatibility is preserved.

@H_403_8@- Add EXTERNAL_TO_FDW configuration directive,disable by default,to export all Oracle external tables as file_fDW foreign tables.

@H_403_8@- Fix an other case where user defined type were not exported with an ending semi-colon. Thank to Dominique Legrendre for the report.

@H_403_8@- Fix export of user defined type with extra ");" at end of the type deFinition and remove system types from export.

@H_403_8@- Add PLsql replacemement of currval.

@H_403_8@- Add PLsql replacement of PIPEliNED and PIPE ROW by SetoF and RETURN NEXT.

@H_403_8@- Add rewrite of Oracle DETERMINISTIC function into Postgresql IMMUtable function.

@H_403_8@- Fix copy during install on MacOSx and add /Y option to windows install copy to force overwrite existing files.

@H_403_8@- Fix issue exporting rows with perl ARRAYS ref.

@H_403_8@- Fix replacement of IS SELECT wrongly replaced by IS PERFORM in some case.

@H_403_8@

@H_403_8@

@H_403_8@

实验系统环境 @H_403_8@

系统版本
[root@ora~]#cat/etc/issueCentOSrelease5.5(Final)Kernel\ronan\m
@H_403_8@

@H_403_8@

内核版本
[root@ora~]#uname-alinuxora2.6.18-194.el5#1SMPFriApr214:58:14EDT2010x86_64x86_64x86_64GNU/linux
@H_403_8@

@H_403_8@

perl安装 @H_403_8@系统一般会自带一个已安装的perl版本,可在安装前进行检测:

[root@ora~]#rpm-qperlperl-5.8.8-27.el5
@H_403_8@

@H_403_8@Ora2Pg要求perl版本为5.6或更高。

@H_403_8@如果没有或者是想要安装更高版本的请按照下面的方法编译安装:

@H_403_8@perl下载地址:http://www.perl.org/get.HTML#unix_like

@H_403_8@安装步骤:

@H_403_8@1、解压安装包,进入解压目录

@H_403_8@2、运行 sh Configure de (使用默认配置安装)

@H_403_8@3make

@H_403_8@4make test

@H_403_8@5make install

@H_403_8@

利用CPAN来安装DBIDBD::OracleDBD::Pg @H_403_8@由于此实验是将Ora2PgOracle分别安装,因此在通过CPAN在线安装模块之前,首先需要确保在该PC上已经存在了OraclePostgresql的客户端,并且必要的环境变量已经配置完成。

@H_403_8@该实验通过CPAN来安装,当然也可使用源码安装。

@H_403_8@

安装Oracle客户端 @H_403_8@要成功配置DBD::Oracle则需要Basicsql*PlusSDK这三个配置,我们需要将这三个包放到同一个目录中。

@H_403_8@所需包下载地址:http://www.oracle.com/technetwork/database/features/instant-clIEnt/index-097480.HTML

@H_403_8@将下载的三个包在同一个目录下解压,解压后生成一个目录(instantclIEnt_11_1),结果如下:

[root@ora~]#ll/tmp/InstallClIEnt/total47564-rw-r--r--1rootroot47149968Nov272011basic-11.1.0.70-linux-x86_64.zipdrwxr-xr-x3rootroot4096Jul2821:31instantclIEnt_11_1-rw-r--r--1rootroot607351Nov272011sdk-11.1.0.7.0-linux-x86_64.zip-rw-r--r--1rootroot857863Nov272011sqlplus-11.1.0.7.0-linux-x86_64.zip
@H_403_8@

@H_403_8@

安装Postgresql客户端 @H_403_8@要成功配置DBD::Pg则需要首先配置好Postgresql的客户端,我们可以通过安装Postgresql的方式来安装配置客户端。(Postgresql的安装过程 略)
注:如果我们不需要自动导入到Postgresql中,只需要生成一个sql脚本,那么不需要进行该步。

@H_403_8@

配置环境变量 @H_403_8@环境变量配置结果如下:

[root@ora~]#cat.bash_profile#.bash_profile #Getthealiasesandfunctions if[-f~/.bashrc];then.~/.bashrcfi #Userspecificenvironmentandstartupprograms PATH=/usr/local/pgsql/bin:$PATH:$HOME/binexportORACLE_HOME=/tmp/InstallClIEnt/instantclIEnt_11_1exportLD_liBRARY_PATH=/tmp/InstallClIEnt/instantclIEnt_11_1exportPATHunsetUSERname
@H_403_8@

@H_403_8@

安装模块
yuminstallperl-CPANgcc
@H_403_8@

@H_403_8@

@H_403_8@

@H_403_8@root用户进入cpan shell

[root@ora~]#perl–MCPAN–eshell…………cpan>installDBI…………cpan>installDBD::Oracle…………cpan>installDBD::Pg…………
@H_403_8@

@H_403_8@

@H_403_8@注意:

@H_403_8@执行perl –MCPAN时如果报Can't locate CPAN.pm in @INC ,那么需要首先安装CPAN

yuminstallperl-CPAN
@H_403_8@

@H_403_8@

@H_403_8@并且需要安装gcc,避免安装模块时无法编译。

perl模块简单检测 @H_403_8@

@H_403_8@使用perl语言制作一个检测脚本test.pl,内容如下:

[root@ora~]#cattest.pl#!/usr/bin/perluseExtUtils::Installed;my$inst=ExtUtils::Installed->new();printjoin"\n",$inst->modules();
@H_403_8@

@H_403_8@运行检测:

[root@ora~]#perltest.plDBD::OracleDBD::PgDBIExtUtils::MakeMakerOra2PgPerlTest::Simple
@H_403_8@

@H_403_8@

@H_403_8@

@H_403_8@

安装Ora2Pg @H_403_8@

@H_403_8@下载地址:https://sourceforge.net/projects/ora2pg/

@H_403_8@安装方式跟perl类似:

tar–xvfora2pg-9.0.tar.bz2cdora2pg-9.0/perlMakefile.PLmake&&makeinstall
@H_403_8@

@H_403_8@安装完成后默认的配置文件路径:/etc/ora2pg/ora2pg.conf

@H_403_8@

@H_403_8@

@H_403_8@

Ora2Pg简单配置 @H_403_8@

@H_403_8@修改配置文件/etc/ora2pg/ora2pg.conf,结果如下:

@H_403_8@ORACLE_DSN dbi:Oracle:host=192.168.0.153;sID=orcl

@H_403_8@ORACLE_USER system

@H_403_8@ORACLE_PWD highgo

@H_403_8@SCHEMA TEST (注意要大写,否则匹配不到)

@H_403_8@TYPE table DATA VIEW

@H_403_8@如果需要让数据自动导入到Postgresql中,则需要同时配置关于连接Postgresql的相关信息,配置类似上面Oracle的配置,如下:

@H_403_8@PG_DSN dbi:Pg:dbname=test_db;host=192.168.100.106;port=5432

@H_403_8@PG_USER test

@H_403_8@PG_PWD highgo

@H_403_8@

@H_403_8@

@H_403_8@

测试 @H_403_8@

创建测试数据 @H_403_8@Oracle中首先创建用户test并赋权,然后以test用户创建相关对象,如下:

sql>CREATEtablet1(2IDNUMBER(5)NOTNulLPRIMARYKEY,3namevarchar2(10)4);tablecreated.sql>DESCt1;nameNulL?TYPE-----------------------------------------------------------------------------IDNOTNulLNUMBER(5)nameVARCHAR2(10)sql>CREATEtablet2(2IDNUMBER(5)NOTNulL,3ageINT,4FOREIGNKEY(ID)referencest1(ID)5);tablecreated.sql>DESCt2;nameNulL?TYPE-----------------------------------------------------------------------------IDNOTNulLNUMBER(5)AGENUMBER(38)sql>INSERTINTOt2VALUES(1,20);1ROWcreated.sql>INSERTINTOt2VALUES(2,18);1ROWcreated.sql>INSERTINTOt2VALUES(3,23);1ROWcreated.sql>CREATEINDEXt2_index_ageONt2(age);INDEXcreated.sql>CREATEVIEWt1_t2_v12AS3SELECTt1.ID,t1.name,t2.ageFROMt1,t24WHEREt1.ID=t2.ID;VIEWcreated.
@H_403_8@

@H_403_8@

导出脚本 @H_403_8@执行成功后将会在当前目录下生成一个sql脚本(默认是output.sql

[root@ora~]#ora2pgTryingtoconnecttodatabase:dbi:Oracle:host=192.168.100.138;sID=orclIsolationlevel:SETTRANSACTIONISolATIONLEVELSERIAliZABLEForceOracletocompileschemabeforecodeextractionRetrIEvingtableinformation...[1]ScanningT1(TESTT1table)...ID=>type:NUMBER,length:22(char_length:0),precision:5,scale:0,nullable:N,default:name=>type:VARCHAR2,length:10(char_length:10),precision:,scale:,nullable:Y,default:[2]ScanningT2(TESTT2table)...ID=>type:NUMBER,default:AGE=>type:NUMBER,default:RetrIEvingtableinformation...[1]ScanningT1(TESTT1table)...WarningduplicatetableT1,SYNONYME ?Skipped.[1]ScanningT2(TESTT2table)...WarningduplicatetableT2,SYNONYME ?Skipped.RetrIEvingvIEwsinformation...ID=>columnID:1name=>columnID:2AGE=>columnID:3[1]ScanningT1_T2_V1...WARNING:can'tusedirectimportintopostgresqlwiththistypeofexport.OnlyDATAorcopYexporttypecanbeusewithdirectimport,fileoutputwillbeused.DumPingtableT1...DumPingtableT2...DumPingRIT2...WARNING:orderingtableexporttorespectforeignkeysisnotpossible.PleaseconsIDerusingDEFER_FKEYorDROP_FKEYconfigurationdirectives.DumPingtableT1...DEBUG:Preparingbulkof10000dataforoutputDEBUG:Creatingoutputfor10000tuples 3recordsin0secsTotalextractedrecordsfromtableT1:3in0secsDumPingtableT2...DEBUG:Preparingbulkof10000dataforoutputDEBUG:Creatingoutputfor10000tuples 3recordsin0secsTotalextractedrecordsfromtableT2:3in0secsRestartingsequencesAddvIEwsdeFinition...AddingvIEwT1_T2_V1...
@H_403_8@

@H_403_8@根据实际需求可以制定不同的参数 参数说明:

-d|--deBUG:启用详细输出。-h|--help:打印出简单的帮助信息。-v|--version:显示Ora2Pg的版本。-c|--conffile:使用另一个替代的配置文件,默认是/etc/ora2pg/ora2pg.conf。-l|--logfile:使用一个日志文件,默认是标准输出。-o|--outfile:指定导出的sql脚本文件的路径,默认是当前目录下。-t|--typeexport:指定导出格式。覆盖配置文件中指定的TYPE。-p|--plsql:启用PLsql到PLPsql码的转换。-s|--sourcedsn:设置OracleDBI数据源。-u|--useruser:设置连接Oracle的用户名。-w|--passwordpass:设置Oracle用户密码。-n|--namespaceschema:设置用于提取的Oracle模式名称。-b|--basedirdir:设置默认的输出文件目录,输出的文件将被保存到该目录。-x|--xtablerelname:用于显示给定表的列名,仅在TYPE为SHOW_ColUMN时使用。-f|--forceowner:如果设置为1将促使Ora2Pg设置表和序列的所有者。如果将其值设置为一个用户名会被设定为对象的所有者。--nls_langcode:设置OracleNLS_LANG客户端编码。--clIEnt_enCodingcode:设置Postgresql客户端编码。-i|--input_filefile:文件包含在没有Oracle数据库连接发起时OraclePL/sql代码的转换。
@H_403_8@

@H_403_8@生成脚本内容如下:

--GeneratedbyOra2Pg,theOracledatabaseSchemaconverter,version9.0--copyright2000-2012GillesDARolD.Allrightsreserved.--DATASOURCE:dbi:Oracle:host=192.168.100.138;sID=orcl\SetoN_ERROR_StopONCREATEtable"t1"("ID"INTEGERNOTNulL,"name"VARCHAR(10));ALTERtable"t1"ADDPRIMARYKEY("ID");CREATEtable"t2"("ID"INTEGERNOTNulL,"age"BIGINT);CREATEINDEXt2_index_ageON"t2"("age");ALTERtable"t2"ADDCONSTRAINT"sys_c0011825"FOREIGNKEY("ID")REFERENCES"t1"("ID")ONDELETENOACTIONNOTDEFERRABLEINITIALLYIMMEDIATE;--GeneratedbyOra2Pg,version9.0--copyright2000-2012GillesDARolD.Allrightsreserved.--DATASOURCE:dbi:Oracle:host=192.168.100.138;sID=orcl\SetoN_ERROR_StopONSETsearch_path=test,pg_catalog;BEGIN;ALTERtablet1disABLETRIGGERALL;INSERTINTO"t1"("ID","name")VALUES(1,E'jony');INSERTINTO"t1"("ID","name")VALUES(2,E'lucy');INSERTINTO"t1"("ID","name")VALUES(3,E'jack');ALTERtablet1ENABLETRIGGERALL;COMMIT;SETsearch_path=test,pg_catalog;BEGIN;ALTERtablet2disABLETRIGGERALL;INSERTINTO"t2"("ID","age")VALUES(1,20);INSERTINTO"t2"("ID","age")VALUES(2,18);INSERTINTO"t2"("ID","age")VALUES(3,23);ALTERtablet2ENABLETRIGGERALL;COMMIT;CREATEORREPLACEVIEW"t1_t2_v1"("ID","name","age")ASSELECTt1.ID,t2WHEREt1.ID=t2.ID;
@H_403_8@

@H_403_8@检查修改,无误后方可载入Postgresql

@H_403_8@

Postgresql中恢复数据 @H_403_8@首先创建一个test_db数据库,再创建一个test用户,在test_db数据库下以超级用户创建一个schema,并将该schema的权限者设为test,最后以test用户在test_db数据库下导入数据脚本:

$psqlpostgres=#CREATEDATABASEtest_db;postgres=#createusertestpassword‘highgo’;postgres=#\ctest_dbtest_db=#CREATEschematestauthorizationtest;test_db=#\ctest_dbtesttest_db=>\i/root/output.sql...
@H_403_8@

@H_403_8@

@H_403_8@

@H_403_8@

错误解决 @H_403_8@

安装DBD::Oracle @H_403_8@错误现象:

cpan>installDBD::OracleTryingtofindanorACLE_HOMEYourLD_liBRARY_PATHenvvarissettoTheORACLE_HOMEenvironmentvariableisnotsetandICouldn'tguessit.Itmustbesettoholdthepathtoanoracleinstallationdirectoryonthismachine(oramachinewithacompatiblearchitecture).SeetheappropriateREADMEfileforyourOSformoreinformation.ABORTED!RunningmaketestMakehadsomeproblems,maybeinterrupted?Won'ttestRunningmakeinstallMakehadsomeproblems,maybeinterrupted?Won'tinstall
@H_403_8@

@H_403_8@解决方式:修改.bash_profile,添加几个关于Oracle的环境变量,结果如下:

PATH=$PATH:$HOME/bin:/u01/app/oracle/oracle/product/10.2.0/db_1/bin/exportORACLE_SID=orclexportORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1exportLD_liBRARY_PATH=/u01/app/oracle/oracle/product/10.2.0/db_1/lib/exportPATHunsetUSERname
@H_403_8@

@H_403_8@

安装DBD::Pg @H_403_8@错误现象:

cpan>installDBD::PgConfiguringDBD::Pg2.18.1Pathtopg_config?USEOfuninitializedvalueinconcatenation(.)orstringatMakefile.PLline99,<STDIN>line1.USEOfuninitializedvalueinconcatenation(.)orstringatMakefile.PLline101,<STDIN>line1.Postgresqlversion:0(defaultport:0)POSTGRES_HOME:(notset)POSTGRES_INCLUDE:/includePOSTGRES_liB:/libOS:linuxThevalueofPOSTGRES_INCLUDEpointstoanon-existentdirectory:/includeCannotbuildunlessthedirectorIEsexist,exiting.make:***NotargetsspecifIEdandnomakefilefound.Stop./usr/bin/make--NOTOKRunningmaketestCan'ttestwithoutsuccessfulmakeRunningmakeinstallmakehadreturnedbadstatus,installseemsimpossible
@H_403_8@

@H_403_8@解决方式:&#8232;修改.bash_profile,添加几个关于Postgresql的环境变量,结果如下:

PATH=$PATH:$HOME/bin:/u01/app/oracle/oracle/product/10.2.0/db_1/bin/exportORACLE_SID=orclexportORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1exportLD_liBRARY_PATH=/u01/app/oracle/oracle/product/10.2.0/db_1/lib/exportPOSTGRES_HOME=/pg/pgsql/exportPOSTGRES_INCLUDE=$POSTGRES_HOME/includeexportPOSTGRES_liB=$POSTGRES_HOME/libunsetUSERname
@H_403_8@

@H_403_8@

运行Ora2Pg @H_403_8@错误现象:

[root@ora~]#ora2pgCan'tlocateCompress/Zlib.pmin@INC(@INCcontains:/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/usr/lib/perl5/site_perl/5.8.8/usr/lib/perl5/site_perl/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/usr/lib/perl5/vendor_perl/5.8.8/usr/lib/perl5/vendor_perl/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/usr/lib/perl5/5.8.8.)at/usr/lib/perl5/site_perl/5.8.8/Ora2Pg.pmline541.BEGINFailed--compilationabortedat/usr/lib/perl5/site_perl/5.8.8/Ora2Pg.pmline541.CompilationFailedinrequireat/usr/local/bin/ora2pgline27.BEGINFailed--compilationabortedat/usr/local/bin/ora2pgline27.
@H_403_8@

@H_403_8@解决方式:

yuminstallperl-Compress-Zlib
总结

以上是内存溢出为你收集整理的Ora2Pg安装配置全部内容,希望文章能够帮你解决Ora2Pg安装配置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1176727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存