Guia Passo a Passo: Aplicando o Patch 19.28 no Oracle Grid Infrastructure 19.3

 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.zip

2. 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_HOME

3. 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.log

Revise 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.zip

5. 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/36758186

6. 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.txt

Adicione 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/36758186

Execute a validação como usuário grid:

$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt

Se 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_HOME

Segue 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.

Postar um comentário

0 Comentários