Poniższe instrukcje pokazują, jak połączyć Oracle w systemie Linux z PostgreSQL. Więcej informacji na temat DG4ODBC można znaleźć w naszym samouczku DG4ODBC.
- Pobierz 64-bitowy sterownik ODBC PostgreSQL dla systemu Linux.
- Zainstaluj i uzyskaj licencję na sterownik PostgreSQL ODBC na komputerze, na którym zainstalowano Oracle.
Instrukcje dotyczące instalacji można znaleźć w dokumentacji sterownika ODBC.
Uwaga Musisz mieć zainstalowany na swoim komputerze menedżer sterowników unixODBC. Dystrybucja Easysoft zawiera wersję menedżera sterowników unixODBC, z którą przetestowano sterownik ODBC Easysoft PostgreSQL. Program instalacyjny sterownika Easysoft daje możliwość zainstalowania unixODBC.
- Utwórz źródło danych ODBC w /etc/odbc.ini, które łączy się z bazą danych PostgreSQL, do której chcesz uzyskać dostęp z Oracle. Na przykład:
[POSTGRES_SAMPLE] Driver=Easysoft ODBC-Postgres Server Description=Easysoft ODBC-Postgres Server Server=192.0.2.1 Port=5432 Database=employees User=postgres Password=p4550rd Logging=No LogFile= Encrypt=No
- Użyj isql, aby przetestować nowe źródło danych. Na przykład:
cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v POSTGRESQL_SAMPLE
W wierszu polecenia wpisz „pomoc”, aby wyświetlić listę tabel. Aby wyjść, naciśnij return w pustym wierszu zachęty.
Jeśli nie możesz się połączyć, zapoznaj się z tym artykułem, aby uzyskać pomoc.
- Utwórz plik inicjujący DG4ODBC. Aby to zrobić, przejdź do
hs/admin
podkatalog. Na przykład:cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
Utwórz kopię pliku
initdg4odbc.ora
. Nazwij nowy plikinitpostgresql.ora
. - Upewnij się, że te parametry i wartości są obecne w Twoim pliku początkowym:
HS_FDS_CONNECT_INFO = my_postgresql_odbc_dsn
Zastąp my_postgresql_odbc_dsn z nazwą źródła danych sterownika PostgreSQL ODBC, które łączy się z docelowym serwerem PostgreSQL. Na przykład
HS_FDS_CONNECT_INFO = "POSTGRES_SAMPLE"
- Skomentuj wiersz, który umożliwia śledzenie DG4ODBC. Na przykład:
#HS_FDS_TRACE_LEVEL = <trace_level>
- Dodaj wpis do
listener.ora
który tworzy SID_NAME dla DG4ODBC. Na przykład:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
- Dodaj wpis DG4ODBC do
tnsnames.ora
który określa SID_NAME utworzony w poprzednim kroku. Na przykład:POSTGRESQL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = postgresql) ) (HS = OK) )
Zastąp oracle_host z nazwą hosta Twojej maszyny Oracle.
- Uruchom (lub uruchom ponownie) nasłuchiwanie Oracle. Na przykład:
lsnrctl stop lsnrctl start
- Połącz się z bazą danych Oracle w SQL*Plus.
- W SQL*Plus utwórz łącze do bazy danych dla docelowego serwera PostgreSQL. Na przykład:
CREATE PUBLIC DATABASE LINK postgresqllink CONNECT TO "my_postgresql_user" IDENTIFIED by "my_postgresql_password" USING 'postgresql'; SELECT * from employees@postgresqllink
Notatki
- Jeśli masz problemy z połączeniem z PostgreSQL z Oracle, włącz śledzenie DG4ODBC i sprawdź pliki śledzenia zapisane w
hs/log
informator. Aby włączyć śledzenie DG4ODBC, dodaj wierszHS_FDS_TRACE_LEVEL = DEBUG
doinitpostgresql.ora
a następnie uruchom/zrestartuj odbiornik Oracle. Jeślilog
katalog nie istnieje, utwórz go. Na przykład:mkdir log chmod +w log
- Jeśli pojawi się błąd „ORA-00997:nielegalne użycie typu danych LONG”, dodaj jeden z następujących wpisów do źródła danych ODBC:
DisguiseLong=1 # For non-Wide PostgreSQL long columns LimitLong=size in bytes # If this value is too big you will get ORA-00997
–Lub–
DisguiseWlong=1 LimitLong=size in bytes# If this value is too big you will get ORA-00997
- Jeśli podczas pracy z danymi PostgreSQL w Oracle pojawi się komunikat „ORA-28562:błąd obcinania danych usług heterogenicznych”, możemy mieć dla Ciebie obejście tego problemu, ale musisz zrozumieć konsekwencje jego używania. Aby uzyskać więcej informacji, skontaktuj się z zespołem pomocy technicznej Easysoft ().