Я пытаюсь настроить сервер базы данных Oracle (на данный момент только для тестирования) на виртуальной машине.
Настройка, которую я использую:
Эта проблема
Я не могу получить доступ к базе данных (через порт 1521, с помощью sqlplus или разработчика SQL) с хоста. Однако я могу получить к нему доступ из самой виртуальной машины (используя sqlplus).
Я также могу подключиться к виртуальной машине по SSH с хоста, и я могу получить доступ к веб-интерфейсу с хоста, когда перейду к:
http://127.0.0.1:8080/apex
Таким образом, настройка NAT в VirtualBox до некоторой степени работает.
Кажется, слушатель встал, когда я выполняю lsnctrl статус. Файл listener.ora выглядит так:
# listener.ora Network Configuration File:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
Когда я пытаюсь подключиться с хоста, я получаю следующую ошибку (та же команда работает при выполнении в CentOS):
PS C:\Users\winuser> sqlplus system/thepassword@127.0.0.1
SQL*Plus: Release 11.2.0.3.0 Production on Fr Jul 12 16:56:25 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
Порт 1521 также кажется активным в виртуальной машине, и переадресация портов настроена соответствующим образом в VirtualBox:
[root@localhost admin]# nmap 127.0.0.1
Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-12 17:02 CEST
Nmap scan report for localhost.localdomain (127.0.0.1)
Host is up (0.0000050s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
631/tcp open ipp
1521/tcp open oracle
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
Спасибо за любые советы или предложения.
Вы не можете подключиться к базе данных, используя только IP-адрес.
Бегать
lsnrctl status
на гостевой машине, чтобы узнать имя службы и имя экземпляра (например, ORCL). Затем отредактируйте tnsnames.ora на хост-машине следующим образом:
ORCL=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=127.0.0.1)
(PORT=1521)
)
(CONNECT_DATA=
(SERVER=dedicated)
(SERVICE_NAME=your_service_name_here)
)
)
и попробуйте TNSPING:
tnsping ORCL
Это должно было сказать что-то вроде «Хорошо (20 мс)». Наконец, запустите sqlplus:
sqlplus user/password@ORCL
Для получения дополнительной информации прочтите документацию Oracle: http://www.oracle.com/pls/db112/portal.portal_db?selected=4&frame=#network_management
Похоже на проблему с сетевой конфигурацией Oracle. Либо используйте сетевой менеджер, либо вручную отредактируйте sqlnet.ora и tnsnames.ora в $ ORACLE_HOME / network / admin.