Como alterar a porta 1521 no Oracle
Sergio boa tarde !
Eu segui o seu roteiro da instalação do Oracle 19c no Docker mudando apenas a porta para 1523. Após o término o banco levanta sem erros, mas não consigo acessá-lo pelo SQL Developer.
Poderia me ajudar ?
Adalto
Olá pessoal !
Recebi além do e-mail acima, pelo menos mais dois com o mesmo tipo de ocorrência. Devido a isso, preferi escrever esse artigo ao invés de responder individualmente.
A porta 1521 é a padrão do listener do Oracle. Quando instalado em ambiente de produção, uma das primeiras coisas a serem feitas é a mudança dessa porta para alguma outra. Questão de segurança !
Outro motivo é quando se tem duas instalação do banco de dados executando na mesma máquina ou em dois containeres rodando. Nesse caso é preciso que uma dessas instalações tenha a porta alterada.
Alterar essa porta não é um bicho de 7 cabeças, então vamos lá e ver como fazer isso utilizando a já conhecida instalação do 19c em um container docker.
Acesse o container através do comando docker exec ou utilize o portainer para acessá-lo. Utilizarei o docker.
Abra um terminal e digite o comando:
docker exec -it <nome do seu container> /bin/bash
Já estamos conectados no container. Agora vamos verificar o status do listener:
lsnrctl status
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Listener está ok e executando !
Observe que ele está com a porta padrão 1521. Para alterá-lo, existem alguns métodos, mas irei mostrar a vocês aquele que considero mais didático:
Alterando o arquivo listener.ora
Vamos alterar manualmente o arquivo listener.ora
Para saber onde o arquivo está, é simples. O próprio comando lsnrctl status já nos retornou a informação.
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Vamos ver o que tem no arquivo listener.ora
cat /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Na máquina host, crie um arquivo listener.ora com o seguinte conteúdo:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1523))
)
)
DEDICATED_THROUGH_BROKER_LISTENER=ON
DIAG_ADR_ENABLED = off
Por que no host ? Devido ao fato de que no container do Oracle 19c não há editor instalado (pelo menos não encontrei). Então é mais fácil copiar do host para o container.
docker cp listener.ora <seu container>:/opt/oracle/product/19c/dbhome_1/network/admin
Vamos ver se a cópia ocorreu bem:
cat /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Cópia efetuada com sucesso !
Agora basta reiniciar o banco. Como no nosso caso ele está em um container, basta dar o seguinte comando:
docker restart <seu container>
Agora é só esperar o reinício e tentar conectar novamente no banco de dados com a nova porta.
Vamos testar agora:
Done !
Espero que esse pequeno artigo possa ser de alguma valia a vocês ! 🙂
Abraço