Ad Widget

Collapse

Не подключается ODBC к БД Oracle

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • depak
    Junior Member
    • Jan 2020
    • 11

    #1

    Не подключается ODBC к БД Oracle

    После настройки мониторинга БД по инструкции - https://www.zabbix.com/documentation...es/odbc_checks (настраивал на Ubuntu Server 18.04), Zabbix выдает ошибку после создания элемента данных: "Cannot connect to ODBC DSN [SQL_ERROR]".
    При выполнении команды isql -v "dsn" - ничего не происходит (даже ошибок не выдает).
    Куда копать? Что посмотреть? Конфигурации проверял - ничего криминального не заметил.

  • AvaTTaR
    Member
    • Dec 2018
    • 96

    #2
    Что на выхлопе odbcinst -j ?
    дайте время на выполнение isql -v "dsn" - скорее всего по таймауту вылетает. Если так то проверьте TNS, лучше всего что бы в TNS был не IP а DNS-имя сервера.
    Ещё для локализации попробуйте подключиться через sqlplus:
    sqlplus login/password@dsn
    Last edited by AvaTTaR; 16-01-2020, 10:22.

    Comment

    • depak
      Junior Member
      • Jan 2020
      • 11

      #3
      admin@dserv:~$ odbcinst -j
      unixODBC 2.3.4
      DRIVERS............: /etc/odbcinst.ini
      SYSTEM DATA SOURCES: /etc/odbc.ini
      FILE DATA SOURCES..: /etc/ODBCDataSources
      USER DATA SOURCES..: /home/admin/.odbc.ini
      SQLULEN Size.......: 8
      SQLLEN Size........: 8
      SQLSETPOSIROW Size.: 8

      Проблему "бездейсвтием" при выполнении isql нашел - указывал в odbcinst.ini не тот драйвер.
      Сейчас же при подключении возникает ошибка: "[S1000][unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net service name is incorrectly specified"
      Ума не приложу почему...

      Comment

      • AvaTTaR
        Member
        • Dec 2018
        • 96

        #4
        Криво оракл поставили - гляньте вот тут http://blog.matros.com.ua/category/ora-12162/

        Comment

        • depak
          Junior Member
          • Jan 2020
          • 11

          #5
          Originally posted by AvaTTaR
          Криво оракл поставили - гляньте вот тут http://blog.matros.com.ua/category/ora-12162/
          Поправил - появилась новая ошибка:

          [S1000][unixODBC][Oracle][ODBC][Ora]ORA-12545: Connect failed because target host or object does not exist

          Comment

          • AvaTTaR
            Member
            • Dec 2018
            • 96

            #6
            Ну как бы ошибка чёткая- кривой TNS- такого хоста не существует, проверьте настройки DNS на сервере, проверьте резолвит ли имя сервера при ping-е

            Comment

            • depak
              Junior Member
              • Jan 2020
              • 11

              #7
              Проблема решилась установкой Red Hat. К базе из командной строки успешно подключился. Началась проблема следующего характера
              В Zabbix выскакивает, как я понимаю, классическая ошибка "Cannot connect to ODBC DSN: [SQL_ERROR]:[01000][0][[unixODBC][Driver Manager]Can't open lib '/usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1' : file not found]"
              Окружения настроены.
              Есть одно НО - почему то при выполнении следующей команды под SU не находит все либы

              Click image for larger version

Name:	Capture.PNG
Views:	551
Size:	45.8 KB
ID:	393999


              Comment

              • AvaTTaR
                Member
                • Dec 2018
                • 96

                #8
                Похоже на проблему с правами - проверьте chmod на библиотеках оракла, чисто для локализации проблемы можно попробовать выставить им 777 и посмотреть тогда что ответит sudo ldd

                Comment

                • depak
                  Junior Member
                  • Jan 2020
                  • 11

                  #9
                  Originally posted by AvaTTaR
                  Похоже на проблему с правами - проверьте chmod на библиотеках оракла, чисто для локализации проблемы можно попробовать выставить им 777 и посмотреть тогда что ответит sudo ldd
                  Выставил - безрезультатно.
                  Так же праваил окружения Root'a тож не помогло

                  Comment

                  • DSV12
                    Senior Member
                    Zabbix Certified Specialist
                    • Nov 2018
                    • 156

                    #10
                    Originally posted by depak

                    Выставил - безрезультатно.
                    Так же праваил окружения Root'a тож не помогло
                    Подсказка здесь: https://unix.stackexchange.com/quest...doesnt-find-it

                    Если коротко: это происки sudo:
                    LD_LIBRARY_PATH settings are dropped by sudo for the security. To avoid being affected by that, you could add those paths to dynamic loader's global search path list.

                    Put the library path lines in /etc/ld.so.conf.d/your.conf

                    Then update /etc/ld.so.cache by the folowing command:
                    sudo ldconfig
                    Your.conf - это ваш конфиг для ораклового лоадера, имя неважно, н-р, oracle.conf, главное, чтобы он "жил" в /etc/ld.so.conf.d/ (все файлы *.conf из этого каталога инклюдятся в /etc/ld.so.conf).

                    Comment

                    • depak
                      Junior Member
                      • Jan 2020
                      • 11

                      #11
                      Originally posted by depak
                      Проблема решилась установкой Red Hat. К базе из командной строки успешно подключился. Началась проблема следующего характера
                      В Zabbix выскакивает, как я понимаю, классическая ошибка "Cannot connect to ODBC DSN: [SQL_ERROR]:[01000][0][[unixODBC][Driver Manager]Can't open lib '/usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1' : file not found]"
                      Окружения настроены.
                      Есть одно НО - почему то при выполнении следующей команды под SU не находит все либы

                      Click image for larger version

Name:	Capture.PNG
Views:	551
Size:	45.8 KB
ID:	393999

                      Проблему решил.
                      Заключалась в том, что ненадо было руками создавать symlink (все что наворотил - поудалял).
                      Надо было просто выполнить команду sudo ldconfig и все автоматически подтянулось.

                      Comment

                      • depak
                        Junior Member
                        • Jan 2020
                        • 11

                        #12
                        Originally posted by DSV12

                        Подсказка здесь: https://unix.stackexchange.com/quest...doesnt-find-it

                        Если коротко: это происки sudo: Your.conf - это ваш конфиг для ораклового лоадера, имя неважно, н-р, oracle.conf, главное, чтобы он "жил" в /etc/ld.so.conf.d/ (все файлы *.conf из этого каталога инклюдятся в /etc/ld.so.conf).
                        Выставил все окружения.
                        Теперь возникает ошибка при выполнении sudo isql -v "DSN" и zabbix'a (из под моей админской учетки все работает):

                        Click image for larger version  Name:	1.PNG Views:	0 Size:	6.1 KB ID:	394065

                        Click image for larger version  Name:	2.PNG Views:	0 Size:	12.8 KB ID:	394066


                        Пробовал отключать SELinux - не помогло.
                        Last edited by depak; 24-01-2020, 18:07. Reason: [08004][unixODBC][Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect

                        Comment

                        • depak
                          Junior Member
                          • Jan 2020
                          • 11

                          #13
                          Originally posted by depak

                          Выставил все окружения.
                          Теперь возникает ошибка при выполнении sudo isql -v "DSN" и zabbix'a (из под моей админской учетки все работает):

                          Click image for larger version Name:	1.PNG Views:	0 Size:	6.1 KB ID:	394065

                          Click image for larger version Name:	2.PNG Views:	0 Size:	12.8 KB ID:	394066


                          Пробовал отключать SELinux - не помогло.
                          upd.
                          Заработало!
                          В файлах
                          /lib/systemd/system/zabbix-proxy.service
                          /lib/systemd/system/zabbix-server.service


                          Прописал следующие окружения
                          Environment="ORACLE_HOME=/usr/lib/oracle/12.1/client64"
                          Environment="LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64"
                          Environment="TNS_ADMIN=$ORACLE_HOME/network/admin"
                          Environment="TNS_ADMIN=/usr/lib/oracle/12.1/client64/network/admin"



                          И все заработало.

                          Comment

                          Working...