This post is also available in:
Você executa o deploy de uma gold image pelo Fleet Maintenance e recebe o erro abaixo logo na primeira tentativa — sem ter feito nenhum deploy anterior naquele target:
Processing target "has_orcltest.localhost"...
Checking image subscription...
Check image subscription passed.
Checking if target is in non-default location inside the Oracle Home...
Oracle home is already provisioned for the target [has_orcltest.localhost] for given gold image version at location '/u01/app/19.21.0.0/grid'.
ERROR: Operation could not be completed
Verb performOperation unsuccessfulO job falha antes de iniciar qualquer ação no servidor. Nenhum arquivo é copiado, nenhum patch é aplicado.
💡 Na prática
Esse erro apareceu na primeira tentativa de deploy de uma gold image de Grid Infrastructure (19.25) via Fleet Maintenance. Nenhum deploy havia sido feito antes naquele target — o que torna a mensagem ainda mais confusa.
Por que acontece
O Fleet Maintenance mantém um inventário interno no OEM que registra a associação entre targets e Oracle Homes provisionados via gold image. Esse registro pode existir mesmo sem um deploy concluído com sucesso — basta uma tentativa anterior, um setup incompleto, ou um estado residual deixado por alguma operação de configuração do próprio OEM Agent.
Quando o processo detecta que o path do Oracle Home (/u01/app/19.21.0.0/grid) já está registrado para aquele target, ele interpreta como uma tentativa de provisionar um home duplicado e bloqueia a operação por segurança.
O parâmetro IS_REDEPLOY=true sinaliza explicitamente para o Fleet Maintenance que a intenção é sobrescrever esse registro e prosseguir com o deploy.
Solução
O arquivo de configuração original usado na tentativa com erro:
[oracle@orcl config_files]$ cat deploy_has_image_1925.txt
NEW_ORACLE_HOME_LIST=/u01/app/19.25.0.0/grid
dispatchLoc=/u01/app/temp/dispatchloc
workingDir=/u01Adicione o parâmetro IS_REDEPLOY=true ao arquivo:
[oracle@orcl config_files]$ cat deploy_has_image_1925.txt
NEW_ORACLE_HOME_LIST=/u01/app/19.25.0.0/grid
dispatchLoc=/u01/app/temp/dispatchloc
workingDir=/u01
IS_REDEPLOY=true⚠️ Atenção: Confirme o target e o path do Oracle Home antes de executar. Um re-deploy no target errado pode causar inconsistência no inventário do Fleet Maintenance.
Execute novamente:
emcli db_software_maintenance -performOperation \
-name="Deploy GI" \
-purpose='DEPLOY_SIHA_SOFTWARE' \
-target_type='has' \
-target_list=has_orcltest.localhost \
-normal_credential="ORACLE_VMS:SYSMAN" \
-privilege_credential="SUDOORACLE:SYSMAN" \
-input_file="data:/dados/PROJETOS/patch_oem/config_files/deploy_has_image_1925.txt"Output esperado:
Processing target "has_orcltest.localhost"...
Checking image subscription...
Check image subscription passed.
Checking if target is in non-default location inside the Oracle Home...
Oracle home target list is E8E5FBCFA382E70C8CF3CE4B02215041
Operation 'Deploy GI' created successfully.
Deploy Grid home software for has_orcltest.localhost can be monitored using:
EMCLI:
emcli get_instance_status -exec=2CBE7D3476457BD6E0632404080AD840 -details -xml
Browser:
https://<EM Host>:<EM Port>/em/faces/core-jobs-procedureExecutionTracking?executionGUID=2CBE7D3476457BD6E0632404080AD840
Verb performOperation completed successfullyValidação pós-deploy
Acompanhe o job gerado com o comando retornado no output:
emcli get_instance_status \
-exec=<EXECUTION_GUID> \
-details \
-xmlSubstitua pelo valor retornado na linha emcli get_instance_status do output anterior. Você também pode acompanhar pelo console do OEM no link exibido.
Sobre o parâmetro ATTACH_HOME
O MOS Doc ID 3008380.1 documenta dois parâmetros para situações similares: IS_REDEPLOY=true e ATTACH_HOME. O post cobre o IS_REDEPLOY=true por ser o parâmetro validado neste cenário. Para casos envolvendo attach de Oracle Home existente, consulte o Doc ID diretamente.
Referências
- Oracle Support — Doc ID 3008380.1: Fleet: How To Use IS_REDEPLOY & ATTACH_HOME Parameters For Re-Deploy/Attach Oracle Home
- Oracle Fleet Maintenance — Oracle Enterprise Manager 13c Documentation
