Подключение к базе данных 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.