Fazendo funcionar o Oracle® 10g XE em um Ubuntu Server com acesso remoto (http) liberado
Saudações.
Esta semana tive que fazer funcionar o Oracle® 10g Express Edition no Ubuntu Server (sem X instalado) com acesso remoto HTTP.
O Oracle® 10g XE requer no mínimo 1024MB de partição swap no sistema. O artigo[0] do Krix Apolinário sobre como extender a memória swap pode ser útil. A instalação é tranquila e sem maiores atropelos. O pacote de instalação[1] contém pucas dependências (o meu Ubuntu reclamou da ausência do dos pacotes bc e libaio) e o artigo do Zezival Sabino Neto[2] é bastante útil para o processo de instalação.
Após o término da configuração, é necessário reiniciar o Oracle®.
Neste ponto percebemos que o acesso ao gerenciador Web (APEX - Application Express) está restrito apenas ao localhost. Pesquisando no Google, descobri o post do Rodrigo Almeida[3] que mostra como é muito fácil liberar o acesso remoto, sendo que para isto ele faz uso do próprio APEX. Acontece que na istalação do Ubuntu Server não dispomos de ambiente gráfico e por isso não podemos acessar o APEX a partir do servidor. Tentei ainda realizar o procedimento demonstrado por ele através de um browser modo texto - o elinks - mas o mesmo não consegue ativar o método da ação que nos interessa.
Pesquisando um pouco mais, descobri um artigo[4] no wiki Ebasso.net que mostra exatamente o que precisava: Como liberar o acesso remoto (http) do Oracle® XE pela linha de comando. Porém, este artigo não trata da configuração do TNS (Transparent Network Substrate) necessário para o acesso via sqlplus.
Pondo a mão na massa...
A sequência completa dos comandos são listadas a seguir:
1º Baixe o pacote de instalação[1]. Eu utilizei o oracle-xe-universal_10.2.0.1-1.0_i386.deb. Para baixar o pacote de instalação do site da Oracle® é necessário ser cadastrado no mesmo.
2º Instale o programa com o dpkg:
Certifique-se também que o computador onde será instalado o Oracle® XE dispõe de 1024MB de partição swap.
3º Configure o sistema: Para isso, execute:
4º Configure o TNS: Crie um arquivo chamado tnsnames.ora no diretório /usr/lib/oracle/. O conteudo desse arquivo deve se parecer com o seguinte:
5º Definir variáveis de ambiente: É necessário definir as seguintes variáveis de ambiente para que o sqlplus funcione:
Referências
Esta semana tive que fazer funcionar o Oracle® 10g Express Edition no Ubuntu Server (sem X instalado) com acesso remoto HTTP.
O Oracle® 10g XE requer no mínimo 1024MB de partição swap no sistema. O artigo[0] do Krix Apolinário sobre como extender a memória swap pode ser útil. A instalação é tranquila e sem maiores atropelos. O pacote de instalação[1] contém pucas dependências (o meu Ubuntu reclamou da ausência do dos pacotes bc e libaio) e o artigo do Zezival Sabino Neto[2] é bastante útil para o processo de instalação.
I M P O R T A N T E:
No processo de configuração do Oracle® será solicitado a senha do usuário SYSTEM. Não utilize o caracter '@' (arroba) na composição desta senha, sob pena de não conseguir logar no banco através do sqlplus ou outro cliente.
Após o término da configuração, é necessário reiniciar o Oracle®.
Neste ponto percebemos que o acesso ao gerenciador Web (APEX - Application Express) está restrito apenas ao localhost. Pesquisando no Google, descobri o post do Rodrigo Almeida[3] que mostra como é muito fácil liberar o acesso remoto, sendo que para isto ele faz uso do próprio APEX. Acontece que na istalação do Ubuntu Server não dispomos de ambiente gráfico e por isso não podemos acessar o APEX a partir do servidor. Tentei ainda realizar o procedimento demonstrado por ele através de um browser modo texto - o elinks - mas o mesmo não consegue ativar o método da ação que nos interessa.
Pesquisando um pouco mais, descobri um artigo[4] no wiki Ebasso.net que mostra exatamente o que precisava: Como liberar o acesso remoto (http) do Oracle® XE pela linha de comando. Porém, este artigo não trata da configuração do TNS (Transparent Network Substrate) necessário para o acesso via sqlplus.
Pondo a mão na massa...
A sequência completa dos comandos são listadas a seguir:
1º Baixe o pacote de instalação[1]. Eu utilizei o oracle-xe-universal_10.2.0.1-1.0_i386.deb. Para baixar o pacote de instalação do site da Oracle® é necessário ser cadastrado no mesmo.
2º Instale o programa com o dpkg:
# dpkg -i oracle-xe-universal_10.2.0.1-1.0_i386.debO comando acima poderá reclamar de alguma dependência. Nesse caso instale as dependências e repita o comando acima.
Certifique-se também que o computador onde será instalado o Oracle® XE dispõe de 1024MB de partição swap.
3º Configure o sistema: Para isso, execute:
# /etc/init.d/oracle-xe configureA partir daí serão solicitados de você o número das portas que deverão ser utilizados para o acesso http e comunicação, respectivamente (cuidado com conflitos), e a senha do usuário SYSTEM, que é o administrador do sistema.
4º Configure o TNS: Crie um arquivo chamado tnsnames.ora no diretório /usr/lib/oracle/. O conteudo desse arquivo deve se parecer com o seguinte:
SAJ =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = XE)
(SERVER = DEDICATED)
)
)
Nota: Modifique os parâmetros para mostrados no exemplo acima seguindo as configurações do seu servidor de banco de dados. O termo NOME_CONEXAO (ou o que estiver em seu lugar) será referenciado para possibilitar o acesso ao banco através do sqlplus.
5º Definir variáveis de ambiente: É necessário definir as seguintes variáveis de ambiente para que o sqlplus funcione:
# export TNS_ADMIN=/usr/lib/oracle6º Log com o sqlplus:
# source /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
# sqlplus SYSTEM@NOME_CONEXAO7º Libere o acesso remoto: Através do seguinte comando, finalmente liberaremos o acesso remoto:
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);8º Saia do sqlplus
SQL> exit9º Reinicie o serviço para que as configurações surtam efeito:
# /etc/init.d/oracle-xe restartPronto! Se você fez tudo certo, o acesso remoto ao APEX está liberado.
Referências
- [0] http://blog.krix.com.br/2009/02/04/aumentando-a-swap-dinamicamente/
- [1] http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html
- [2] http://www.vivaolinux.com.br/dica/Instalando-Oracle-10g-xE-no-Ubuntu
- [3] http://forum.imasters.uol.com.br/index.php?showtopic=176920&hl=acesso+remoto
- [4] http://ebasso.net/wiki/index.php/Oracle:_Liberando_o_acesso_remoto_(http)_do_Oracle_XE
Deu certo, valeu pela ajuda!
ResponderExcluirApenas complementando.
ResponderExcluirO @ pode ser usado na senha, porem alguns cuidados deverão ser tomados na hora de usar o sqlplus.
( usando escape "\" antes dos caracteres especiais )
Ex:
sqlplus usuario/\"senhacom\@\"@servidor
ou se a conexao for local:
sqlplus usuario/\"senhacom\@\"