Følgende instruktioner viser dig, hvordan du forbinder Oracle på Linux til PostgreSQL. For yderligere information om DG4ODBC henvises til vores DG4ODBC tutorial.
- Download 64-bit PostgreSQL ODBC-driveren til Linux.
- Installer og licensér PostgreSQL ODBC-driveren på den maskine, hvor Oracle er installeret.
Se ODBC-driverdokumentationen for installationsinstruktioner.
Bemærk Du skal have unixODBC Driver Manager installeret på din maskine. Easysoft-distributionen inkluderer en version af unixODBC Driver Manager, som Easysoft PostgreSQL ODBC-driveren er blevet testet med. Easysoft-driveropsætningsprogrammet giver dig mulighed for at installere unixODBC.
- Opret en ODBC-datakilde i /etc/odbc.ini, der forbinder til den PostgreSQL-database, du vil have adgang til fra Oracle. For eksempel:
[POSTGRES_SAMPLE]Driver=Easysoft ODBC-Postgres ServerDescription=Easysoft ODBC-Postgres ServerServer=192.0.2.1Port=5432Database=employeesUser=postgresPassword=p4550rdFigging=EnNoPressPassword=p4550rdNo
- Brug isql til at teste den nye datakilde. For eksempel:
cd /usr/local/easysoft/unixODBC/bin./isql.sh -v POSTGRESQL_SAMPLE
Ved prompten skal du skrive "hjælp" for at få vist en liste over tabeller. For at afslutte skal du trykke på retur i en tom promptlinje.
Hvis du ikke kan oprette forbindelse, skal du se denne artikel for at få hjælp.
- Opret en DG4ODBC init-fil. For at gøre dette skal du skifte til
hs/admin
undermappe. For eksempel:cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
Opret en kopi af filen
initdg4odbc.ora
. Navngiv den nye filinitpostgresql.ora
. - Sørg for, at disse parametre og værdier er til stede i din init-fil:
HS_FDS_CONNECT_INFO =my_postgresql_odbc_dsn
Erstat my_postgresql_odbc_dsn med navnet på en PostgreSQL ODBC-driverdatakilde, der forbinder til mål-PostgreSQL-serveren. For eksempel
HS_FDS_CONNECT_INFO ="POSTGRES_SAMPLE"
- Kommenter linjen, der aktiverer DG4ODBC-sporing. For eksempel:
#HS_FDS_TRACE_LEVEL =
- Tilføj en post til
listener.ora
der opretter en SID_NAME for DG4ODBC. For eksempel:SID_LIST_LISTENER =(SID_LIST =(SID_DESC=(SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
- Tilføj en DG4ODBC-post til
tnsnames.ora
der specificerer SID_NAME oprettet i det forrige trin. For eksempel:POSTGRESQL =(DESCRIPTION =(ADRESSE =(PROTOKOL =TCP))(HOST =oracle_host )(PORT =1521)) (CONNECT_DATA =(SID =postgresql) ) (HS =OK) )
Erstat oracle_host med værtsnavnet på din Oracle-maskine.
- Start (eller genstart) Oracle Listener. For eksempel:
lsnrctl stoplsnrctl start
- Opret forbindelse til din Oracle-database i SQL*Plus.
- I SQL*Plus skal du oprette et databaselink til mål-PostgreSQL-serveren. For eksempel:
OPRET OFFENTLIG DATABASE LINK postgresqllink FORBIND TIL"my_postgresql_user" IDENTIFICERET af "my_postgresql_password" VED HJÆLP AF 'postgresql';VÆLG * fra medarbejdere@postgresqllink
Bemærkninger
- Hvis du har problemer med at oprette forbindelse til PostgreSQL fra Oracle, skal du aktivere DG4ODBC-sporing og kontrollere sporingsfilerne skrevet til
hs/log
vejviser. For at aktivere DG4ODBC-sporing skal du tilføje linjenHS_FDS_TRACE_LEVEL = DEBUG
tilinitpostgresql.ora
og start/genstart derefter Oracle-lytteren. Hvislog
bibliotek eksisterer ikke, opret det. For eksempel:mkdir logchmod +w log
- Hvis du får fejlmeddelelsen "ORA-00997:ulovlig brug af LONG datatype", skal du tilføje en af følgende indgange til din ODBC-datakilde:
DisguiseLong=1 # For non-Wide PostgreSQL lange kolonnerLimitLong=størrelse i bytes # Hvis denne værdi er for stor, får du ORA-00997
–Eller–
DisguiseWlong=1LimitLong=størrelse i bytes # Hvis denne værdi er for stor, får du ORA-00997
- Hvis du får "ORA-28562:Heterogene Services data trunkeringsfejl", når du arbejder med PostgreSQL-data i Oracle, har vi muligvis en løsning til dig, men du skal forstå implikationerne af at bruge det. For mere information, kontakt Easysoft Support-teamet ().