Olá pessoal,

Espero que estejam bem!

Um cliente nos contatou solicitando que atualizássemos o seu ambiente de Oracle Enterprise Manager e os agentes do 13.5.0.16 para a última release disponível.

Primeiro de tudo, nós precisamos entender de qual nota de suporte nós podemos encontrar o último RU disponível para o RU. Vamos lá:

Enterprise Manager 13.5 Main Release Update List (Includes Plug-ins) (Doc ID 2760230.2)

Temos muitas informações nessa nota, eu vou mostrar abaixo as duas seções onde podemos obter o último RU para o OEM e o último RU para o OEM Agent.

Abaixo temos a informação para o último RU para o OMS (Oracle Management Service), o servidor de OEM propriamente dito:

Abaixo temos a informação para o último RU para o OEM Agent:

OK, então por enquanto, sabemos que temos que aplicar pelo menos dois patches:

  • 36005341: RU 20 para o OMS
  • 36005346: RU 20 para o OEM Agent

Agora, temos que checar a nota para o patch:

13.5.0 Enterprise Manager Cloud Control Base Platform Monthly Release Update (RU) 20 (Doc ID 3006198.1)

Nessa nota, podemos encontrar algumas informações úteis:

Então, basicamente, temos três instruções principais aqui:

  • Passos obrigatórios a serem executados depois de aplicarmos o RU;
  • Patches obrigatórios a serem aplicados antes de aplicarmos o RU;
  • Se o seu DB repositório está rodando no RU 19.18, também há patch(es) mandatório(s). No nosso caso, nós não temos que aplicar o patch porque o repositório está rodando no RU 19.21.

Por favor, tenham em mente que antes de iniciarmos com a aplicação do patch no OEM e nos OEM Agents, nós também temos que atualizar as ferramentas que usaremos para esse update. Mas, como temos que também aplicar alguns “one-off” patches no OEM antes do RU, também precisamos atualizar a tool que será usada para aplicar os “one-off” patches no OEM.

Se você é um DBA, você provavelmente já conhece bem sobre o OPatch. OK, para o OEM/OEM Agent, as tools são um pouco diferentes:

  • omspatcher: para aplicar patches no OMS
  • opatch: para aplicar os one-off patches no OMS
  • agentpatcher: para aplicar patches no OEM Agent

Perfeito, então temos que atualizar o omspatcher, opatch and agentpatcher, você precisa seguir três notas para isso:

13.5: How To Upgrade Enterprise Manager 13.5 Cloud Control OMSPatcher Utility to the Latest Version (Doc ID 2809842.1)

13.5: How to Upgrade AgentPatcher to the Latest Version (Doc ID 2810322.1)

PATCH 28186730 – OPATCH 13.9.4.2.14 FOR EM 13.4, 13.5 and FMW/WLS 12.2.1.3.0, 12.2.1.4.0 AND 14.1.1.0.0

Então, para resumir, para que consigamos atualizar o omspatcher, opatch e agentpatcher, os seguintes patches precisam ser aplicados:

Patch 19999993: OMSPatcher patch of version 13.9.5.18.0 for Enterprise Manager Cloud Control 13.5.0.0.0

Patch 33355570: AgentPatcher release of version 13.9.5.6.0 for Enterprise Manager Cloud Control Agent 13.5.0.0.0

Patch 28186730: OPatch 13.9.4.2.14 for EM 13.4, EM 13.5 and FMW/WLS 12.2.1.3.0, 12.2.1.4.0 and 14.1.1.0.0

Perfeito, então precisamos fazer o download de 8 arquivos no total:

  • ————————————————–
  • Servidor OEM:
    • 36005341: RU 16 para o OMS
    • 19999993: OMSPatcher version 13.9.5.18.0
    • 35430934: MERGE REQUEST ON TOP OF 12.2.1.4.0 FOR BUGS 32720458 33607709
    • 34153238: HTTPS PROXY CONFIGURATION IS NOT USED WHEN PROTOCOL IS CONFIGURED TO TCP
    • 31657681: THREADS CONTEND FOR LOCK IN LOADFILEBASEDKEYSTORE WHEN OPENING TLS/SSL ENABLED JDBC CONNECTIONS
    • 28186730: OPatch 13.9.4.2.14 for EM 13.4, EM 13.5 and FMW/WLS 12.2.1.3.0, 12.2.1.4.0 and 14.1.1.0.0
  • ————————————————–
  • OEM Agent:
    • 36005346: RU 20 for OEM Agent
    • 33355570: AgentPatcher version 13.9.5.6.0
  • ————————————————–

Perfeito!

Vamos então realizar o update do OMSPatcher e OPatch.

O ORACLE_HOME para o OEM é: /u04/app/oracle/product/OEM_135.

O usuário no sistema operacional que é o owner do OEM é o: oraoem.

A variável de ambiente PATH está definida como: $ORACLE_HOME/bin:$ORACLE_HOME/OMSPatcher:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:

Basicamente, precisamos fazer o seguinte:

  • Fazer um backup do diretório atual do omspatcher;
  • Descompactar/extrair o patch 19999993 no $ORACLE_HOME para “instalar” o novo omspatcher;
  • Checar se o omspatcher foi atualizado.
  • Descompactar/extrair o patch 28186730 (para atualizar o OPatch);
  • Aplicar o patch 28186730;
  • Checar se o OPatch foi atualizado.

Com o usuário que é o dono do OEM no sistema operacional (Linux):

cd $ORACLE_HOME

mv OMSPatcher OMSPatcher.bkp.20230908

cp /sapcd/OEM_13.5.0.20/p19999993_135000_Generic.zip .

unzip -q -o p19999993_135000_Generic.zip

omspatcher version

OMSPatcher Version: 13.9.5.18.0
OPlan Version: 12.2.0.1.16
OsysModel build: Tue Apr 28 18:16:31 PDT 2020

OMSPatcher succeeded.

Agora, vamos atualizar o OPatch:

cd /sapcd/OEM_13.5.0.20

unzip -q -o p28186730_1394214_Generic.zip

$ORACLE_HOME/oracle_common/jdk/jre/bin/java -jar /sapcd/OEM_13.5.0.20/6880880/opatch_generic.jar -silent oracle_home=$ORACLE_HOME

$ORACLE_HOME/OPatch/opatch version

OPatch Version: 13.9.4.2.14

OPatch succeeded.

OK, antes de aplicarmos os patches, é bom salvarmos algumas informações do nosso ambiente. Vamos checar o status do OMS com a flag details. Com o usuário oraoem:

emctl status oms -details

Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation. All rights reserved.
Console Server Host : OEM-01.domain.com
HTTP Console Port : 7788
HTTPS Console Port : 7802
HTTP Upload Port : 4889
HTTPS Upload Port : 4903
EM Instance Home : /u04/app/oracle/product/gc_inst2/em/EMGC_OMS1
OMS Log Directory Location : /u04/app/oracle/product/gc_inst2/em/EMGC_OMS1/sysman/log
OMS is not configured with SLB or virtual hostname
Agent Upload is locked.
OMS Console is locked.
Active CA ID: 2
Console URL: https://OEM-01.domain.com:7802/em
Upload URL: https://OEM-01.domain.com:4903/empbs/upload

WLS Domain Information
Domain Name : GCDomain
Admin Server Host : OEM-01.domain.com
Admin Server HTTPS Port: 7102
Admin Server is RUNNING

Oracle Management Server Information
Managed Server Instance Name: EMGC_OMS1
Oracle Management Server Instance Host: OEM-01.domain.com
WebTier is Up
Oracle Management Server is Up
JVMD Engine is Up

Agora, precisamos aplicar os one-off patches, já que eles estão listados como requisitos para serem aplicados ANTES de aplicarmos o OEM 13.5 RU 20.

Os patches a serem aplicados agora estão listados abaixo:

  • 35430934: MERGE REQUEST ON TOP OF 12.2.1.4.0 FOR BUGS 32720458 33607709
  • 34153238: HTTPS PROXY CONFIGURATION IS NOT USED WHEN PROTOCOL IS CONFIGURED TO TCP
  • 31657681: THREADS CONTEND FOR LOCK IN LOADFILEBASEDKEYSTORE WHEN OPENING TLS/SSL ENABLED JDBC CONNECTIONS

Todos os três patches listados acima possuem basicamente as mesmas instruções de Pré-Instalação:

Se você observar o Step 2 está bem claro: faça o Stop de todos os Servers (Admin Server e Managed Server(s)).

Para isso, precisamos parar o OEM. Tenha em mente que o comando para parar o OEM geralmente para somente o OEM, mas não o Admin Server. Para parar tudo, inclusive o Admin Server, você precisa usar a flag “-all”. Vamos fazer isso:

emctl stop oms -all -force

O próximo passo é aplicar os patches. Eu não vou mostrar todos os outputs/saídas porque o blog post ficaria imenso. Vou focar nos seguintes passos:

Então, eu vou executar os seguintes passos:

  • Ir para o diretório stage onde eu tenho os arquivos de patch;
  • Descompactar todos os arquivos de patch;
  • Aplicar os patches um por um.

Quando o opatch perguntar por sua confirmação, simplesmente pressione “y” para seguir adiante.

cd /sapcd/OEM_13.5.0.20

unzip -q -o p35430934_122140_Generic.zip

unzip -q -o p34153238_122140_Generic.zip

unzip -q -o p31657681_191000_Generic.zip

cd 35430934

opatch apply

cd ..

cd 34153238

opatch apply

cd ..

cd 31657681

opatch apply

cd ..

Como um exemplo do opatch apply, vamos checar o output para um patch apenas:

Oracle Interim Patch Installer version 13.9.4.2.14
Copyright (c) 2024, Oracle Corporation. All rights reserved.


Oracle Home : /u04/app/oracle/product/OEM_135
Central Inventory : /u01/app/oraInventory
from : /u04/app/oracle/product/OEM_135/oraInst.loc
OPatch version : 13.9.4.2.14
OUI version : 13.9.4.0.0
Log file location : /u04/app/oracle/product/OEM_135/cfgtoollogs/opatch/opatch2024-03-26_12-36-41PM_1.log


OPatch detects the Middleware Home as “/u04/app/oracle/product/OEM_135”

Verifying environment and performing prerequisite checks…
OPatch continues with these patches: 31657681

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = ‘/u04/app/oracle/product/OEM_135’)


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files…
Applying interim patch ‘31657681’ to OH ‘/u04/app/oracle/product/OEM_135’

Patching component oracle.javavm.jrf, 19.3.0.0.0…
Patch 31657681 successfully applied.

Excelente! Os três patches mandatórios agora estão aplicados no OEM. Agora, para que possamos aplicar o RU 20, nós precisamos que o OEM continue em shutdown, mas que o Admin Server esteja iniciado, portanto, vamos iniciar o Admin Server. Moleza!

Você pode encontrar as sintaxes do emctl aqui:

Oracle Enterprise Manager – Cloud Control Administrator’s Guide – 13c Release 5 – EMCTL Commands for OMS

Vamos lá:

emctl start oms -admin_only

Oracle Enterprise Manager Cloud Control 13c Release 5
Copyright (c) 1996, 2021 Oracle Corporation. All rights reserved.
Starting Admin Server only…
Admin Server Successfully Started

O próximo passo é rodar o analyze para checar se o patch está OK e se não temos nenhum conflito antes de aplicarmos o patch de fato. Primeiro temos que extrair o arquivo de patch:

cd /sapcd/OEM_13.5.0.20

unzip -q -o p36005341_135000_Generic.zip

cd 36005341

Agora, vamos rodar o analyze:

omspatcher apply -analyze

Você terá que entrar com algumas informações, como o usuário do Weblogic, a senha desse usuário, um usuário para o BD e a sua senha:


Please enter OMS weblogic admin server URL(t3s://OEM-01.domain.com:7102):>
Please enter OMS weblogic admin server username(weblogic):>
Please enter OMS weblogic admin server password:>

Enter DB user name : sys
Enter ‘sys’ password :

O output foi truncado para facilitar a leitura:

Complete Summary
——————————-
The following sub-patch(es) are applicable:
oracle.sysman.top.oms:36003265,36003227,36003223,36003273,36003108,36003254

The following sub-patches are incompatible with components installed in the OMS system:
35582217,34430509,34706773,36003235,35854914,36003245,35582170,36003258,36003270

OMSPatcher succeeded.

A sessão de analyze terminou com sucesso. Agora podemos proceder com o patch:

omspatcher apply

Você terá que entrar com algumas informações, como o usuário do Weblogic, a senha desse usuário, um usuário para o BD e a sua senha:


Please enter OMS weblogic admin server URL(t3s://OEM-01.domain.com:7102):>
Please enter OMS weblogic admin server username(weblogic):>
Please enter OMS weblogic admin server password:>

Enter DB user name : sys
Enter ‘sys’ password :

O output foi truncado para facilitar a leitura:

Patching summary:
—————–

Binaries of the following sub-patch(es) have been applied successfully:

Featureset Sub-patches Log file
———- ———– ——–
oracle.sysman.top.oms_13.5.0.0.0 36003108,36003223,36003227,36003254,36003265,36003273 opatch2024-03-26_13-33-20PM_1.log


The following sub-patches are incompatible with components installed in the OMS system:
35582217,34430509,34706773,36003235,35854914,36003245,35582170,36003258,36003270


Deployment summary:
——————-

The following artifact(s) have been successfully deployed:

Artifacts Log file
——— ——–
SQL rcu_applypatch_original_patch_2024-03-26_13-08-13PM.log
SQL rcu_applypatch_original_patch_2024-03-26_13-12-06PM.log
SQL rcu_applypatch_original_patch_2024-03-26_13-12-31PM.log



MRS-commands emctl_register_commands_2024-03-26_13-14-53PM.log

MRS-derivedAssocs emctl_register_derivedAssocs_2024-03-26_13-28-25PM.log


Log file location: /u04/app/oracle/product/OEM_135/cfgtoollogs/omspatcher/36005341/omspatcher_2024-03-26_12-54-00PM_apply.log



OMSPatcher succeeded.

Patch aplicado, vamos checar no OEM:

Na página principal do OEM, clique em SYSMAN / About Enterprise Manager:

A tela abaixo será exibida:

Perfeito! Agora o OEM está rodando no 13.5 Release Update 20

OK, se você se lembra, nós temos alguns passos para rodar DEPOIS de aplicar o RU:

Vamos para a nota recomendada:

Release of Fixes to Support OAuth move from OAM to IDCS (Doc ID 2998693.1)

Esse cliente não está usando a abordagem “Online mode” de aplicação de patches através do OEM, essa abordagem é usada quando o OEM consegue conectar no My Oracle Support (Metalink). Portanto, como você pode ver abaixo, os passos mencionados na nota acima não são obrigatórios no nosso caso:

Perfeito, então nós concluímos a parte de update do OMS para o RU 20.

O próximo passo é aplicar o patch nos OEM Agents, o primeiro passo é atualizar o utilitário AgentPatcher e, todos os servidores onde temos o agent rodando. Para identificar todos os servidores onde temos agentes rodando, você pode realizar as seguintes tarefas no servidor do OEM. Primeiro, você precisa logar com o usuário SYSMAN, e então listar os targets onde o tipo seja oracle_emd (agents):

emcli login -username=SYSMAN

Enter password

emcli get_targets | grep oracle_emd

1 Up oracle_emd SERVER01.domain.com
1 Up oracle_emd SERVER02.domain.com
1 Up oracle_emd SERVER03.domain.com
1 Up oracle_emd SERVER04.domain.com
1 Up oracle_emd SERVER05.domain.com
1 Up oracle_emd SERVER06.domain.com
1 Up oracle_emd SERVER07.domain.com
1 Up oracle_emd OEM-01.domain.com
1 Up oracle_emd SERVER08.domain.com
1 Up oracle_emd SERVER09.domain.com
1 Up oracle_emd SERVER10.domain.com
1 Up oracle_emd SERVER11.domain.com
1 Up oracle_emd SERVER12.domain.com
1 Up oracle_emd SERVER13.domain.com
1 Up oracle_emd SERVER14.domain.com
1 Up oracle_emd SERVER15.domain.com
1 Up oracle_emd SERVER16.domain.com
1 Up oracle_emd SERVER17.domain.com
1 Up oracle_emd SERVER18.domain.com
1 Up oracle_emd SERVER19.domain.com
1 Up oracle_emd SERVER20.domain.com
1 Up oracle_emd SERVER21.domain.com
1 Up oracle_emd SERVER22.domain.com
1 Up oracle_emd SERVER23.domain.com
1 Up oracle_emd SERVER24.domain.com
1 Up oracle_emd SERVER25.domain.com
1 Up oracle_emd SERVER26.domain.com
1 Up oracle_emd SERVER27.domain.com
1 Up oracle_emd SERVER28.domain.com

Agora que temos a lista de todos os servidores onde o agente está rodando, você precisará realizar os seguintes passos com o usuário que é o dono da instalação do agente em cada servidor:

ORACLE_HOME=$(ps -ef |grep agent_13 | grep -v grep | grep emw | awk ‘{print $8}’ | sed ‘s/\/perl\/bin\/perl//g’)

cd ${ORACLE_HOME}

$ORACLE_HOME/AgentPatcher/agentpatcher version

mv AgentPatcher AgentPatcher.bkp.20230908

cp /sapcd/OEM_13.5.0.20/p33355570_135000_Generic.zip .

unzip -q -o p33355570_135000_Generic.zip

$ORACLE_HOME/AgentPatcher/agentpatcher version

AgentPatcher Automation Tool
Copyright (c) 2021, Oracle Corporation.  All rights reserved.

AgentPatcher version : 13.9.5.6.0
OUI version        : 13.9.4.0.0

O AgentPatcher foi atualizado, o próximo passo é realizar o upload do patch 36005346 (Oracle Enterprise Manager 13c Release 5 Update 20 (20) for Oracle Management Agent) no OEM, como esse ambiente do OEM não está conectado na Internet, nós precisamos usar a abordagem de patching Offline. Antes de realizar o upload do patch para o OEM, é necessário realizar o download de dois arquivos antes:

  • O arquivo de patch propriamente dito: p36005346_135000_Generic.zip
  • O arquivo de metadados (metadata) do patch: p36005346_135000_American English_M.xml

Você pode baixar ambos os arquivos da mesma janela de download do patch no Metalink / My Oracle Support:

Vamos fazer o upload do patch, clique em Enterprise / Provisioning and Patching / Saved Patches:

Clique agora em Upload:

Agora escolha os arquivos de patch (arquivo zip) e o arquivo de metadados, que foram baixados no passo anterior:

Depois de algum tempo, o upload do patch para o OEM será finalizado:

Agora estamos prontos para aplicar o patch nos Agents. Para isso, primeiro clique em Enterprise / Provisioning and Patching / Patches & Updates:

O próximo passo é buscar pelo patch 36005346 e assim que o patch for exibido, clique em Create a Plan. Isso permitirá que criemos um Patch Plan.

Eu recomendo que você primeiro aplique o patch em um único agente, e após o término nesse agente, você poderá repetir os passos baixos para todos os outros servidores:

Na próxima tela, você pode definir um nome para o seu Patch Plan e então clicar em Add para adicionar os Targets (Hosts) onde você quer aplicar o patch:

Com os hosts especificados (como eu disse, nesse exemplo eu usei somente um host para validar o procedimento – e também note que o hostname real foi alterado por questões de segurança), clique agora no botão Create Plan:

Agora que o Patch Plan foi criado. Clique em cima do Patch Plan:

Na primeira tela do Patch Plan, nós temos algumas poucas informações. Simplesmente clique em Next:

Na próxima tela, nós temos todos os patches que serão aplicados nesse patch plan. No nosso caso, nós temos apenas o patch 36005346, que é o o OEM 13c RU 20 para o Agent. Clique em Next novamente:

Na próxima tela, nós temos listadas as opções de deployment, além do Oracle Home, Host e Agente onde o patch será aplicado. Clique em Next:

Na próxima tela, recebemos a informação que uma Validação é obrigatória para esse patch. Isso é para garantir que não há conflitos ao aplicar o patch. Clique em Analyze:

A Validação/Análise começará. Se você quiser, pode ver mais detalhes clicando em Show Detailed Results:

Uma vez que você clicou em Show Detailed Results, uma nova aba será aberta no seu browser. Meu conselho é mudar o Auto Refresh para 15 segundos. Assim você pode monitorar o Status para a tarefa:

Nós podemos ver na tela acima que a Análise foi concluída com sucesso. Agora, nosso plano está na fase Ready for Deployment. Clique em Next:

Uma vez que estamos na tela de Ready for Deployment, simplesmente clique no botão Deploy:

Você pode escolher entre fazer o Deploy imediatamente ou agendar para um momento posterior. No meu caso, escolhi a opção para fazer o Deploy imediatamente:

Uma vez que você clicou em Submit, o deployment do patch vai começar. Se você quiser, você também pode checar os detalhes (eu vou colocar abaixo ambas as telas, mas como você pode ver, o deploy foi implementado com sucesso):

Perfeito! Agora o agente nesse servidor específico foi atualizado para o Oracle Enterprise Manager 13c Release 5 Update 20 (13.5.0.20).

Agora, você pode criar um novo Patch Plan e adicionar o restante dos seus servidores (sim, você pode adicionar todos os outros servidores para fazer a aplicação do patch em todos ao mesmo tempo, em paralelo). Uma vez que você adicionar todos os servidores restantes e seguir os mesmos passos acima listados, o Oracle Enterprise Manager 13c Release 5 Update 20 (13.5.0.20) será aplicado em todos os OEM Agents.

Notas úteis que usei para essa atividade:

OMS:

Enterprise Manager 13.5 Main Release Update List (Includes Plug-ins) (Doc ID 2760230.2)
13.5.0 Enterprise Manager Cloud Control Base Platform Monthly Release Update (RU) 20 (Doc ID 3006198.1)
13.5: How To Upgrade Enterprise Manager 13.5 Cloud Control OMSPatcher Utility to the Latest Version (Doc ID 2809842.1)
Patch 19999993: OMSPatcher patch of version 13.9.5.18.0 for Enterprise Manager Cloud Control 13.5.0.0.0
Patch 36005341: Oracle Enterprise Manager 13c Release 5 Update 20 (13.5.0.20) for Oracle Management Service
PATCH 28186730 – OPATCH 13.9.4.2.14 FOR EM 13.4, 13.5 and FMW/WLS 12.2.1.3.0, 12.2.1.4.0 AND 14.1.1.0.0
Patch 35430934: MERGE REQUEST ON TOP OF 12.2.1.4.0 FOR BUGS 32720458 33607709
Patch 34153238: HTTPS PROXY CONFIGURATION IS NOT USED WHEN PROTOCOL IS CONFIGURED TO TCP
Patch 31657681: THREADS CONTEND FOR LOCK IN LOADFILEBASEDKEYSTORE WHEN OPENING TLS/SSL ENABLED JDBC CONNECTIONS

Agente:

13.5: How to Upgrade AgentPatcher to the Latest Version (Doc ID 2810322.1)
Patch 36005346: Oracle Enterprise Manager 13c Release 5 Update 20 (13.5.0.20) for Oracle Management Agent
Patch 33355570: AgentPatcher release of version 13.9.5.5.0 for Enterprise Manager Cloud Control Agent 13.5.0.0.0

Espero que seja útil!

Um abraço!

Vinicius

PS: No último ano, eu criei um post para mostrar um playbookAnsible bem simples para atualizar o AgentPatcher em todos os servidores onde temos o OEM Agent rodando. Dessa vez, eu vou criar um post em breve para mostrar como exibir a versão de RU do OEM Agent usando um playbook Ansible. Isso será útil para validar a versão do OEM Agent após o patch.

Você pode ver os posts do último ano aqui:

Como atualizar o Oracle Enterprise Manager do RU 13.5.0.9 para o RU 13.5.0.16

Ansible Playbook para atualizar o AgentPatcher dos Agentes do OEM