Ho intenzione di indovinare che stai utilizzando l'archiviazione automatica. (Non che ciò possa accadere altrimenti ... è facile accedervi con l'archiviazione automatica.)
Molto probabilmente il problema è che il database ha recuperato lo spazio per se stesso ma non ha rilasciato il disco sul sistema operativo. Questo può essere mostrato molto facilmente controllando l'High Water Mark per il tablespace.
Procedi come segue
db2 list tablespaces show detail
Questo ti mostrerà ogni tablespace e cosa sta usando sul disco. Used pages
indica quante pagine del disco sta utilizzando il database. Confrontandolo con total pages
(il totale richiesto su disco) e il High water mark (pages)
ti mostrerà se stai "rivendicando" più del necessario. (vale a dire pagine a basso consumo, pagine totali molto alte e un contrassegno di livello elevato vicino alle pagine totali).
Per sbarazzarsi di questo spazio inutilizzato e restituirlo al sistema operativo che si rilascia il seguente (sotto memorizzazione automatica): db2 alter tablespace <tablespace name> reduce max
. esempio
db2 alter tablespace ts1 reduce max;
Ciò farà sì che DB2 riduca il segno di livello alto e rilasci il disco inutilizzato al sistema operativo. (Nota che puoi farlo solo per tablespace regolari e di grandi dimensioni, non per tablespace temporanei di sistema o temporanei dell'utente).
Se si utilizza DMS senza archiviazione automatica, è necessario utilizzare un set leggermente diverso di comandi:
db2 alter tablespace <tablespace name> lower high water mark;
db2 alter tablespace reduce (<containter name> or [all containers] integer K|M|G or integer PERCENT);
esempio
db2 alter tablespace ts1 lower high water mark;
db2 alter tablespace reduce (all containers 500 M);
Laddove lavoriamo, inseriamo questo in alcuni dei nostri script di manutenzione in modo da eseguirlo automaticamente dopo aver effettuato nuovamente il rimontaggio per assicurarci di recuperare spazio su disco. Nel nostro caso utilizziamo DB2 LUW 9.7 FP 4, quindi non fa male ricontrollare il Centro informazioni per 9.5 per assicurarsi di avere accesso alle informazioni giuste per la tua versione.
EDIT: se i tuoi tablespace provengono da un database aggiornato a DB2 9.7, probabilmente non avrai impostato l'attributo di archiviazione recuperabile. Questo vale anche se si aggiorna da DMS all'archiviazione automatica. Ad ogni modo morde poiché non è possibile effettivamente abbassare il livello massimo dell'acqua. Devi scaricare la tabella e i dati, eliminare i tablespace. Quindi ricreare il tablespace utilizzando l'archiviazione automatica e importare i dati per le tabelle.