Ezt bármilyen kódhiba okozhatja, az én esetemben egy rosszul paraméterezett algoritmus futtatása miatt nőtt meg az adatbázis 32G fölé, ami már ütötte az Oracle 11g limitet. A paraméterezés javítása után viszont csak akkor tudok újra futtatni, ha már leszűkítettem az adatbázist.
Először is meg akartam állapítani, hogy melyik datafile, tablespace okozza a panaszt. A következő parancs kilistázza a datafile-okat, méretükkel csökkenő sorrendben:
select tablespace_name, file_name, bytes from dba_data_files order by bytes desc;
Miután megvan a datafile, jó tudni, hogy melyik táblák okozzák a bajt. A következő parancs megadja, hogy melyik tábla mekkora helyet foglal, ill. hogy hány sort tartalmaz az adott sémában (itt ’SCV_QD’):
select table_name, avg_row_len*num_rows, num_rows from dba_tables where owner = 'SCV_QD' order by num_rows desc;
Nekem ebből már sikerült kitalálnom, hogy mi a teendő, a megfelelő táblákat truncate-eltem. Ettől viszont még nem fog csökkeni az adatbázis mérete. Ahhoz a következő dolgokkal próbálkozhatunk:
1. Kiürítjük a „kukát”, ha van benne valami:
PURGE RECYCLEBIN;
2. Összehúzzuk az adatokat egy adott datafile-on:
ALTER DATABASE DATAFILE 'E:\ORACLE\ORADATA\ORCL\SCV_QD_DATA01.DBF' RESIZE 10G;
Nincsenek megjegyzések:
Megjegyzés küldése