Este post demonstra como aplicar um dos patches de correção do problema 2 da vulnerabilidade DB50 nos Exadatas, que precisa ser aplicado separadamente após atualização do Release Update do GRID e RDBMS, pois requer intervenção manual com usuário root no arquivo oradism dentro do diretório bin de cada Oracle Home.
Esse guia é um resumo baseado no README do patch 35074478 (correação para o RU 19.19).
Ao gerar um exachk, você pode se deparar com esse bug classificado com status CRITICAL:
(DB50) Clusterware Fails to Start Because CSSD Cannot Get Real-Time Priority (Doc ID 2903663.1)“
Exemplo:

Essa vulnerabilidade DB50 tem 2 problemas documentados. Para o problema 1, a correção já é inclusa no RU 19.17, mas o Problema 2 precisa ser aplicado manuamente após aplicar o RU:
Doc ID 2903663.1:
The fix for Bug 34286265 / Bug 34318125 is not eligible to be included in a Release Update due to its root access requirement when applied.
No My Oracle Support, pesquise pelo número 34286265 e clique no link referente a versão do RU que você está aplicando atualmente. No meu caso, é o 19.19:

Na página de descrição do bug, clique no link do patch:

Download:

Preparação:
Esta etapa assume que você já aplicou o RU e já tem o OPatch atualizado no Oracle Home (GRID e RDBMS).
Aplica-se a Exadata OnPremise, ExaCS e ExaCC (nesses dois últimos casos, assume-se que o Grid e RDBMS já foram atualizados seguindo o fluxo normal da OCI (Console ou dbaascli).
unzip p35074478_1919000DBRU_Linux-x86-64.zip -d /tmp/
Archive: p35074478_1919000DBRU_Linux-x86-64.zip
creating: /tmp/35074478/
creating: /tmp/35074478/files/
creating: /tmp/35074478/files/lib/
creating: /tmp/35074478/files/lib/libgeneric19.a/
inflating: /tmp/35074478/files/lib/libgeneric19.a/skgnfs.o
inflating: /tmp/35074478/files/lib/libgeneric19.a/skgdism.o
inflating: /tmp/35074478/files/lib/libgeneric19.a/kgpcs.o
inflating: /tmp/35074478/files/lib/libgeneric19.a/skgfr.o
inflating: /tmp/35074478/files/lib/libgeneric19.a/kgcs.o
inflating: /tmp/35074478/files/lib/libgeneric19.a/kgnfs.o
inflating: /tmp/35074478/files/lib/libgeneric19.a/sskgm.o
inflating: /tmp/35074478/files/lib/libgeneric19.a/dbnest_ns.o
inflating: /tmp/35074478/files/lib/libgeneric19.a/dbnest_res.o
creating: /tmp/35074478/files/lib/libserver19.a/
inflating: /tmp/35074478/files/lib/libserver19.a/sp.o
inflating: /tmp/35074478/files/lib/libserver19.a/ksns.o
inflating: /tmp/35074478/files/lib/libserver19.a/skofs.o
creating: /tmp/35074478/files/bin/
inflating: /tmp/35074478/files/bin/oradism
creating: /tmp/35074478/files/rdbms/
creating: /tmp/35074478/files/rdbms/lib/
inflating: /tmp/35074478/files/rdbms/lib/soradism.o
inflating: /tmp/35074478/README.txt
creating: /tmp/35074478/etc/
creating: /tmp/35074478/etc/config/
inflating: /tmp/35074478/etc/config/inventory.xml
inflating: /tmp/35074478/etc/config/actions.xml
replace /tmp/PatchSearch.xml? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
inflating: /tmp/PatchSearch.xml
Garanta que o diretório tem permissão de leitura para o grupo oinstall:
chown -R grid.oinstall /tmp/35074478/ chmod -R 775 /tmp/35074478/
Prereqs
Nesta é tudo online.
- Ajuste as variáveis de ambiente GI_HOME e DB_HOME de acordo ao seu ambiente
- Ajuste o número do patch de acordo a versão que você baixou
- Copie e cole todos os comandos no terminal com usuário root.
echo "############# PRE PATCH ##############################" export GI_HOME=/u01/app/19.0.0.0/grid export DB_HOME=/u02/app/oracle/product/19.0.0.0/dbhome_1 echo "############# GRID ###################################" su grid export ORACLE_HOME=$GI_HOME cd /tmp/35074478 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ exit echo "############# RDBMS ###################################" su oracle export ORACLE_HOME=$DB_HOME cd /tmp/35074478 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ exit echo "Conluido!"
Instalação
Esse processo vai parar todos os serviços de Grid e do banco de dados.
- Ajuste as variáveis de ambiente GI_HOME e DB_HOME de acordo ao seu ambiente
- Ajuste o número do patch de acordo a versão que você baixou
- Copie e cole todos os comandos no terminal com usuário root.
echo "############# PRE PATCH ##############################" export GI_HOME=/u01/app/19.0.0.0/grid export DB_HOME=/u02/app/oracle/product/19.0.0.0/dbhome_1 $GI_HOME/crs/install/rootcrs.sh -prepatch chown grid $GI_HOME/bin/oradism chmod 0750 $GI_HOME/bin/oradism chown oracle $DB_HOME/bin/oradism chmod 0750 $DB_HOME/bin/oradism echo "############# GRID ###################################" su grid export ORACLE_HOME=$GI_HOME cd /home/grid/35074478 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local -silent exit echo "############# RDBMS ###################################" su oracle export ORACLE_HOME=$DB_HOME cd /home/oracle/35074478 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./ $ORACLE_HOME/OPatch/opatch apply -oh $ORACLE_HOME -local -silent exit echo "######## POS PATCH ##################################" chown root $DB_HOME/bin/oradism chmod 4750 $DB_HOME/bin/oradism chown root $GI_HOME/bin/oradism chmod 4750 $GI_HOME/bin/oradism $GI_HOME/crs/install/rootcrs.sh -postpatch echo "Conluido!"
Após garantir que o patch foi aplicado com sucesso no GRID e RDBMS, repita esse processo em todos os DB nodes (um por se estiver atualizando em modo rolling).