Назад | Перейти на главную страницу

Подключиться к базе данных Oracle, размещенной на виртуальной машине, с хост-машины

Добрый день,

Я только что установил виртуальную машину (используя VirtualBox) Oracle Linux с Oracle Database в ней. После настройки я могу убедиться, что могу подключиться к нему с помощью sqlplus (sqlplus виртуальной машины)

$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Sat Apr 21 14:32:48 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> conn myusername/mypassword
Connected.
SQL> select count(1) from my_table;

  COUNT(1)
----------
    73

SQL> 

Однако, когда я пытаюсь подключиться с помощью JDeveloper с хост-машины, я получаю

Состояние: сбой - проверка не удалась: ошибка ввода-вывода: сетевому адаптеру не удалось установить соединение.

Я попытался подключиться к другим базам данных из нашей интрасети от JDeveloper хост-машины, и им это удалось. Также я попытался отключить iptables виртуальной машины (на всякий случай).

sudo /etc/init.d/iptables stop

Но пока ничего не работает.

Любые идеи?

Спасибо,

Франц Зее

РЕДАКТИРОВАТЬ: Обновление: я только что установил sqlplus на свой хост-компьютер (Примечание для других: Instantclient 10.2.0.4.0 64bit не работает на Mac. Вместо этого используйте 32-битную версию, даже если ваш Mac 64-битный, как мой.), и я попытался подключиться к моей базе данных Oracle на моей виртуальной машине, и это удалось! Однако я все еще не могу подключиться с помощью JDeveloper.

На машине, на которой установлен sqlplus, в вашем случае хост виртуальной машины, вам необходимо установить переменные среды Oracle прежде чем вы сможете подключиться к другим серверам Oracle Database. Например:

setenv ORACLE_SID orcl
setenv ORACLE_HOME /u01/app/oracle/product/11.1.0/db_1
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/lib:/usr/dt/lib:/usr/openwin/lib:/usr/ccs/lib

Возможно, вам придется вручную создать папку администратора и tnsnames.ora файл в этой папке.

Процесс подключения к удаленному серверу Oracle не зависит от мастера и требует некоторого ручного труда с вашей стороны. Справочный документ, ссылка на который приведена выше, проведет вас через то, что вам нужно для вашей конкретной среды.


ИЗМЕНИТЬ 1

Извините, я думаю, что теперь понимаю вещи лучше. Давайте попробуем что-нибудь другое.

Я думаю, что прослушиватель экземпляра на виртуальной машине не прослушивает IP-адрес. На виртуальной машине перейдите на страницу администрирования сетевых служб в веб-интерфейсе Oracle Enterprise Manager. Отредактируйте слушателя (LISTENER_localhost), добавьте слушателя и выберите использование IP-адреса экземпляра. Оставьте порт 1521 по умолчанию. Вас спросят, хотите ли вы перезапустить службу. Пожалуйста, сделай так. Тогда вы сможете подключиться с вашего хоста (или любого другого компьютера, если на то пошло).


РЕДАКТИРОВАТЬ 2

В JDeveloper, используя мастер подключения на остановке 3 из 4, используйте имя службы, а не SID.

Я выяснил, что такое «Статус: сбой - тест не прошел: ошибка ввода-вывода: сетевой адаптер не смог установить соединение». средства. Как оказалось, установить соединение не удалось из-за конфигурации прокси.