sql >> Database >  >> RDS >> Oracle

Grote .patch_storage

Ik heb een waarschuwing ontvangen van Enterprise Manager dat een van mijn productiedatabases bijna geen schijfruimte meer heeft. Ik heb het opgespoord tot $ GRID_HOME/.patch_storage die 30 GB van mijn 90 GB schijf in beslag nam. Klopt!

Het eerste wat ik deed was de opatch-opschoonroutine uitvoeren, zoals ik hier in 2013 heb gedocumenteerd: http://www.peasland.net/2013/03/21/patch_storage/

Helaas heeft het niets opgeruimd.

Deze keer moest ik mijn toevlucht nemen tot een handmatige opschoning. Dit zijn de stappen die ik heb gedaan.

De bestanden in .patch_storage beginnen met het patchmolecuulnummer en een tijdstempel. Bijvoorbeeld: 19582630 _Nov_14_2014_21_43_23

Ik moet opatch vragen of die patch nog in de inventaris zit.

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

In de inventaris staat dat de patch zich in de inventaris bevindt. Ik ga door naar de volgende patch.

Wanneer mijn lsinventory-opdracht niets retourneert, bevindt de patch zich niet in de inventaris. MOS Note 550522.1 zegt dat je die map kunt verwijderen omdat deze niet langer nodig is. De altijd voorzichtige DBA-persoonlijkheid in mij wil ervoor zorgen dat ik kan herstellen van een eenvoudig "rm -rf dir_name" -commando. Dus ik tar en gzip eerst de map, en verwijder dan de map.

teer 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

Het is een nauwgezet werk om dit voor elke patch te doen. Ik weet zeker dat iemand die beter is dan ik met sed en awk en shell-scripting dit proces zou kunnen automatiseren.

Door deze stappen te volgen, is mijn .patch_storage directory gedaald van 30GB naar 11GB.

Als ik volgend kwartaal mijn CPU opnieuw aanbreng, moet opatch huilen en eisen dat deze terug worden geplaatst, kan ik de tarball snel uitpakken en uitpakken en opatch zou blij moeten zijn.

Ik heb deze bewerking uitgevoerd op $GRID_HOME, maar het zal ook werken op $RDBMS_HOME. Aangezien dit Oracle RAC is, wil ik dit misschien ook doen op alle knooppunten in het cluster.


  1. Hoe krijg je een float-resultaat door twee integerwaarden te delen met T-SQL?

  2. Oracle-subquery ziet de variabele niet vanaf het buitenste blok 2 niveaus hoger

  3. hoe kan ik de top 100-records op de sql-server bijwerken?

  4. PostgreSQL ILIKE-query met SQLAlchemy