Als de tabellen niet echt gedropt worden tijdens het proces van tabel droppen en dus ook niet de ruimte vrij zal geven de tablespace, wat gebeurd er dan als de objecten alle ruimte verbruiken?
Het antwoord is eenvoudig: die situatie zal nooit voorkomen. Wanneer een tablespace volledig gevuld is met recycle bin data zodat de datafiles uitgebreid moeten worden om ruimte maken voor meer ruimte, dan is de tablespace onder “space pressure”. In dat geval zullen de objecten in de recycle bin automatisch gepurged worden in de volgorde van First in First out. Voor dat de tabel verwijderd wordt zullen eerst de afhankelijke objecten zoals indexen verwijderd worden. Space pressure kan ook voorkomen bij gebruikers qouta in een tablespace. De tablespace kan nog wel genoeg ruimte hebben maar de gebruiker kan uit zijn quotum lopen. In die situaties zal Oracle automatisch de objecten purgen van de gebruiker in de betreffende tablespace. Er zijn verschillende manieren waarop je de recycle bin zelf kan onderhouden. As je de tabel TEST uit de recycle bin wil purgen nadat je deze hebt gedropt, kan je het volgende doen: SQL>PURGE TABLE TEST; of gebruik zijn recycle bin naam:
SQL>PURGE TABLE "BIN$04LhcpndanfgMAAAAAANPw==$0";
Dit commando verwijderd de tabel TEST en alle afhankelijke objecten zoals indexen, constraints etc. uit de recycle bin en op die manier bespaar je wat ruimte. Indien je echter de een index permanent wil droppen van de recycle bin kan je het volgende doen: SQL>purge index in_test1_01; wat alleen de index zal verwijderen en een kopie van de tabel in de recycle bin achterlaten. Soms is het handiger om op een hoger niveau te purgen, bijvoorbeeld het purgen van de recycle bin in een complete tablespace USERS, dan doe je:
SQL>PURGE TABLESPACE USERS; Ook kan je de recycle bin van 1 enkele gebruiker in die tablespace purgen, handig in warehouse-achtige omgevingen waar gebruikers vele tijdelijke tabellen maken en droppen. Je kan bovenstaand commando aanpassen:
SQL>PURGE TABLESPACE USERS USER SCOTT;
User SCOTT kan zijn eigen recycle bin schonen met:
SQL>PURGE RECYCLEBIN;
Als een DBA kan alle objecten in iedere tablespace purgen met:
SQL>PURGE DBA_RECYCLEBIN;
Zoals je kan zien, kan de reycle bin op verschillende manieren onderhouden worden.
Zie ook: Flashback Table Tabel versions en Flashback
|