如何刪除臨時表空間過多的數(shù)據(jù)文件,? SQL> alter tablespace temp add tempfile 'C:\ORACLE\ORADATA\TEST\TEMP02.dbf' size 50M; Tablespace altered. SQL> --通過這種語法不能刪除臨時表空間數(shù)據(jù)文件 SQL> alter tablespace temp drop tempfile 'C:\ORACLE\ORADATA\TEST\TEMP02.dbf'; alter tablespace temp drop tempfile 'C:\ORACLE\ORADATA\TEST\TEMP02.dbf' * ERROR at line 1: ORA-02142: missing or invalid ALTER TABLESPACE option --正確的語法是先offline,然后才能drop SQL> alter database tempfile 'C:\ORACLE\ORADATA\TEST\TEMP02.dbf' offline; Database altered.
SQL> alter database tempfile 'C:\ORACLE\ORADATA\TEST\TEMP02.dbf' drop; Database altered.
刪除臨時表空間(drop temporary tablespace) 不能直接刪除數(shù)據(jù)庫的默認(rèn)臨時表空間,但是我們可以把另外一個臨時表空間切換成默認(rèn)臨時表空間,,然后刪除原先的臨時表空間 Step01:查看數(shù)據(jù)庫的默認(rèn)臨時表空間 SQL> select PROPERTY_NAME,PROPERTY_VALUE 2 from DATABASE_PROPERTIES 3 where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE ------------------------ -------------------------- DEFAULT_TEMP_TABLESPACE TEMP 數(shù)據(jù)庫默認(rèn)的臨時表空間是TEMP,。 Step02:創(chuàng)建一個新的臨時表空間TEMP_SWITCH SQL> CREATE TEMPORARY TABLESPACE TEMP_SWITCH 2 TEMPFILE 'D: bo boTEMP_SWITCH.ora' SIZE 20M; 表空間已創(chuàng)建。 SQL> TEMPORARY 表示創(chuàng)建的表空間是臨時表空間 TEMP_SWITCH是臨時表空間的名字,。 TEMPFILE 是關(guān)鍵字,,用于指定臨時文件。 TEMP_SWITCH.ora是組成臨時表空間的數(shù)據(jù)文件,。 SIZE 20M 是組成臨時表空間的臨時文件TEMP_SWITCH.ora的大小,。
Step03:查看數(shù)據(jù)庫中有哪些臨時表空間。 SQL> select distinct tablespace_name 2 from dba_temp_files;
TABLESPACE_NAME ------------------------------ TEMP TEMP_SWITCH SQL> 從輸出可以看出,,數(shù)據(jù)庫中共有兩個臨時表空間(TEMP,TEMP_SWITCH) Step04:把默認(rèn)臨時表空間從TEMP切換到TEMP_SWITCH SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_SWITCH;
數(shù)據(jù)庫已更改,。
SQL> Step05:再次查看數(shù)據(jù)庫的默認(rèn)臨時表空間 SQL>select PROPERTY_NAME,PROPERTY_VALUE 2 from DATABASE_PROPERTIES 3 where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE'; PROPERTY_NAME PROPERTY_VALUE ------------------------ -------------------------- DEFAULT_TEMP_TABLESPACE TEMP_SWITCH
Step06:刪除原來的臨時表空間 drop tablespace TEMP; --查看是否還有sql在使用臨時表空間 SELECT se.username, |
|