Problema
Tentativa de realizar apply ou analyze de Release Update com OPatchAuto falha com mensagem de erro “ERROR: Invalid Patch location”:
[root@rac01 ~]# opatchauto apply /home/grid/32545008/ -analyze
OPatchauto session is initiated at Wed Jun 30 19:42:02 2021
System initialization log file is /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchautodb/systemconfig2021-06-30_07-42-04PM.log.
Session log file is /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchauto/opatchauto2021-06-30_07-42-19PM.log
The id for this session is 684S
Executing OPatch prereq operations to verify patch applicability on home /u01/app/product/19.0.0.0/grid
Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/19.0.0.0/db_1
Patch applicability verified successfully on home /u01/app/oracle/product/19.0.0.0/db_1
Patch applicability verified successfully on home /u01/app/product/19.0.0.0/grid
Executing patch validation checks on home /u01/app/product/19.0.0.0/grid
Patch validation checks successfully completed on home /u01/app/product/19.0.0.0/grid
Executing patch validation checks on home /u01/app/oracle/product/19.0.0.0/db_1
Patch validation checks successfully completed on home /u01/app/oracle/product/19.0.0.0/db_1
Verifying SQL patch applicability on home /u01/app/oracle/product/19.0.0.0/db_1
SQL patch applicability verified successfully on home /u01/app/oracle/product/19.0.0.0/db_1
OPatchAuto successful.
--------------------------------Summary--------------------------------
Analysis for applying patches has failed:
Host:rac01
RAC Home:/u01/app/oracle/product/19.0.0.0/db_1
Version:19.0.0.0.0
Analysis for patches has failed.
ERROR: Invalid Patch location: /home/grid/32545008/
Host:rac01
CRS Home:/u01/app/product/19.0.0.0/grid
Version:19.0.0.0.0
==Following patches were SUCCESSFULLY analyzed to be applied:
Patch: /home/grid/32545008/32579761
Log: /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2021-06-30_19-42-32PM_1.log
Patch: /home/grid/32545008/32576499
Log: /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2021-06-30_19-42-32PM_1.log
Patch: /home/grid/32545008/32585572
Log: /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2021-06-30_19-42-32PM_1.log
Patch: /home/grid/32545008/32584670
Log: /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2021-06-30_19-42-32PM_1.log
Patch: /home/grid/32545008/32545013
Log: /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2021-06-30_19-42-32PM_1.log
OPATCHAUTO-72053: Analysis for the patches failed.
OPATCHAUTO-72053: Command execution failed.
OPATCHAUTO-72053: Please check the summary for more details.
OPatchauto session completed at Wed Jun 30 19:43:26 2021
Time taken to complete the session 1 minute, 24 seconds
Nota: Por padrão, o OPatchAuto aplica o patch no GI Home e em todos os DB Homes que estiverem na mesma versão do GI Home, a menos que seja especificada a opção -oh (que é usada para indicar o diretório do Oracle Home que deve ser atualizado).
Na sessão SUMMARY, o erro foi reportado somente para o DB Home (RAC Home):
--------------------------------Summary--------------------------------
Analysis for applying patches has failed:
Host:rac01
RAC Home:/u01/app/oracle/product/19.0.0.0/db_1
Version:19.0.0.0.0
Analysis for patches has failed.
ERROR: Invalid Patch location: /home/grid/32545008/
Host:rac01
CRS Home:/u01/app/product/19.0.0.0/grid
Version:19.0.0.0.0
==Following patches were SUCCESSFULLY analyzed to be applied:
Causa
O usuário “oracle” não tem permissão para acessar o diretório onde o patch foi extraído.
Apesar de o OPatchAuto ser executado com usuário root, este utilitário é apenas o orquestrador que automatiza as ações executadas com OPatch. Na prática, o OPatchAuto irá aplicar os patches no Grid Infrastructure com o OPatch do GI Home, conectando com o usuário grid. Por outro lado, os patches do Database são aplicados com o OPatch do respectivo DB Home, conectando com o usuário oracle.
Note que o diretório “32545008” pertence ao usuário grid e ao grupo oinstall, com permissão 775 em todos os arquivos e sub-pastas:
# stat /home/grid/32545008 | grep Gid
Access: (0775/drwxrwxr-x) Uid: (54322/ grid) Gid: (54321/oinstall)
# ls -lrt /home/grid/32545008
total 132
-rwxrwxr-x 1 grid oinstall 5824 Apr 20 04:46 bundle.xml
drwxrwxr-x 5 grid oinstall 62 Apr 20 07:17 32579761
drwxrwxr-x 4 grid oinstall 48 Apr 20 07:18 32584670
drwxrwxr-x 5 grid oinstall 81 Apr 20 07:18 32545013
drwxrwxr-x 5 grid oinstall 62 Apr 20 07:21 32576499
-rwxrwxr-x 1 grid oinstall 0 Apr 20 07:22 README.txt
drwxrwxr-x 2 grid oinstall 4096 Apr 20 07:22 automation
drwxrwxr-x 4 grid oinstall 48 Apr 20 07:22 32585572
-rwxrwxr-x 1 grid oinstall 122690 Jun 4 09:48 README.html
Mas uma tentativa de acessar esse diretório conectado com o usuário “oracle” falha por falta de permissão:
# su - oracle
Last login: Wed Jun 30 19:52:02 -03 2021 from 192.168.1.218 on pts/1
[oracle@rac01 ~]$ ls -l /home/grid/32545008
ls: cannot access /home/grid/32545008: Permission denied
Isso ocorre porque o usuário oracle não tem permissão no diretório /home/grid.
Solução
A solução neste caso é mover a pasta do patch para uma localização onde o usuário oracle tenha permissão de leitura em todo o diretório, desde a raíz.
Neste exemplo, vou mover a pasta para o /tmp :
# mv /home/grid/32545008/ /tmp/
Testando a acessbilidade com o usuário oracle:
# su - oracle
Last login: Wed Jun 30 20:11:01 -03 2021 on pts/0
[oracle@rac01 ~]$
[oracle@rac01 ~]$ ls -lrt /tmp/32545008/
total 132
-rwxrwxr-x 1 grid oinstall 5824 Apr 20 04:46 bundle.xml
drwxrwxr-x 5 grid oinstall 62 Apr 20 07:17 32579761
drwxrwxr-x 4 grid oinstall 48 Apr 20 07:18 32584670
drwxrwxr-x 5 grid oinstall 81 Apr 20 07:18 32545013
drwxrwxr-x 5 grid oinstall 62 Apr 20 07:21 32576499
-rwxrwxr-x 1 grid oinstall 0 Apr 20 07:22 README.txt
drwxrwxr-x 2 grid oinstall 4096 Apr 20 07:22 automation
drwxrwxr-x 4 grid oinstall 48 Apr 20 07:22 32585572
-rwxrwxr-x 1 grid oinstall 122690 Jun 4 09:48 README.html
Testando a execução do analyze com OPatchAuto novamente:
# opatchauto apply /tmp/32545008/ -analyze
OPatchauto session is initiated at Wed Jun 30 20:15:44 2021
System initialization log file is /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchautodb/systemconfig2021-06-30_08-15-46PM.log.
Session log file is /u01/app/product/19.0.0.0/grid/cfgtoollogs/opatchauto/opatchauto2021-06-30_08-15-59PM.log
The id for this session is DAYI
Executing OPatch prereq operations to verify patch applicability on home /u01/app/product/19.0.0.0/grid
Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/19.0.0.0/db_1
Patch applicability verified successfully on home /u01/app/product/19.0.0.0/grid
Patch applicability verified successfully on home /u01/app/oracle/product/19.0.0.0/db_1
Executing patch validation checks on home /u01/app/product/19.0.0.0/grid
Patch validation checks successfully completed on home /u01/app/product/19.0.0.0/grid
Executing patch validation checks on home /u01/app/oracle/product/19.0.0.0/db_1
Patch validation checks successfully completed on home /u01/app/oracle/product/19.0.0.0/db_1
Verifying SQL patch applicability on home /u01/app/oracle/product/19.0.0.0/db_1
SQL patch applicability verified successfully on home /u01/app/oracle/product/19.0.0.0/db_1
OPatchAuto successful.
--------------------------------Summary--------------------------------
Analysis for applying patches has completed successfully:
Host:rac01
RAC Home:/u01/app/oracle/product/19.0.0.0/db_1
Version:19.0.0.0.0
==Following patches were SKIPPED:
Patch: /tmp/32545008/32576499
Reason: This patch is not applicable to this specified target type - "rac_database"
Patch: /tmp/32545008/32585572
Reason: This patch is not applicable to this specified target type - "rac_database"
Patch: /tmp/32545008/32584670
Reason: This patch is not applicable to this specified target type - "rac_database"
==Following patches were SUCCESSFULLY analyzed to be applied:
Patch: /tmp/32545008/32579761
Log: /u01/app/oracle/product/19.0.0.0/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2021-06-30_20-16-12PM_1.log
Patch: /tmp/32545008/32545013
Log: /u01/app/oracle/product/19.0.0.0/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2021-06-30_20-16-12PM_1.log
OPatchauto session completed at Wed Jun 30 20:17:37 2021
Time taken to complete the session 1 minute, 53 seconds