Подключение к базе данных Oracle, установленной на одном компьютере, к приложению java с другого компьютера

Я установил Oracle 12c (класс рабочего стола) на свою машину, и я могу использовать его через sql developer на той же машине. Теперь, как я могу использовать ту же базу данных с другого компьютера (для Java-приложения) в локальной сети? Я попытался использовать тонкий драйвер jdbc следующим образом: jdbc:oracle:thin:@10.0.11.69:1521:orcl где 10.0.11.69 - мой ip-адрес, где установлен Oracle. Нужно ли устанавливать какой-либо сервер, на котором установлен oracle (10.0.11.69), чтобы подключаться к моей БД с другой машины? Я пробовал это в течение прошлых 3 дней и сослался на много вопросов той же модели, но ни один не решил мою проблему. Мое описание tnsnames.ora выглядит следующим образом:

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

Заранее спасибо.

3 ответа

Спасибо за следующую ссылку, Настройка соединения между клиентом и сервером Oracle 10g

после долгого исследования я обнаружил, что мне нужно добавить свой адрес локальной сети (10.0.11.69) в файл listener.ora, который решает мою проблему.

так что моя listener.ora теперь будет выглядеть так:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
        (ADDRESS_LIST=
            (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
            (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.11.69)(PORT = 1521))

        )

    )
  )

Вам необходимо подключиться к PDB, если это установка Oracle 12c. Вы можете добавить следующую запись в tnsnames.ora:

   pdborcl =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = pdborcl)
      )
    )

После установки этого слушатель должен быть перезапущен.

lsnrctl stop
lsnrctl start

Тогда строка подключения будет выглядеть примерно так:

jdbc:oracle:thin:@//10.0.11.69:1521/pdborcl

Обратите внимание, что строка подключения выше использует имя службы вместо SID, потому что в 12C нам нужно использовать имя службы вместо SID для подключения к PDB. Проверьте этот пост для более подробной информации.

Приложение Java не будет использовать tnsnames.ora самостоятельно. Вы должны позвонить:

System.setProperty("oracle.net.tns_admin", "..path to tnsnames.ora");

Сказать водителю, где его искать. Также обратите внимание, что некоторые конструкции tnsnames.ora не поддерживаются тонким драйвером. Например, директива include.

Другие вопросы по тегам