This post is also available in: English
Nesse tutorial, vou mostrar como aplicar um PSU de Banco de Dados utilizando o Oracle Enterprise Manager 12c. Essa é uma funcionalidade muito útil que a Oracle trouxe para a gente, especialmente em parques com dezenas ou centenas de BD’s onde se deseja aplicar um patch de forma massiva em todos ambiente, sem precisar ir de um em um.
Artigo Publicado na OTN: http://www.oracle.com/technetwork/pt/articles/oem/aplicando-psu-multiples-banco-dados-2817811-ptb.html
Neste cenário, temos a seguinte montagem:
- OEM 12c: 12.1.0.5 (com pacote Bundle 4 aplicado)
- Oracle Databases: 12.1.0.2 (com PSU 4 aplicado) - Linux x86-64
- Objetivo: Aplicar Patch PSU 5 (Out 2015) em 2 BD’s em paralelo.
Então vamos começar!
Nossa primeira tarefa será colocar no repositório do Enterprise Manager o patch que desejamos aplicar nos nossos BD’s.
Conecte no Enterprise Manager e acesse: "Enterprise -> Provisioning and Patching -> Saved Patches".
Note que não temos nenhum patch na listagem acima.
Então, em outra aba do navegador, faça o download do patch que deseje aplicar. Neste tutorial, estou aplicando o PSU 5 do Oracle DB 12.1.0.2 (PSU p21520444_121020_Linux-x86-64.zip).
Como o zip deste patch contém o arquivo "PatchSearch.xml", não será necessário fazer o download de seu metadados. Em alguns casos, esse arquivo não está incluso, como veremos a seguir.
Faça também o download da última versão do OPatch que seja compatível com o BD que você está atualizando. No meu caso é um Linux x86_64.
Como o zip do OPatch não contém o "PatchSearch.xml", faça também o download do arquivo de metadados (p6880880_121010_American.txt).
Voltando a aba do Enterprise Manager, faça o Upload de ambos os patches. Para o OPatch, adicione o arquivo de metadados:
Tudo pronto para começarmos.
Clique sobre o nome do patch que deseja aplicar. Neste tutorial, é o 21520444.
Clique em "Add to Plan -> Add to New".
Dê um nome ao plano e selecione os Banco de Dados que deseja aplicar o PSU. Neste tutorial, escolherei 2: NSQIPRD e NTWNEGAN.
Após feito isso, clique em "Create Plan".
O plano está criado. Agora clique em "View Plan". Se por um acaso trocar a tela, é possível rever os planos criados a qualquer momento acessando "Enterprise -> Provisioning and Patching -> Patches & Updates".
Na próxima tela, o "Step 1" aparecerá. Não é preciso alterar nada aqui, pode seguir para a próxima tela clicando em "Next".
No "Step 2", é possível visualizar os patches e os BD’s que foram escolhidos para aplicá-los. Verifique se está correto e clique em "Next".
O "Step 3" é o que necessita maior atenção. Antes de mais nada, um PSU é um tipo de patch que não necessita a criação de uma nova Oracle Home (como no caso dos PS's). O PSU é uma atualização da Home atual.
Portanto, altera no menu "How to Patch" para "In Place".
Desça e na parte com "Creadential Information", preencha os valores de "Normal Credentials" e "Privileged Credentials" para que o patch possa ser aplicado.
Valide antes de continuar.
No próximo passo, é a hora de fazer a Validação geral. Ele irá verificar os pré-requisitos do patch e alertar qualquer inconsistência. Clique em "Analyze".
E aguarde alguns minutos...
Quando surgir o link "Show Detailed Results" clique nele. Essa ação abrirá uma nova janela onde é possível seguir e validar os passos executados em uma nova tela:
Se qualquer erro aparecer, verifique o que ocorreu, corrija e então reexecute a validação a partir da tela principal. Note que isso irá gerar uma nova "Procedure Activity". Acompanhe o processo até que todos os erros estejam limpos.
Ótimo, os PSU’s estão prontos para serem aplicados! Clique em "Next"!
Finalmente, revise e aplique-o clicando em "Deploy"!
Note que para um PSU, uma janela de indisponibilidade é necessária. Aqui você também tem a opção de agendar a execução para um outro horário se for o caso.
Notifique todos os times responsáveis e certifique-se que o ambiente poderá ficar off-line. Em seguida, execute o Job.
Neste momento o PSU está sendo aplicado. Enquanto isto ocorre, é possível verificar os passos sendo efetuados clicando em "Show Detailed Results".
Aguarde até que tudo tenha sido aplicado.
Se você receber algum erro na fase de "Deploy", não entre em pânico. Apenas verifique o que ocorreu e corrija.
Em seguida, selecione a check-box do item falhado, clique em "Actions -> Retry" e isso irá reexecutar apenas a etapa do item falhado. Ou seja, irá continuar do passo em que ele abortou.
Em seguida, clica no botão de seta de atualização desta página e também no da tela principal ("Patches & Updates") do Enterprise Manager.
OBS: Também é possível escolher a opção "Ignore" caso prefira resolver o conflito manualmente. Essa ação irá continuar o Job a partir do próximo passo.
Verificando na janela principal do Enterprise Manager:
E é isso! O patch foi aplicado com sucesso!
Após o término, é recomendado entrar nos ambientes atualizados e certificar-se que tudo está OK. Neste caso, verifiquei se o PSU e os scripts SQL's de "postinstall" foram aplicados:
PSU:
[oracle@gvncbddsne001 ~]$ $ORACLE_HOME/OPatch/opatch lspatches 21555660;Database PSU 12.1.0.2.5, Oracle JavaVM Component (Oct2015) 21359755;Database Patch Set Update : 12.1.0.2.5 (21359755) OPatch succeeded.
Estão OK!
E os scripts "postintall":
[oracle@gvncbddsne001 ~]$ $ORACLE_HOME/OPatch/datapatch -prereq SQL Patching tool version 12.1.0.2.0 on Thu Nov 26 12:50:41 2015 Copyright (c) 2015, Oracle. All rights reserved. Connecting to database...OK Note: Datapatch will only apply or rollback SQL fixes for PDBs that are in an open state, no patches will be applied to closed PDBs. Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation (Doc ID 1585822.1) Determining current state...done Adding patches to installation queue and performing prereq checks...done Installation queue: For the following PDBs: CDB$ROOT PDB$SEED NTWNEGAN Nothing to roll back Nothing to apply SQL Patching tool complete on Thu Nov 26 12:53:50 2015 [oracle@gvncbddsne001 ~]$
Estão OK também!
Fechamos então neste artigo a aplicação de um PSU em 2 instâncias em paralelo usando o Enterprise Manager 12c. Lembrando que é sempre bom testar em ambientes de desenvolvimento antes de utilizar qualquer ferramenta ou processo na produção!
Gostou? Não deixe de comentar ou deixar um 👍!