Следните инструкции ви показват как да свържете Oracle на Linux към PostgreSQL. За допълнителна информация относно DG4ODBC вижте нашия урок за DG4ODBC.
- Изтеглете 64-битовия PostgreSQL ODBC драйвер за Linux.
- Инсталирайте и лицензирайте PostgreSQL ODBC драйвера на машината, където е инсталиран Oracle.
За инструкции за инсталиране вижте документацията на ODBC драйвера.
Забележка Имате нужда от unixODBC Driver Manager инсталиран на вашата машина. Дистрибуцията на Easysoft включва версия на unixODBC Driver Manager, с която е тестван драйверът на Easysoft PostgreSQL ODBC. Програмата за настройка на драйвера Easysoft ви дава възможност да инсталирате unixODBC.
- Създайте ODBC източник на данни в /etc/odbc.ini, който се свързва с базата данни PostgreSQL, до която искате да получите достъп от Oracle. Например:
[POSTGRES_SAMPLE]Driver=Easysoft ODBC-Postgres ServerDescription=Easysoft ODBC-Postgres ServerServer=192.0.2.1Port=5432Database=employeesUser=postgresPassword=p4550rdNogFiogle>
- Използвайте isql, за да тествате новия източник на данни. Например:
cd /usr/local/easysoft/unixODBC/bin./isql.sh -v POSTGRESQL_SAMPLE
При подкана въведете „помощ“, за да се покаже списък с таблици. За да излезете, натиснете връщане в празен ред с подкана.
Ако не можете да се свържете, вижте тази статия за помощ.
- Създайте инициализиращ файл DG4ODBC. За да направите това, променете на
hs/admin
поддиректория. Например:cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
Създайте копие на файла
initdg4odbc.ora
. Наименувайте новия файлinitpostgresql.ora
. - Уверете се, че тези параметри и стойности присъстват във вашия init файл:
HS_FDS_CONNECT_INFO =my_postgresql_odbc_dsn
Заменете my_postgresql_odbc_dsn с името на източник на данни на PostgreSQL ODBC драйвер, който се свързва към целевия PostgreSQL сървър. Например
HS_FDS_CONNECT_INFO ="POSTGRES_SAMPLE"
- Коментирайте реда, който позволява проследяване на DG4ODBC. Например:
#HS_FDS_TRACE_LEVEL =
- Добавете запис към
listener.ora
което създава SID_NAME за DG4ODBC. Например:SID_LIST_LISTENER =(SID_LIST =(SID_DESC=(SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
- Добавете запис в DG4ODBC към
tnsnames.ora
който посочва SID_NAME, създаден в предишната стъпка. Например:POSTGRESQL =(DESCRIPTION =(АДРЕС =(PROTOCOL =TCP)(HOST =oracle_host) )(PORT =1521)) (CONNECT_DATA =(SID =postgresql) ) (HS =OK) )
Заменете oracle_host с името на хоста на вашата Oracle машина.
- Стартирайте (или рестартирайте) Oracle Listener. Например:
lsnrctl stoplsnrctl start
- Свържете се с вашата база данни Oracle в SQL*Plus.
- В SQL*Plus създайте връзка към базата данни за целевия PostgreSQL сървър. Например:
СЪЗДАЙТЕ ВРЪЗКА ЗА ОБЩЕСТВЕНА БАЗА ДАННИ postgresqllink СВЪРЗВАНЕ СЪС "my_postgresql_user" ИДЕНТИФИЦИРАНА от "my_postgresql_password" ИЗПОЛЗВАНЕ НА 'postgresql'; ИЗБЕРЕТЕ * от служители@postgresqllink
Бележки
- Ако имате проблеми при свързването с PostgreSQL от Oracle, активирайте проследяването на DG4ODBC и проверете проследяващите файлове, записани в
hs/log
директория. За да активирате проследяването на DG4ODBC, добавете редаHS_FDS_TRACE_LEVEL = DEBUG
къмinitpostgresql.ora
и след това стартирайте/рестартирайте слушателя на Oracle. Акоlog
директория не съществува, създайте я. Например:mkdir logchmod +w log
- Ако получите грешка „ORA-00997:незаконна употреба на LONG тип данни“, добавете един от следните записи към вашия източник на данни ODBC:
DisguiseLong=1 # За дълги колони на PostgreSQL, които не са широки LimitLong=размер в байтове # Ако тази стойност е твърде голяма, ще получите ORA-00997
–Или–
DisguiseWlong=1LimitLong=размер в байтове # Ако тази стойност е твърде голяма, ще получите ORA-00997
- Ако получите „ORA-28562:Грешка при съкращаване на данни за хетерогенни услуги“, когато работите с PostgreSQL данни в Oracle, може да имаме решение за вас, но трябва да разберете последиците от използването му. За повече информация се свържете с екипа за поддръжка на Easysoft ().