Esse artigo demostrará como aplicar o último Release Update (RU) em ambiente Oracle RAC 12.2 Multitenant.
Sobre o ambiente:
Sistema Operacional: Oracle Linux 7.3 Kernel 4.1.12-94.3.9.el7uek.x86_64
Banco de Dados: Oracle Enterprise Edition 12.2.0.1 RAC Multitenant
Você pode encontrar a lista atualizada de patches através do MOS Master Note for Database Proactive Patch Program (Doc ID 756671.1):
A quadro abaixo mostra a seção que lista os patches disponíveis para o Oracle Database 12.2.0.1. Recomenda-se o acesso a este documento para obter sempre o conteúdo mais atualizado.
Neste material mostrarei como aplicar os patches liberados em 14/08/2017:
Faça o download somente do patch 26610291 (ele será aplicado em ambos ORACLE_HOMEs), copie para o servidor (node 1) e descompacte-o.
Importante: Esse patch pode ser aplicado em modo Rolling Fashion, ou seja, não haverá indisponibilidade total dos serviços.
1.Atualização do Opatch
A Oracle recomenda que seja feita a atualização do OPatch antes de iniciar a instalação do Oracle BP.
Para tal, acesse o MOS e faça o download do patch em https://support.oracle.com/epmos/faces/ui/patch/PatchDetail.jspx?parent=DOCUMENT&sourceId=1306814.1&patchId=6880880
Copie para o servidor e descompacte.
Atualizando a versão do OPatch grid home:
Atualizando a versão do opatch oracle home:
Repita a atualização do OPatch em todos os nodes do cluster.
2. Antes de iniciar a instalação do patch, precisamos validar a consistência do Inventário dos ORACLE_HOMEs. Para isso, execute:
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME, onde a variável de ambiente $ORACLE_HOME aponta para o OH que faremos a validação, exemplo:
3. Verificação de conflitos:
Para o Grid Infrastructure, execute com o dono do Home:
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir
UNZIPPED_PATCH_LOCATION>/26610291/26609817
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir
UNZIPPED_PATCH_LOCATION>/26610291/26609966
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir
UNZIPPED_PATCH_LOCATION>/26610291/25586399
Para o Database, execute como dono do Home:
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir
UNZIPPED_PATCH_LOCATION>/26610291/26609817
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir
UNZIPPED_PATCH_LOCATION>/26610291/26609966
Exemplos:
Resultado esperado: Prereq "checkConflictAgainstOHWithDetail" passed.
O OPatch categoriza os conflitos em:
Verificação de espaço disponível para instalação do patch:
Para o Grid Infrastructure Home, execute com o dono do home grid:
Crie o arquivo /tmp/patch_list_gihome.txt com o seguinte conteúdo:
<UNZIPPED_PATCH_LOCATION>/26610291/25586399
<UNZIPPED_PATCH_LOCATION>/26610291/26609966
<UNZIPPED_PATCH_LOCATION>/26610291/26609817
Execute o OPatch para realizar a verificação de espaço disponível no OH do GI:
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
Para o Database home, execute como dono do home oracle:
Crie o arquivo /tmp/patch_list_dbhome.txt com o seguinte conteúdo:
cat /tmp/patch_list_dbhome.txt
<UNZIPPED_PATCH_LOCATION>/26610291/26609966
<UNZIPPED_PATCH_LOCATION>/26610291/26609817
Rode o opatch para realizar a verificação de espaço disponível no OH do DB:
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt
Caso o OPatch reporte falha, remova arquivos desnecessários ou cresça o volume.
Backup e Recovery
A Oracle recomenda que seja realizado o backup dos ORACLE_HOMEs antes de se aplicar qualquer patch. Utilize sua ferramenta preferida do sistema operacional, exemplos: zip, cp -r, tar, cpio.
Lembre-se de parar os processos Oracle antes de iniciar o backup.
Dica: Faça a instalação do Oracle Software em um LVM e utilize o recurso de snapshots para realizar o backup sem parar os processos do Oracle. No caso do Exadata, você pode utilizar a própria documentação do produtocomo referência para execução do backup:
http://docs.oracle.com/cd/E80920_01/DBMMN/maintaining-exadata-database-servers.htm#DBMMN21377
Repitas os passos de 1 a 5 nos outros nós do cluster.
Aplicando o Oracle RU 12.2.0.1.170814
No exemplo de execução abaixo, aplicarei o patch em um nó por vez (rolling fashion).
No node 1, conectar com o usuário root e adicionar o diretório que contém o opatchauto no PATH:
export PATH=$PATH:<GI_HOME>/OPatch
Para aplicar o patch no GI home e em todos Oracle RAC database homes da mesma versão, execute:
opatchauto apply <UNZIPPED_PATCH_LOCATION>/26610291
Aaguarde a conclusão do comando.
Conectar no outro nó do cluster e executar os mesmos passos do node 1.
export PATH=$PATH:<GI_HOME>/OPatch
opatchauto apply <UNZIPPED_PATCH_LOCATION>/26610291
Aguarde a conclusão do comando.
Continue até atualizar todos os nós do cluster.
Exemplo:
Execução do OPatchAuto no node 1:
Execução do OPatchAuto no node 2:

Para verificar se os patches foram aplicados, você pode executar o seguinte comando no ORACLE_HOME do GI e do DB, em todos os servidores:
./opatch lspatches Node1:
Node2:
O Datapatch foi executado automaticamente no container root, como podemos verificar abaixo:
Para os PDBs, execute o Datapatch manualmente se durante o processo de atualização via opatchauto, algum PDB não estiver aberto.
No exemplo abaixo, o PDB1 estava off-line durante o opatchauto. Neste caso, a execução deve ser feita somente em um dos nós do cluster.
Para a execução do Datapatch ser bemsucedida, abra o PDB em modo upgrade.
Em seguida execute o Datapatch conforme exemplo abaixo:
Veja que a violação da abertura do PDB foi resolvida:
E o patch foi registrado com sucesso no PDB1:
Links úteis:
Automated Multi-Node Patching of Grid Infrastructure and RAC DB Environment Using OPatchAuto - https://docs.oracle.com/cd/E24628_01/doc.121/e39376/opatchauto.htm#OPTCH615
README.HTML - Patch 26610291 - Grid Infrastructure Jul2017 Release Update 12.2.0.1.170814
Notas técnicas no MOS:
Datapatch: Database 12c Post Patch SQL Automation (Doc ID 1585822.1)
Master Note for Database Proactive Patch Program (Doc ID 756671.1)
12.2.0.1 Grid Infrastructure Release Update - List of Fixes in each RU/RUR (Doc ID 2245185.1)
Conclusão Realizamos com sucesso a execução do procedimento de instalação do último Oracle Release Update no Oracle 12.2, utilizand o OPatchAuto em um ambiente Oracle com RAC e Multitenant.
Observem que os passos utilizados para realizar a instalação do RU patch são muito próximos aqueles realizados para a atualização do BundlePatch para o Oracle 12.1.
Rogerio Bacchi Eguchi é um DBA Oracle Sênior com extensa experiência em ambientes OLTP de missão crítica e que empregam as tecnologias da "Oracle Maximum Availability Architecture". Atuou como DBA em empresas como Oracle, UOL, UOLDiveo, PagSeguro e atualmente atua como DBA/DMA na TOTVS. Possui as certificações Oracle OCP 8i, 9i, 10g, 11g, 12c e OCE Exadata. Atua também como SysAdmin/DEVOPS onde é certificado Linux RHCE. Entusiata de novas tecnologias como big data, automações e cloud computing. Compartilha conhecimento no blog reguchi.wordpress.com e twitter @reguchi_br.