Στο άρθρο αυτό θα μιλήσουμε για το temporary tablespace μιας βάσης δεδομένων oracle. Δημιουργούμε ένα καινούργιο TEMP1 (default temporary tablespace). Σβήνουμε το παλιό (TEMP), το ξαναδημιουργούμε πιο μικρό και το κάνουμε default temporary για την βάση. Τέλος σβήνουμε το παλιό TEMP1. Έτσι καταλήγουμε με ένα μικρότερο temporary tablespace με το ίδιο όνομα αλλά με πολύ μικρότερο μέγεθος.
SQL> create temporary tablespace temp1 tempfile '/u02/dbfiles/aylo/temp101_u02.dbf' size 2000m
SQL> alter database default temporary tablespace TEMP1
SQL> drop tablespace TEMP including contents and datafiles
SQL> create temporary tablespace temp tempfile '/u02/dbfiles/aylo/temp.dbf' size 2000m
SQL> alter database default temporary tablespace TEMP
SQL> drop tablespace TEMP1 including contents and datafiles
Σε περίπτωση που σκάει η εντολή σβησίματος του TEMP tablespace, τρέχουμε το παρακάτω query και με βάση τα αποτελέσματα σκοτώνουμε το session-s που δημιουργούν το πρόβλημα και προχωράμε στην οριστική διαγραφή.
SQL> select se.username username,se.SID sid, se.serial# serial#, se.status status, se.sql_hash_value, se.prev_hash_value,se.machine machine, su.TABLESPACE
tablespace,su.segtype,su.CONTENTS CONTENTS
from v$session se, v$sort_usage su
where se.saddr=su.session_addr;
SQL> alter system kill session 'sid,serial'; (πχ ‘23,342’ )
from v$session se, v$sort_usage su
where se.saddr=su.session_addr;
SQL> alter system kill session 'sid,serial'; (πχ ‘23,342’ )