Olá pessoal,
Espero que estejam bem!
Antes de irmos de fato para o assunto desse blog post, deixem eu explicar um pouco sobre o porque esse blog post tem a tag #JoelKallmanDay!
Desde 2016, a Comunidade Oracle tem um dia no ano onde o pessoal publica conteúdo (técnico ou não) e faz algum “ruído” na Internet! Isso começou a ser organizado pelo Tim Hall do Oracle Base.
O nome desse dia mudou em 2021 para “Joel Kallman Day” para honrar tudo o que o Joel Kallman fez pela comunidade!
Você pode ler mais aqui:
https://oracle-base.com/blog/2023/10/01/joel-kallman-day-2023-announcement/
OK, vamos lá!
Há algum tempo atrás, fiz um blog post sobre como atualizar o OEM, você pode checar aqui: Como atualizar o Oracle Enterprise Manager do RU 13.5.0.9 para o RU 13.5.0.16
OK, o ambiente que eu usei como referência para criar o blog post é o ambiente de Não-Prod (DEV, QA e Training).
Na última semana, eu apliquei o mesmo patch no OEM de Prod (outro Data Center), o qual monitora os ambientes de Pre-Prod, Prod e DR. Os bancos de dados de DR estão no mesmo Data Center físico que o ambiente de “Non-Prod”, mas, o OEM Prod monitora o ambiente DR já que ele faz parte da configuração do DataGuard (Primary [Prod] e Standby [DR]).
Uma das tarefas antes de aplicar o patch no OEM é executar o omspatcher com a flag de analyze para checar se tudo está certo.
Com o usuário que é o dono do OEM (a saída foi truncada para facilitar a leitura):
omspatcher apply -analyze -property_file /home/oraoem/property_file
Prereq “checkComponents” for patch 35258570 passed.
Prereq “checkComponents” for patch 34601404 passed.
Prereq “checkComponents” for patch 35122519 passed.
Prereq “checkComponents” for patch 35258589 passed.
Prereq “checkComponents” for patch 35258598 passed.
Prereq “checkComponents” for patch 35258702 passed.
The software library location /u01/app/library/ is empty.
Please follow the steps in the Document ID 2924633.1 and restore the software library. Retry the patching after the software library is reconfigured.
OK, antes de ir para o Documento ID 2924633.1, eu fiz algumas checagens no ambiente de OEM.
Eu listei nosso software library:
emcli login -username=sysman
Enter password
Login successful
emcli list_swlib_storage_locations
default_loc, /u04/app/oracle/product/swlib/, Active
library, /u01/app/library/, Active
swlib_loc, /u01/app/library_new/, Active
Nós podemos ver que temos três locais para o software library:locations:
Nome | Path | Status |
---|---|---|
default_loc | /u04/app/oracle/product/swlib/ | Active |
library | /u01/app/library/ | Active |
swlib_loc | /u01/app/library_new/ | Active |
Eu tenho certeza absoluta que o primeiro software library listado é o correto, o default_loc. Então, fiz um double check listando o conteúdo desse primeiro software library (a saída está truncada):
ls -l /u04/app/oracle/product/swlib
total 292
drwxr-x—. 2 oraoem oinstall 4096 Oct 7 2022 0
drwxr-x—. 2 oraoem oinstall 4096 Oct 8 2022 1
drwxr-x—. 2 oraoem oinstall 4096 Jun 23 2021 10
drwxr-x—. 2 oraoem oinstall 4096 Oct 7 2022 11
drwxr-x—. 2 oraoem oinstall 4096 Oct 7 2022 12
Fiz a mesma checagem para as duas outras localizações de software library, e, de fato, estavam vazias:
ls -l /u01/app/library/
total 0
ls -l /u01/app/library_new/
total 0
Portanto, a solução aqui é fácil, não é necessário ter nenhum tipo de “medo”, já que removeremos as software libraries que estão vazias.
Mas, nós não podemos simplesmente remover as localizações dessas software libraries do OEM. Nós precisamos especificar uma localização “alternativa” para onde os possíveis arquivos existentes na software library que será removida terão os arquivos migrados.
No nosso caso, sabemos que as localizações estão vazias, portanto, não haverá nenhum arquivo a ser migrado. De qualquer forma, é mandatório especificar essa localização alternativa. O OEM também irá criar um job para “mover” esses arquivos. Reforçando, no nosso caso, não haverá migração de arquivos já que as localizações estão vazias.
Portanto, tenha em mente que nós precisaremos remover a localização de duas software libraries do nosso OEM, e somente a default_lock permanecerá ativa na configuração do OEM.
Com isso dito, vamos proceder com a remoção das software libraries:
emcli remove_swlib_storage_location -name=”library” -migrate_to_loc=”default_loc” -type=”OmsShared”
Job ‘MigrateEntityFiles_1696286095483’ has been successfully submitted for migrating the files. The location ‘library’ will be removed on successful execution of the job. You can see the detail of the job execution by navigating to Enterprise -> Jobs -> Activity page.
emcli remove_swlib_storage_location -name=”swlib_loc” -migrate_to_loc=”default_loc” -type=”OmsShared”
Job ‘MigrateEntityFiles_1696286123601’ has been successfully submitted for migrating the files. The location ‘swlib_loc’ will be removed on successful execution of the job. You can see the detail of the job execution by navigating to Enterprise -> Jobs -> Activity page.
Checando agora nossas software libraries:
emcli list_swlib_storage_locations
default_loc, /u04/app/oracle/product/swlib/, Active
Você pode ler melhor sobre esse comando de remoção das software libraries aqui:
Perfeito! Agora temos apenas a default_loc ativa. Vamos executar novamente o omspatcher com a flag analyze (a saída está truncada):
omspatcher apply -analyze -property_file /home/oraoem/property_file
Prereq “checkComponents” for patch 35258570 passed.
Prereq “checkComponents” for patch 34601404 passed.
Prereq “checkComponents” for patch 35122519 passed.
Prereq “checkComponents” for patch 35258589 passed.
Prereq “checkComponents” for patch 35258598 passed.
Prereq “checkComponents” for patch 35258702 passed.
Configuration Validation: Success
Running apply prerequisite checks for sub-patch(es) “35258598,35258570,35258589,35258702,35122519,34601404” and Oracle Home “/u04/app/oracle/product/OEM_135″…
Sub-patch(es) “35258598,35258570,35258589,35258702,35122519,34601404” are successfully analyzed for Oracle Home “/u04/app/oracle/product/OEM_135”
Excelente!
Com isso, conseguimos executar o omspatcher update sem nenhum problema!
Espero que seja útil!
Um abraço,
Vinicius
Related posts
Disclaimer
Minhas postagens refletem minhas próprias opiniões e não representam necessariamente as opiniões do meu empregador, a Accenture.