From: Michael Vrable Date: Mon, 4 Jun 2007 17:29:17 +0000 (-0700) Subject: Create an SQL script for cleaning out the local object database. X-Git-Url: http://git.vrable.net/?a=commitdiff_plain;h=b58e95ed59314d930ddd1c166662c2086473a96b;p=cumulus.git Create an SQL script for cleaning out the local object database. --- diff --git a/cleandb.sql b/cleandb.sql new file mode 100644 index 0000000..d744d97 --- /dev/null +++ b/cleandb.sql @@ -0,0 +1,24 @@ +-- SQL commands for cleaning out the local database. These commands should be +-- executed within a transaction, but this script does not do so +-- automatically--it is up to the caller to set up a transaction before +-- executing these commands. +-- +-- Any snapshots which do not need to be tracked should be deleted from the +-- snapshots table prior to executing these commands. This script will then +-- clean up all state with a snapshotid not found in the snapshots table. + +-- Delete entries in the snapshot_contents table which are for non-existent +-- snapshots. +delete from snapshot_contents + where snapshotid not in (select snapshotid from snapshots); + +-- Find segments which contain no objects used by any current snapshots, and +-- delete them from the segment table. +delete from segments where segmentid not in + (select distinct segmentid from snapshot_contents natural join block_index); + +-- Finally, delete objects contained in non-existent segments. We can't simply +-- delete unused objects, since we use the set of unused objects to determine +-- the used/free ratio of segments. +delete from block_index + where segmentid not in (select segmentid from segments);