Instale um banco de dados Oracle em uma VM linux

1

Estou tentando configurar um servidor de banco de dados Oracle (no momento apenas para fins de teste) em uma máquina virtual.

A configuração que estou usando:

  • VirtualBox
  • Adaptador de rede no modo NAT (redirecionando as portas 22- > 22, 80- > 80, 1521- > 1521, 8080- > 8080)
    • Eu preferiria evitar a interligação em rede, se possível
    • Seria bom se o banco de dados pudesse ser acessado pelo mundo externo, e não apenas pelo sistema operacional host
  • CentOS 6.4 64 bits
  • Oracle XE, versão 11.2.0.2.0 "Produção", instalado e configurado usando as portas padrão (1521 e 8080)
  • Firewall desativado no sistema operacional convidado e no sistema operacional host
  • O sistema operacional host está por trás de um proxy

O problema

Não consigo acessar o banco de dados (pela porta 1521, usando o sqlplus ou o desenvolvedor SQL) do host. Eu posso acessá-lo da própria VM embora (usando o sqlplus).

Eu também posso usar o SSH do host na VM e posso acessar a interface da Web a partir do host quando navego para:

http://127.0.0.1:8080/apex

Portanto, a configuração NAT do VirtualBox parece funcionar até certo ponto.

Parece que o ouvinte está ativo quando eu executo status lsnctrl . O arquivo listener.ora é assim:

# 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)

Quando tento conectar-me a partir do host, recebo o seguinte erro (o mesmo comando funciona quando executado no CentOS):

PS C:\Users\winuser> sqlplus system/[email protected]

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

A porta 1521 também parece estar ativa na VM, e o encaminhamento de porta é configurado apropriadamente no 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

Obrigado por quaisquer dicas ou sugestões.

    
por Mr. Pixel 12.07.2013 / 17:08

2 respostas

3

Você não pode se conectar ao banco de dados usando apenas o endereço IP.

Executar

lsnrctl status

na máquina convidada para descobrir o nome do serviço e o nome da instância (ORCL, por exemplo). Em seguida, edite o tnsnames.ora na máquina host da seguinte forma:

ORCL=
(DESCRIPTION=
 (ADDRESS=
   (PROTOCOL=TCP)
   (HOST=127.0.0.1)
   (PORT=1521)
 )
 (CONNECT_DATA=
   (SERVER=dedicated)
   (SERVICE_NAME=your_service_name_here)
 )
)

e tente TNSPINGing:

tnsping ORCL

Deveria dizer algo como "Ok (20 ms)" Por fim, execute o sqlplus:

sqlplus user/password@ORCL

Para mais informações, leia a Documentação da Oracle: link

    
por 03.08.2013 / 23:24
1

Isso parece um problema com sua configuração de rede do Oracle. Use o gerenciador de rede ou edite manualmente sqlnet.ora e tnsnames.ora em $ ORACLE_HOME / network / admin.

    
por 12.07.2013 / 17:33