Aplicando o Oracle Database Bundle Patch (BP) e o Oracle JavaVM Database PSU no Banco de Dados Oracle 12c
Por Rogerio Eguchi,
Publicado en Setembro 2017
Revisado por Luciano Verissimo
A Oracle disponibiliza para seus clientes dois tipos de patches:
- Patches reativos
Conhecidos como “interim patches” ou “one-off” patches, são aqueles que corrigem um bug específico.
- Patches proativos
Os patches proativos são categorizados em:
Secure Patch Update (SPU): contém patches de segurança do programa Critical Patch Update.
Patch Set Update (PSU): Contém os patches de segurança (CPU) e patches críticos de alto impacto e baixo risco.
Bundle Patch (BP): Contém todos os PSU, mais correções para o ambiente específico do BP.
Quarterly Full Stack Download Patch: Contém patches distintos entregues no mesmo pacote de atualização. Específico para Engineered System.
O conteúdo dos patches pode ser visualizado como:
Você pode realizar a instalação de somente uma das metodulogias de patch: SPU, PSU ou BP.
Todos os métodos permitem a aplicação de “interim patches”, porém a versão do interim patch requerido depende da metodulogia de patch aplicada.
Nesse artigo você aprenderá sobre a instalação do Oracle Database Proactive Bundle Patch (ou BP) uma vez que esta é a metodulogia de patch recomendada pela Oracle a partir da versão Oracle 12.1.0.2.
Faremos também a instalação do Oracle JavaVM Component Database PSU, pois seu deploy é recomendado independentemente da utilização ou não deste recurso. Mais informações podem ser obtidas no documento MOS: Oracle Recommended Patches -- "Oracle JavaVM Component Database PSU" (OJVM PSU) Patches (Doc ID 1929745.1)
Os Bundle Patches são disponibilizados em datas pré-definidas e podem ser mais frequentes do que os PSU patches. Além disso eles são sempre “RAC Rulling and Standby First installable”.
Os patches recomendados para o Oracle Database podem ser visualizados no documento MOS: Note: 756671.1 - Oracle Recommended Patches - Oracle Database.
Nesse momento, o último bundle patch disponível para instalação é o 12.1.0.2.170418 Database Proactive Bundle Patch (Apr 2017).
Uma boa prática de instalação do Bundle Patch é a atualização do opatch, ou seja, devemos sempre atualizar o opatch para a última versão antes de aplicar um BP.
O opatch está disponível para download através do patch 6880880.
Atualizando o opatch
Faça o download do Patch 6880880 para a sua plataforma e transfira o arquivo para o servidor. Exemplo para ambiente Linux 64 Bits:
Descompacte-o:
Mova o diretório opatch criado pela descompactação para o ORACLE_HOME do banco a ser atualizado. O comando opatch version confirma que a versão foi atualizada e está de acordo com o pacote que fizemos download do MOS.
Preparando os Patches para instalação
Como estamos num ambiente Single Instance, devemos parar os bancos e os Listeners que foram iniciados no ORACLE_HOME que será atualizado. Caso você tenha um Oracle Agent iniciado nesse servidor, ele também deve ser parado.
Neste artigo, realizaremos a aplicação dos patches 25433352 (Proactive Bundle Patch – Apr 2017) e 25437695 (JavaVM Component).
Faça o download dos patches esculhidos, copie para o servidor que será atualizado e descompacte os arquivos.
Serão criados dois diretórios, cada um com o conteúdo do patch a ser aplicado:
25437695 - Oracle JavaVM Component 12.1.0.2.170418 Database PSU (Apr 2017) (OJVM PSU)
25433352 - 12.1.0.2.170418 Database Proactive Bundle Patch (Apr 2017)
Acesse cada um dos diretórios e leia com atenção o conteúdo do arquivo README.html.
Como um dos pré-requisitos do patch 25437695 é termos o Database Proactive Bundle Patch 12.1.0.2.1 (Oct2014)
ou superior aplicado, devemos primeiro aplicar o patch 25433352.
Aplicando o BP.
Para isso, entre no diretório 25433352 e execute os passos abaixo:
- Validação do Oracle Inventory opatch lsinventory –detail
- Verificação de conflito com outros patches aplicados
opatch prereq CheckConflictAgainstOHWithDetail – phBaseDir /25433352/25397136
opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /25433352/25481150
Se não existem conflitos, podemos seguir.
- Verificação de espaço
Crie o arquivo /tmp/patch_list_dbhome.txt com o conteúdo:
/25433352/25481150 /25433352/25397136
Se, por exemplo, você descompactar os arquivos no diretório /u01/patches, o conteúdo ficará como abaixo:
/u01/patches/25433352/25481150 u01/patches/25433352/25397136
Em seguida execute o comando:
opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt
Se a verificação for bem-sucedida, podemos aplicar o patch.
- Para aplicar o patch entre no diretório /25433352/25397136, em seguida execute o comando $ORACLE_HOME/OPatch/opatch apply. Responda “y” para os questionamentos.
Aplicando o JavaVM Component (OJVM PSU)
Entre no diretório em que o patch foi descompactado.
Exemplo: cd /u01/patches/25437695
- Verifique se há algum conflito
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Não existindo conflitos, continue com a aplicação do patch.
- Execute o comando: Opatch apply
Verifique se o Patch foi aplicado com sucesso.
Em seguir devemos executar os passos de pós-instalação:
- Subir o banco em modo upgrade
- Executar o datapatch dentro do diretório OPatch:
cd $ORACLE_HOME/OPatch
./datapatch -verbose
Verifique se os patches foram instalados com sucesso.
Devemos agora reiniciar o banco, executando o shutdown, seguido do startup.
Agora vamos executar o utilitário utlrp.sql para que objetos inválidos sejam recompilados:
Verificando os patches aplicados
Podemos verificar os patches aplicados no $ORACLE_HOME de duas maneiras:
- Executando opatch lsinventory
- Executando uma consulta no banco:
select PATCH_ID,VERSION,STATUS,DESCRIPTION from dba_registry_sqlpatch;
Mais informações sobre os tipos de patch disponíveis consulte a nota MOS Oracle Database - Overview of Database Patch Delivery Methods (Doc ID 1962125.1)
Rogerio Bacchi Eguchi é um DBA Oracle Sênior com extensa experiência em ambientes ulTP de missão crítica e que empregam as tecnulogias da "Oracle Maximum Availability Architecture". Atuou como DBA em empresas como Oracle, Uul, UulDiveo, 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 tecnulogias como big data, automações e cloud computing. Compartilha conhecimento no blog reguchi.wordpress.com e twitter @reguchi_br.
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.