Pular para o conteúdo

Noções básicas sobre variáveis ​​de ambiente do banco de dados Oracle para operações eficientes

Explorando as Variáveis de Ambiente no Oracle Database

Você já se perguntou por que certos comandos no Oracle Database funcionam magicamente? Ou por que alguns scripts parecem saber exatamente onde estão os arquivos críticos do sistema? Neste artigo, vamos desvendar esses mistérios com muitos exemplos práticos e uma abordagem descontraída.

Antes de mergulharmos nos exemplos, vamos entender o que são variáveis de ambiente. Imagine que seu sistema operacional seja uma grande empresa. De forma simplória as variáveis de ambiente são como o CEP da sua casa, com um número de 8 dígitos consegue identificar seu endereço. Elas configuram o ambiente de trabalho, assegurando que cada processo saiba onde encontrar o que precisa.

Algumas variáveis de ambiente são particularmente importantes.

1. ORACLE_HOME

  • Indica o diretório onde o Oracle Database está instalado.
  • Define o caminho para os binários e arquivos de configuração do Oracle.

2. ORACLE_SID

  • Define o SID (System Identifier) do banco de dados.
  • Identifica a instância específica do Oracle Database.

3. ORACLE_PDB_SID

  • Define o SID de um PDB (Pluggable Database) dentro de um CDB (Container Database).
  • Necessário para operações dentro de um PDB específico.

4. TNS_ADMIN

  • Indica o diretório dos arquivos de configuração de rede, como `tnsnames.ora`.
  • Permite personalizar a configuração de rede do Oracle.

5. PATH

  • Contém os diretórios onde o sistema busca executáveis.
  • Inclui o diretório bin do Oracle, permitindo a execução de comandos Oracle no terminal.

Vamos a um exemplo prático, com o comando ‘sqlplus / as sysdba’. Este comando serve para nos conectarmos com o banco com o usuário SYS.

Vejamos a coisa na prática.

Bash
$ sqlplus / as sysdba

image 2
SQLPLUS PING

O executar o camando ‘sqlplus / as sysdba’ é gerado um erro, não deveria mas deu o erro vamos detalhar o que está acontecendo.

O banco se comporta como um PET que não sabe que tem que correr e trazer o graveto quando é jogado. E não é porque não está conectado a rede, não é por isso não.

Reparem na imagem abaixo que é feito um ‘PING’ com o número do IP da máquina retorna que existe conexão, ou seja, o PET está vivo, mas não sabe o que fazer.

image 4
SQLPLUS PING COM SUCESSO

Agora na sequência vemos na prática que foi configurado as variáveis de ambientes e com isso a conexão aconteceu com sucesso.

orcl

É como seu adestrássemos o PET a buscar o graveto, e percebam que o banco sabe o que queremos dizer quando executamos o comando: ‘sqlplus / as sysdba’  e assim ele se conecta ao banco.

Quando você executa . oraenv, o ponto (.) na frente do comando indica ao shell que ele deve “fonte” o script. Isso significa que as variáveis de ambiente definidas no script serão aplicadas ao shell atual, e não a um novo processo de shell. Em outras palavras, as configurações feitas pelo script afetarão diretamente o ambiente de trabalho que você está usando.

Vamos abrir uma nossa sessão para visualizarmos uma nova prática

Agora se você como eu acha desagradável ter que ficar digitando ‘. oraenv’ é preciso entender seu motivo e sua origem, o ‘. oraenv’ é um apelido pois na verdade por trás deste comando ele está executando o seguinte sintaxe:

Bash
$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
$ export ORACLE_SID=orcl
$ export PATH=$ORACLE_HOME/bin:$PATH
$ sqlplus / as sysdba

image 5
EXPORT VARIÁVEIS

Vamos entender o que a imagem acima acabou de fazer para acessar o banco:

1. Defina o ORACLE_HOME: Este é o diretório onde o Oracle Database está instalado.
2. Defina o ORACLE_SID: Este é o identificador do seu banco de dados.
3. Atualize o PATH: Adicione o diretório bin do Oracle ao PATH.

A imagem acima mostra, em destaque vermelho, cada caminho onde o banco deve buscar as informações. Isso não foi feito anteriormente, quando foi executado o comando ‘sqlplus / as sysdba’ sem especificar onde o banco deveria buscar as informações, o que resultou em erro. Agora, não houve erro, pois o sistema sabia onde deveria buscar as informações.

E, melhor ainda, vemos que o que está destacado são três comandos separados. O comando ‘. oraenv’ substitui esses três comandos de forma simples! Então, saiba que, ao digitar ‘. oraenv’, de forma indireta, estão sendo executados os três comandos destacados na imagem.

Sim, é possível configurar seu ambiente manualmente, mas, ao usar o script ‘. oraenv’, o processo é mais rápido e eficiente, como se você tivesse um especialista treinado. Ou seja, é possível configurar manualmente as variáveis de ambiente, mas com o script ‘oraenv’, tudo se torna bem mais prático.

Vamos abrir uma nossa sessão para visualizarmos uma nova prática

Vejamos outro aspecto quando vamos nos conectar a um PDB.

Bash
$ sqlplus hr/hr@ORCLPDB

image 6
FALHA CONEXÃO PDB

A imagem acima demonstra que estou usando o usuário HR e quero entrar no banco direto no contêiner PDB, e vejam que uso corretamente o ‘. oraenv’ mas gera um erro:

Erro ORA-12514 indica que o listener do Oracle não conhece o serviço que você está tentando acessar. Isso geralmente significa que o nome do serviço especificado não corresponde a nenhum serviço conhecido pelo listener.

O listener é essencial para que o Oracle Database aceite conexões dos clientes. Ele escuta na rede, gerencia solicitações e direciona-as ao banco de dados correto. O listener é um componente essencial no Oracle Database que atua como um “intermediário” entre o cliente (como SQL*Plus) e o banco de dados.

Para facilitar a didática vamos visualizar o status do listener com o comando:

Bash
$ lsnrctl status

image 8
LSNRCTL STATUS

Bom, mesmo sem saber muito de banco o tanto de mensagem em vermelho percebemos que a coisa não está boa.

E é por isso que quando executamos o comando:

Bash
$ sqlplus hr/hr@ORCLPDB

Lá atrás não tivemos sucesso. Para termos sucesso na conexão de usuários ao banco é necessário adestrarmos o banco, precisamos dizer onde está o ‘LISTENER’ que é a lista dos moradores, assim o ‘lsnrctl é como o porteiro que tem a lista de moradores.

Como todo bom porteiro é preciso acorda-lo. Todas as vezes que iniciamos o banco precisamos acordar o porteiro com o comando:

Bash
$ lsnrctl start

image 10
CONEXÃO HR COM SUCESSO

O porteiro foi acordado, e o banco entende onde está o LISTENER. A partir de agora, quando a entrada de qualquer outro usuário cadastrado for solicitada, o acesso será permitido.
É necessário explicar o que acontece por trás do comando:

Bash
$ sqlplus hr/hr@ORCLPDB

Detalhamento do comando

Bash
‘sqlplus hr/hr@ORCLPDB’

Ponto 1:

‘sqlplus’ é o cliente que você usa para se conectar ao Oracle Database.
‘hr/hr’ são as credenciais: ‘hr’ é o nome de usuário, e ‘hr’ é a senha.
‘@ORCLPDB’ especifica o serviço de banco de dados ao qual você deseja se conectar.

Ponto 2:
O cliente ‘SQL*Plus’ procura uma entrada chamada ‘ORCLPDB’ no arquivo ‘tnsnames.ora’. A imagem abaixo demonstra uma entrada com o nome ‘ORCLPDB’. O cliente usará a string de conexão direta fornecida, como ‘//localhost:1521/ORCLPDB’. Para facilitar a compreensão, apresento-lhes o senhor ‘tnsnames.ora’.

Bash
cat $ORACLE_HOME/network/admin/listener.ora

image 12
SR TNSNAMES

Ou seja, quando digita ‘sqlplus hr/hr@ORCLPDB’ é a mesma coisa que digitar:

Bash
sqlplus hr/hr@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle19c.localdomain)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orclpdb.localdomain)))'

image 14
CONEXÃO COMPRIDA

E mais uma vez no detalhe fica mais fácil executar o comando simplificado.

Mas a família conexão tem mais um membro que é o ‘listener’.

image 15
LISTENER ORA
Bash
cat $ORACLE_HOME/network/admin/listener.ora

‘LISTENER’: Nome do listener que está ouvindo na porta 1521 no ‘localhost’.
‘ADDRESS’: Detalhes de onde o listener está configurado para aceitar conexões (‘PROTOCOL’, ‘HOST’, ‘PORT’).

E todos estes detalhes está na imagem acima.

Como um resumo os passos que acabamos de ver foi:

Quando você executa sqlplus hr/hr@ORCLPDB, o SQL*Plus usa a entrada ORCLPDB do arquivo tnsnames.ora para encontrar o listener apropriado.

Encontrar o Listener:

O SQL*Plus consulta o listener configurado para o serviço ORCLPDB usando as informações de endereço fornecidas.
Ele envia uma solicitação para o listener no localhost na porta 1521.

Autenticação e Conexão:

O listener encaminha a solicitação de conexão para o banco de dados com o SERVICE_NAME ORCLPDB.
O banco de dados então autentica o usuário HR com a senha hr.

Estabelecimento da Sessão:

Após autenticação bem-sucedida, uma sessão é estabelecida com o banco de dados ORCLPDB.

Depois desta narração deu até vontade de gritar goooooool!

Conclusão

As variáveis de ambiente são ferramentas poderosas que simplificam a administração do Oracle Database. Elas garantem que seu ambiente de trabalho esteja sempre configurado corretamente, permitindo que você se concentre no que realmente importa: gerenciar e otimizar seu banco de dados.

Exploramos algumas das variáveis de ambiente mais importantes no Oracle Database e como elas são usadas na prática. Cada variável tem um papel crucial, ajudando a configurar e operar seu ambiente Oracle de forma eficiente. Lembre-se, o domínio dessas variáveis pode fazer uma grande diferença na sua produtividade e na gestão eficaz do seu banco de dados.

Espero que tenha gostado dessa viagem pelas variáveis de ambiente do Oracle Database. Continue explorando e experimentando — o poder está em suas mãos!

Tercio Haring

Tercio Haring

Tércio Haring é pai do Max e um entusiasta incansável de TI. Sua paixão pelo próximo o levou a ser socorrista, sempre pronto para ajudar. No universo da tecnologia, seu objetivo vai além de simplesmente compartilhar conhecimento; ele busca manter sua mente conectada ao futuro e abraçar os desafios como oportunidades disfarçadas. Escreve com o objetivo de tornar o complexo mundo dos bancos de dados mais acessível e compreensível, sempre com um toque de humor para tornar a jornada mais leve e divertida. Se você procura insights valiosos, explicações claras e, claro, algumas boas risadas, Tércio é a pessoa certa para te guiar. Junte-se a ele para explorar, aprender e crescer nesse vasto e fascinante universo Oracle!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress