Se você é um administrador de banco de dados Oracle, sabe o quão importante é manter seu ambiente atualizado com os patches de segurança e correções de bugs. Neste post, vamos mergulhar em um procedimento prático para aplicar o patch de atualização para a versão 19.28 no Oracle Grid Infrastructure (GI) versão 19.3.
Aviso importante: Antes de prosseguir, faça um backup completo do ambiente e teste em um ambiente não produtivo. Tenha ciência de que o procedimento precisa baixar os serviços do grid durante a aplicação o patch. Planeje e comunique com antecedência a janela de manutenção. Este guia assume um ambiente Oracle Linux x86-64, com Oracle grid instalado na versão 19.3, single instance (não RAC). Para mais detalhes sobre a aplicação do patch, consulte a documentação oficial. Sempre leia o README de qualquer patch antes de aplicar em seu ambiente produtivo.
Vamos aos passos!
1. Preparando o Diretório para Download do Patch
Primeiro, crie um diretório temporário para armazenar os arquivos do patch. Isso ajuda a manter tudo organizado e evita bagunça no sistema.
su - grid
[grid@vm01 ~]$ mkdir -p /tmp/UNZIPPED_PATCH_LOCATION/Navegue para esse diretório e baixe os binários do patch. Neste guia estou fazendo o download de um repositório pessoal. Você pode usar o link abaixo caso esteja fazendo em laboratório. Para ambientes de produção, recomendo que faço o download diretamente do site do suporte Oracle. Neste guia eu atribui o nome 37957391_patch_1928_DB_GI.zip para um arquivo que já contém o path e a versão do Opach necessária para instalação do patch 19.28. Caso esteja fazendo o download do site do suport da Oracle, leia o README.html para obter a orientação de como baixar a versão atualizada do opatch.
[grid@vm01 ~]$ cd /tmp/UNZIPPED_PATCH_LOCATION/
# Faça o download
[grid@vm01 ~]$ wget -O 37957391_patch_1928_DB_GI.zip --no-check-certificate -r 'https://drive.usercontent.google.com/download?export=download&id=17qenaVabxdQtk4aS6sg3fAKevC-S8LWi&confirm=t'
[grid@vm01 ~]$ unzip 37957391_patch_1928_DB_GI.zip2. Atualizando o OPatch no GRID_HOME
O OPatch é uma ferramenta essencial para aplicar patches no Oracle. Certifique-se de que a versão 12.2.0.1.46 ou mais recente esteja instalada no home do GI.
Neste guia assumimos que o opatch precisa ser atualizado, também estou assumindo que o arquivo p6880880_190000_Linux-x86-64.zip já foi baixado e está disponível no diretório /tmp/UNZIPPED_PATCH_LOCATION/.
Verifique a versão atual do opatch:
[grid@vm01 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.
[grid@vm01 ~]$Em seguida, faça backup da versão antiga e instale a nova:
[grid@vm01 ~]$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch-OLD/
[grid@vm01 ~]$ cd /tmp/UNZIPPED_PATCH_LOCATION/
[grid@vm01 ~]$ unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME3. Validando o OraInventory
O OraInventory mantém o registro de todos os patches instalados. Valide-o para garantir que tudo está em ordem. A saída deve mostrar detalhes sobre patches existentes e a versão do OPatch.
[grid@vm01 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME > /tmp/UNZIPPED_PATCH_LOCATION/lsinventory.logRevise o arquivo lsinventory.log para confirmar que não há surpresas. Caso a saída tenha algum erro, trate-o antes de prosseguir
4. Descompactando o Arquivo do Patch 19.28
Agora, descompacte o patch. O nome do arquivo deve ser semelhante a este: p37957391_190000_Linux-x86-64.zip. Após isso, uma pasta chamada 37957391 será criada.
## DESCOMPACTAR COM O USUÁRIO grid
[grid@vm01 ~]$ cd /tmp/UNZIPPED_PATCH_LOCATION/
[grid@vm01 ~]$ unzip p37957391_190000_Linux-x86-64.zip5. Verificando Conflitos de Patch
Antes de aplicar, é importante checar se o novo patch conflita com os existentes. Execute os comandos abaixo para cada subpasta relevante dentro de 37957391. Se houver conflitos, resolva-os manualmente. (Consulte a documentação Oracle).
### EXECUTAR OS COMANDOS ABAIXO COMO GRID
[grid@vm01 ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/UNZIPPED_PATCH_LOCATION/37957391/37960098
[grid@vm01 ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/UNZIPPED_PATCH_LOCATION/37957391/37962946
[grid@vm01 ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/UNZIPPED_PATCH_LOCATION/37957391/37962938
[grid@vm01 ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/UNZIPPED_PATCH_LOCATION/37957391/38124772
[grid@vm01 ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/UNZIPPED_PATCH_LOCATION/37957391/367581866. Validando Espaço em Disco
Patches podem exigir espaço significativo. Crie um arquivo de lista com os caminhos dos patches e verifique o espaço disponível.
Edite o arquivo /tmp/patch_list_gihome.txt:
[grid@vm01 ~]$ vi /tmp/patch_list_gihome.txtAdicione o conteúdo:
/tmp/UNZIPPED_PATCH_LOCATION/37957391/37960098
/tmp/UNZIPPED_PATCH_LOCATION/37957391/37962946
/tmp/UNZIPPED_PATCH_LOCATION/37957391/37962938
/tmp/UNZIPPED_PATCH_LOCATION/37957391/38124772
/tmp/UNZIPPED_PATCH_LOCATION/37957391/36758186Execute a validação como usuário grid:
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txtSe o comando indicar insuficiência de espaço, libere espaço em disco antes de prosseguir.
7. Aplicando o Patch com OPatch
Após a preparação dos passos anteriores vamos fazer aplicação do patch do GI. Observe que estou usando o opatchauto e especificando o Oracle Home do GI na flag -oh. Isso vai garantir que o processo de aplicação do patch vai baixar os serviços que executam a partir do home que está sendo atualizado.
Execute o comando abaixo como root.
## Definir a variávil ORACLE_HOME apontando para o home dos binários do GI
[root@vm01 ~]# export ORACLE_HOME=/u01/app/19.0.0/grid
[root@vm01 ~]# cd /tmp
[root@vm01 ~]# $ORACLE_HOME/OPatch/opatchauto apply /tmp/UNZIPPED_PATCH_LOCATION/37957391 -oh $ORACLE_HOMESegue a saída do comando acima:
[root@vm01 tmp]# $ORACLE_HOME/OPatch/opatchauto apply /tmp/UNZIPPED_PATCH_LOCATION/37957391 -oh $ORACLE_HOME
OPatchauto session is initiated at Sat Oct 4 23:35:32 2025
System initialization log file is /u01/app/19.0.0/grid/cfgtoollogs/opatchautodb/systemconfig2025-10-04_11-35-36PM.log.
Session log file is /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/opatchauto2025-10-04_11-35-39PM.log
The id for this session is NFCS
Executing OPatch prereq operations to verify patch applicability on home /u01/app/19.0.0/grid
Patch applicability verified successfully on home /u01/app/19.0.0/grid
Executing patch validation checks on home /u01/app/19.0.0/grid
Patch validation checks successfully completed on home /u01/app/19.0.0/grid
Performing prepatch operations on CRS - bringing down CRS service on home /u01/app/19.0.0/grid
Prepatch operation log file location: /u01/app/grid/crsdata/vm01/crsconfig/hapatch_2025-10-04_11-36-47PM.log
CRS service brought down successfully on home /u01/app/19.0.0/grid
Start applying binary patch on home /u01/app/19.0.0/grid
Binary patch applied successfully on home /u01/app/19.0.0/grid
Running rootadd_rdbms.sh on home /u01/app/19.0.0/grid
Successfully executed rootadd_rdbms.sh on home /u01/app/19.0.0/grid
Performing postpatch operations on CRS - starting CRS service on home /u01/app/19.0.0/grid
Postpatch operation log file location: /u01/app/grid/crsdata/vm01/crsconfig/hapatch_2025-10-04_11-42-00PM.log
CRS service started successfully on home /u01/app/19.0.0/grid
OPatchAuto successful.
--------------------------------Summary--------------------------------
Patching is completed successfully. Please find the summary as follows:
Host:vm01
SIHA Home:/u01/app/19.0.0/grid
Version:19.0.0.0.0
Summary:
==Following patches were SUCCESSFULLY applied:
Patch: /tmp/UNZIPPED_PATCH_LOCATION/37957391/36758186
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2025-10-04_23-37-13PM_1.log
Patch: /tmp/UNZIPPED_PATCH_LOCATION/37957391/37960098
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2025-10-04_23-37-13PM_1.log
Patch: /tmp/UNZIPPED_PATCH_LOCATION/37957391/37962938
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2025-10-04_23-37-13PM_1.log
Patch: /tmp/UNZIPPED_PATCH_LOCATION/37957391/37962946
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2025-10-04_23-37-13PM_1.log
Patch: /tmp/UNZIPPED_PATCH_LOCATION/37957391/38124772
Log: /u01/app/19.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2025-10-04_23-37-13PM_1.log
OPatchauto session completed at Sat Oct 4 23:42:55 2025
Time taken to complete the session 7 minutes, 19 seconds
[root@vm01 tmp]#Durante o processo de instalação são gerados alguns arquivos de log que podem ser acompanhados para monitorar o progresso.
Após a aplicação, os serviços do grid devem subir normalmente. Os bancos de dados que são gerenciados pelo service control (srvctl) também devem ser reiniciados automaticamente.
8. Verificando o patch aplicado
Execute o comando $ORACLE_HOME/OPatch/opatch lspatches para validar a aplicação do patch.
[grid@vm01 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
38124772;TOMCAT RELEASE UPDATE 19.0.0.0.0 (38124772)
37962946;OCW RELEASE UPDATE 19.28.0.0.0 (37962946)
37962938;ACFS RELEASE UPDATE 19.28.0.0.0 (37962938)
37960098;Database Release Update : 19.28.0.0.250715 (37960098)
36758186;DBWLM RELEASE UPDATE 19.0.0.0.0 (36758186)
OPatch succeeded.
[grid@vm01$
Conclusão
Aplicar patches no Oracle GI pode parecer intimidador, mas seguindo esses passos de forma meticulosa, você minimiza riscos. Lembre-se de consultar o My Oracle Support para notas específicas do patch e versões. Se você encontrou desafios ou tem dicas, compartilhe nos comentários!
Este post é baseado em procedimentos padrão; adapte ao seu ambiente e teste sempre.
0 Comentários