Как отладить драйвер ODBC в среде гетерогенных служб Oracle?

Гетерогенные службы Oracle - это функция базы данных Oracle, которая позволяет базе данных взаимодействовать с базами данных не-Oracle через их драйверы ODBC.

Отладка драйвера ODBC с помощью клиентских инструментов ODBC, таких как isql, довольно проста.

С isql - я могу ввести информацию о драйвере в командной строке. isql и аналогичные инструменты принимают имя ODBC DSN и загружают драйвер напрямую. Таким образом, когда я набираю: info sharedlibrary в командной строке GDB, я вижу загруженную разделяемую библиотеку ODBC, которая заинтересована в отладке.

Как я могу сделать то же самое, используя sqlplus или другой клиентский инструмент Oracle? Тем не менее, с sqlplus нет никакой информации, когда драйвер загружается.

Как отладить драйвер ODBC ("динамически загружаемая библиотека") с использованием Oracle Heterogene Services?

Среда: Linux Отладчик: GDB Oracle гетерогенных служб: https://docs.oracle.com/cd/A81042_01/DOC/server.816/a76960/hs_conce.htm

1 ответ

sqlplus (CLI) или sqldeveloper (GUI) - это чисто интерфейсы для выполнения запросов к базе данных Oracle. В контексте Oracle HS сами инструменты не загружают драйвер ODBC. Это база данных Oracle, которая загружает драйвер ODBC через dg4odbc, Мне потребовалось некоторое время, чтобы обнаружить этот факт. Для отладки используя gdb действуйте следующим образом:

# Connect to Oracle DB:
sqlplus system/oracle@0.0.0.0:1521/orcl12c

# After connecting, dg4odbc is still not activated
# Run a single query for Oracle DB to load the ODBC driver
# After, initial query dg4odbc is active
[oracle@oracle_vm ~]$ ps aux|grep dg4odbc
oracle   17905 17.5  1.0 497392 63244 ? Ssl  13:56   0:01 dg4odbcNORTHWIND_MYSQL (LOCAL=NO)

# Use the PID from above process to debug in GDB
[oracle@oracle_vm ~]$ gdb dg4odbc 17905

# You can now debug the ODBC driver which is loaded by dg4odbc
# You can check by running "info sharedlibrary" at the GDB prompt
# Happy Debugging :)
Другие вопросы по тегам