Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 4
  • 568
Czy można i od jakiej wersji Oracle utworzyć dblinka do bazy danych innego producenta MSSQL,PostgreSQL?

Jak skonfigurować środowisko i Oracle'a tak, by mógł korzystać poprzez dblinka z danych na MSSQL-u i PostgreSQL-u?

c_michal
  • Zapytał
  • @ c_michal | 27.06.2014
    • 5
    • 0
    • 2

Odpowiedzi (2)

  • 4

Począwszy od wersji 8i serwer Oracle wyposażony jest w mechanizm HS (Heterogenous Services), który pozwala m.in. wykorzystywać dane pochodzące ze źródeł nie Oracle'owych, takich jak bazy danych innych producentów.

Procedura przygotowania środowiska do tworzenia heterogenicznych dblinków na przykładzie połączenia do PostgreSQL 9.3:

  1. Pobieramy sterownik ODBC
  2. konfigurujemy HS
  3. konfigurujemy Listenera
  4. tworzymy DBLINK

 

W systemie Fedora 20 (kompatybilny z RHEL) wygląda to następująco:

 

yum install postgresql93-odbc

 

Następnie w katalogu domowym użytkownika Oracle umieszczamy plik konfiguracji sterownika ODBC (plik .odbc.ini) :

 

[ODBC Data Sources]
  PG_LINK = PostgreSQL
[PG_LINK]
  Debug = 1
  CommLog = 1
  ReadOnly = no
  Driver = /usr/pgsql-9.3/lib/psqlodbc.so
  Servername = <IP_serwera_PostgreSQL>
  FetchBufferSize = 99
  Username = <nazwa_uzytkownika>
  Password = <haslo_uzytkownika>
  Port = 5432
  Database = <nazwa_bazy_PostgreSQL>
[Default]
  Driver = /usr/lib64/liboplodbcS.so.1

 

Kolejną czynnością jest utworzenie w katalogu $ORACLE_HOME/hs/admin pliku o nazwie initPG_LINK.ora o następującej treści:

 

HS_FDS_CONNECT_INFO = PG_LINK
HS_FDS_TRACE_LEVEL = 0
HS_FDS_SHAREABLE_NAME=/usr/pgsql-9.3/lib/psqlodbc.so
set ODBCINI=/home/oracle/.odbc.ini

 

Dalej pozostało już tylko skonfigurować Listenera. Wprowadzamy modyfikacje do pliku tnsnames.ora:

 

PG_LINK  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=<adres_serwera_Oracle>)(PORT=1521))
    (CONNECT_DATA=(SID=PG_LINK))
    (HS=OK)
  )

 

oraz do listener.ora:

 

SID_LIST_ORCL1=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=PG_LINK)
         (ORACLE_HOME=/u01/app/oracle/product/11.2.0/orcl1)
         (PROGRAM=dg4odbc)
      )
  )

 

A następnie restartujemy Listenera:

 

lsnrctl reload orcl1

 

Pozostało już tylko utworzyć dblink (cudzysłowy są WAŻNE!):

 

create database link POSTGRES connect to "nazwa_użytkownika" identified by "hasło" using 'PG_LINK';

select * from "nazwa_tabeli"@POSTGRES; 

 

Mam nadzieję, że przedstawiłem cały proces czytelnie.

Pozdrawiam

  • Odpowiedział
  • @ | 30.06.2014
  • TRENER MODERATOR ALTKOM AKADEMII
  • 0
  • Odpowiedział
  • @ | 26.11.2014
  • TRENER MODERATOR ALTKOM AKADEMII