Невозможно подключиться к базе данных с помощью SQL Developer (не загружается с tnsnames.ora)

Я установил Oracle 11g & SQL Developer на свою ОС Linux Mint.

После установки ORACLE_PATH и соответствующей переменной в файле .bashrc я могу подключиться с помощью sqlplus.

Снимок моего tnsnames.ora

  XE =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
          (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = XE)
          )
        )

 EXTPROC_CONNECTION_DATA =
            (DESCRIPTION =
              (ADDRESS_LIST =
                (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
              )
              (CONNECT_DATA =
                (SID = PLSExtProc)
                (PRESENTATION = RO)
              )   
    )

тоже пробовал с (HOST = localhost).

Мой локальный хост и IP-адрес указаны в /etc/hosts файле.

Я настроил каталог TNSnames для разработчика sql, выполнив следующую команду:

tools->Preferences->Database->advanced->Tnsnames Directory (where tnsnames.ora is stored)

Установите ORACLE_HOME как :/u01/app/oracle/product/11.2.0/xe/

(Невозможно подключиться к SQL Developer даже с учетными данными SYS / SYSDBA)

Я получаю ошибку:

слушатель отказался установить соединение ora-12514 слушатель в настоящее время не знает о запрошенной услуге

Я пробовал почти каждое решение, следуя сообщениям:

  • Google
  • Переполнение стека
  • Блоги
  • Другие решения

Но не смог решить мою проблему.

Пожалуйста, не помечайте этот вопрос как повторяющийся. Я сильно застрял в этом.

ИЗМЕНИТЬ: я пытаюсь подключиться, используя:

1) Тип подключения: Базовый; Роль: по умолчанию

Имя хоста: Localhost; Порт: 1521; SERVICE_NAME: xe

Ошибка:

слушатель отказался установить соединение ora-12514 слушатель в настоящее время не знает о запрошенной услуге

2) Тип подключения: TNS; Роль: по умолчанию

При указании идентификатора подключения выдается:

no ocijdbc12 in java.library.path

Указание сетевого псевдонима XE (выбор из раскрывающегося меню) вызывает:

Сетевому адаптеру не удалось установить соединение

Тем не менее, я могу получить доступ с использованием учетных данных SYS и пользовательских учетных данных с терминала - sqlplus


person inityk    schedule 24.03.2018    source источник
comment
Вы используете тип подключения TNS? Вы пробовали прямое соединение? Просто укажите имя хоста, порт и «xe» в качестве SID (идентификатора службы) в сведениях о подключении.   -  person thatjeffsmith    schedule 25.03.2018
comment
@thatjeffsmith Я обновил свой вопрос, чтобы согласовать с вами.   -  person inityk    schedule 25.03.2018


Ответы (1)


Наконец-то! Я могу подключиться к базе данных с помощью SQL Developer.

(Я проверил, что порт 1521 открыт и смог проверить связь с локальным хостом с портом 1521, и он не был заблокирован брандмауэром)

Причина, по которой мне не удалось подключиться, была No TNS listener (это я получил при попытке подключиться из командной строки SQL)

Я понимаю, что запуск SQL * Plus из терминала не требует подключения TNS Listener.

Для решения пришлось заменить HOST в Listener.ORA файле.

Из

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

To

(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0) (PORT = 1521))

Затем я перезапускаю слушателя,

lsnrctl stop

lsnrctl start
person inityk    schedule 25.03.2018
comment
Вы можете использовать тип подключения по наследству в SQLDev, если это произойдет снова, тогда он тоже может подключиться к базе данных без прослушивателя. - person thatjeffsmith; 25.03.2018
comment
@thatjeffsmith, спасибо за информацию о завещании! кстати, я получаю эту ошибку при выборе типа подключения local / bequeath из раскрывающегося списка: no ocijdbc12 in java.library.path - person inityk; 25.03.2018