Oracle
 sql >> Database >  >> RDS >> Oracle

.patch_storage di grandi dimensioni

Ho ricevuto un avviso da Enterprise Manager che uno dei miei database di produzione stava esaurendo lo spazio su disco. L'ho rintracciato fino a $GRID_HOME/.patch_storage che stava consumando 30 GB del mio disco da 90 GB. Accidenti!

La prima cosa che ho fatto è stata eseguire la routine di pulizia dell'opatch come ho documentato qui nel 2013: http://www.peasland.net/2013/03/21/patch_storage/

Sfortunatamente, non ha ripulito nulla.

Questa volta ho dovuto ricorrere a una pulizia manuale. Ecco i passaggi che ho fatto.

I file in .patch_storage iniziano con il numero della molecola della patch e un timestamp. Ad esempio: 19582630 _14_novembre_2014_21_43_23

Devo chiedere a opatch se quella patch è ancora nell'inventario.

$ORACLE_HOME/OPatch/opatch lsinventory|grep 19582630
20075154, 20641027, 22271856, 20548410, 19016964, 19582630

lsinventory mostra che la patch è nell'inventario. Passo alla patch successiva.

Quando il mio comando lsinventory non restituisce nulla, la patch non è nell'inventario. MOS Note 550522.1 dice che puoi rimuovere quella directory poiché non è più necessaria. La personalità DBA sempre cauta in me vuole assicurarsi di poter recuperare da un semplice comando "rm -rf dir_name". Quindi prima tar e gzip la directory, quindi rimuovo la directory.

tar cvf 25869825_Jul_3_2017_23_11_58.tar 25869825_Jul_3_2017_23_11_58

gzip 25869825_Jul_3_2017_23_11_58.tar

rm -rf 25869825_Jul_3_2017_23_11_58

Il suo lavoro scrupoloso lo fa per ogni patch. Sono sicuro che qualcuno che è meglio di me con sed, awk e script di shell potrebbe automatizzare questo processo.

Seguendo questi passaggi, la mia directory .patch_storage è scesa da 30 GB a 11 GB.

Il prossimo trimestre, quando applico nuovamente la mia CPU, se opatch grida al fallo e chiedo che vengano riposizionati, posso decomprimere rapidamente ed estrarre il tarball e opatch dovrebbe essere felice.

Ho eseguito questa operazione su $GRID_HOME ma funzionerà anche su $RDBMS_HOME. Inoltre, poiché si tratta di Oracle RAC, potrei volerlo fare su tutti i nodi del cluster.