Не могу подключиться из консоли zabbix, к БД оракла через isql, пр подключении выдает ошибка сегментирования. К БД MSSQL подключение проходит,а к бд оракла нет. Где смотреть? Из под windows подключение под данным юзером проходит. В tns и odbc указал адреса и dsn
Ad Widget
Collapse
Подключение к БД Оракл
Collapse
X
-
Tags: None
-
Видимо, что-то не так прописано в odbcinst.ini (ссылка не на тот бинарник драйвера) или odbc.ini (ссылка не на тот драйвер, не на тот TNS или вообще не тот набор параметров).
Для примера (драйвер версии 19.6).
Секция файла tnsnames.ora:
Секция в odbcinst.ini:Code:testdb = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testdb.mydomain.local)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = testdb) ) )
Секция в odbc.ini:Code:[oracle] Description = Oracle ODBC driver for Oracle 19 Driver = /usr/lib/oracle/19.6/client64/lib/libsqora.so.19.1 Setup = FileUsage = CPTimeout = CPReuse =
NB: Имя секции и параметр "DSN=" должны совпадать, а параметр "ServerName=" ссылается на TNS (имя секции из файла tnsnames.ora).Code:[ora-test] AggregateSQLType = FLOAT Application Attributes = T Attributes = W BatchAutocommitMode = IfAllSuccessful BindAsFLOAT = F CacheBufferSize = 20 CloseCursor = F DisableDPM = F DisableMTS = T DisableRULEHint = T Driver = oracle DSN = ora-test EXECSchemaOpt = EXECSyntax = T Failover = T FailoverDelay = 10 FailoverRetryCount = 10 FetchBufferSize = 64000 ForceWCHAR = F LobPrefetchSize = 8192 Lobs = T Longs = T MaxLargeData = 0 MaxTokenSize = 8192 MetadataIdDefault = F QueryTimeout = T ResultSets = T ServerName = testdb SQLGetData extensions = F SQLTranslateErrors = F StatementCache = F Translation DLL =
Команда "isql -v DSN имяПользователя пароль" должна показывать успешное подключение, например:
Code:[COLOR=#FF0000]~ #[/COLOR] [COLOR=#0000FF]isql -v ora-test zabbix ******[/COLOR] +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> [COLOR=#0000FF]quit[/COLOR] [COLOR=#FF0000]~ #[/COLOR]
-
tnsnames.ora
IBANK =
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.52.0.245)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=IBANK)
)
)
odbcinst.ini
[OracleDriver]
Description=ODBC for Oracle 12
Driver=/usr/lib/oracle/12.2/client64/lib/libsqora.so.12.1
odbc.ini
[IBANK]
Driver = OracleDriver
DSN = IBANK
ServerName = 10.52.0.245/IBANK
UserID = *
Password = *
у меня при подключении показывает ошибка сегментирования
[root@zabbix etc]# isql -v IBANK * *
Ошибка сегментирования
Comment
-
-
Ну, не знаю... А просто командная строка к Ораклу работает?
Code:export NLS_LANG=american_cis.cl8mswin1251 export ORACLE_BASE=/usr/lib/oracle/12.2 export ORACLE_HOME=/usr/lib/oracle/12.2/client64 export ORACLE_SID=НУЖНОЕ_ИМЯ export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LIBPATH=/usr/lib/oracle/12.2/client64/lib export PATH=$PATH:/usr/lib/oracle/12.2/client64/bin ORAUSER="ИМЯ/ПАРОЛЬ" echo "SELECT [чего-нибудь откуда-нибудь]" | sqlplus -s ${ORAUSER}@$ORACLE_SIDComment
-
Спасибо, проблема решилась
не было доступа у юзера
ORA-01045: user * lacks CREATE SESSION privilege; logon denied
Comment
-
Нет, там проблема с переменными
если пропищу в текущей сессии
export NLS_LANG=american_cis.cl8mswin1251
export ORACLE_BASE=/usr/lib/oracle/12.2
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LIBPATH=/usr/lib/oracle/12.2/client64/lib
export PATH=$PATH:/usr/lib/oracle/12.2/client64/bin
то сразу все становится ок, подключения проходят, если закрываю сессию, то при след входе опять ошибка сегментированияComment
Comment