Database
 sql >> Baza danych >  >> RDS >> Database

Badanie błędu ORA 028513 DG4ODBC

Połączenie Oracle z SQL Server jest jednym z najczęstszych przypadków użycia sterownika ODBC Easysoft SQL Server. Wsparcie tego połączenia to nie tylko pomoc w ustawieniu naszego sterownika. Oznacza to również pomoc w rozwiązywaniu problemów z konfiguracją Oracle, które uniemożliwiają Oracle Heterogenous Services dotarcie do załadowania naszego sterownika.

Ostatnio klient sterownika ODBC SQL Server zgłosił nam następujący błąd:

ORA-28513: internal error in heterogeneous remote agent

Klient był w stanie dostarczyć nam dziennik śledzenia DG4ODBC, który powiedział nam dwie rzeczy:

  1. Pliki konfiguracyjne Oracle (.ora) zostały poprawnie skonfigurowane. Jeśli te pliki zawierają błąd (np. brakujący lub obcy nawias), nie zostanie wygenerowany żaden dziennik śledzenia DG4ODBC.
  2. DG4ODBC nawet nie próbował załadować menedżera sterowników unixODBC.

W sytuacjach takich jak te, w których log Oracle DG4ODBC nie identyfikuje problemu (zwykle zawsze będzie zawierał więcej informacji niż zgłaszany przez aplikację błąd ORA-NNNNN), a logowanie ODBC nie jest jeszcze możliwe, sięgamy po strace lub kratownica . Na przykład:

  1. Rozpocznij dwie sesje powłoki jako użytkownik Oracle.
  2. W powłoce 1 zatrzymaj program nasłuchujący Oracle.
  3. Uruchom odbiornik za pomocą tego polecenia:
    strace -f -o /tmp/easysoft.log -s 512 lsnrctl start

    —Lub—

    truss -wall -rall -o /tmp/easysoft.log lsnrctl start
  4. W powłoce 2 uruchom SQL*PLus i uruchom instrukcję SQL względem łącza bazy danych DG4ODBC / SQL Server.
  5. W powłoce 2 zatrzymaj nasłuchiwanie Oracle.

Jednak narzędzie do śledzenia biblioteki systemowej (truss w przypadku klienta) nadal nie ujawnił przyczyny problemu.

W końcu okazało się, że klient ustawiał ORA_NLS10 zmienna środowiskowa, a efektem ubocznym tego było uniemożliwienie działania DG4ODBC. Ponieważ zmienna nie musiała być ustawiana na tym komputerze, usunięcie jej i usunięcie z pliku profilu było rozwiązaniem problemu klienta.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie Jenkinsa z Kubernetes AWS, część 3

  2. Znaczenie linii bazowych

  3. Różne plany dla identycznych serwerów

  4. Dowiedz się, jak utworzyć PK z wyzwalacza sekwencji w programie SQL Developer

  5. Zrozumienie grupy logów ponawiania vs plik vs członek