Как отладить драйвер 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 :)