Não é possível conectar o SQL * Plus ao Oracle 10g a partir do VMWare Fusion VM

0

Estou tentando conectar-me a um servidor Oracle 10g (host remoto na LAN) de dentro de uma VM do Windows XP hospedada pelo VMWare Fusion no OSX. Embora eu possa conectar-me ao serviço usando o Oracle Net Manager, não posso fazer isso usando o SQL Plus.

O que estou perdendo?

Atualmente estou usando o modo NAT.

    
por Craig 16.02.2011 / 21:17

1 resposta

1

Suponha que seu banco de dados esteja no nó com o nome de host "dbhost"

Em primeiro lugar, você pode pingar dbhost? Se não, então é rede não Oracle.

Se você puder, pode fazer telnet para a porta 1521 naquele host. Caso contrário, é um problema de estilo de firewall ou não há ouvinte do Oracle em execução no nó remoto (ou é uma porta diferente).

Supondo que esteja em execução, você deseja um SID ou SERVICE_NAME do DBA. Eles são geralmente os mesmos e, se for um sistema * nix, fazer um " ps -ef | grep smon " mostrará o (s) SID (s) das instâncias em execução. O banco de dados gratuito do Express Edition normalmente tem o SID do XE

Se 1521 estiver recebendo tráfego, tente

sqlplus user/pass@dbhost:1521/XE

substituindo o XE por qualquer que seja seu SID.

=============================================== ============================= Após comentário abaixo. Eu suspeito de um firewall em algum lugar.

No final do servidor de banco de dados, o ouvinte deve estar ouvindo na porta 1521. Há configurações em sqlnet (tcp_invited_nodes, eu acho) que podem atuar como um firewall, informando ao ouvinte que apenas aceitam conexões de endereços IP da lista de permissões (ou excluem aqueles de IPs na lista negra).

Se o ouvinte aceitar a conexão, ele tentará encontrar o SID ou SERVICE que a conexão está solicitando. Se tal serviço não existir, ele retornará um erro.

Se o serviço existir, o ouvinte tentará passar a conexão ao banco de dados, retornando uma porta diferente através da qual a conexão realmente conversará com o banco de dados (ou seja, a porta 1521 será usada somente durante a conexão inicial). [Há uma exceção para conexões de servidor compartilhado, mas elas são incomuns.]

Potencialmente, o banco de dados pode estar em um modo em que não aceita conexões (modo RESTRICTED ou no processo de STARTUP ou SHUTDOWN). O banco de dados também executa a autenticação (por exemplo, verificando o nome de usuário e a senha).

Meu palpite é que o ouvinte está rejeitando a conexão com base em alguma configuração ou (mais provavelmente) que está falhando em passar a nova conexão de rede através do NAT. Tente usar o OSX Instant Client do host e veja se isso é possível. O cliente instantâneo é muito bonito e descompacta e executa, por isso não é uma instalação grande e não precisa de direitos de administrador ou qualquer coisa.

Se o host funcionar e a VM não funcionar, tente o Bridged em vez do NAT. Isso significa que o convidado da VM obtém seu próprio endereço IP e procura, na rede, como um dispositivo independente, em vez de se esconder atrás do host da VM, como ocorre no NAT.

PS. Fiz um wiki da comunidade, como outras pessoas podem contribuir

    
por 17.02.2011 / 23:24