項目進入白熱化階段,各種問題都有可能出現,當每個人都在忙碌着做自己的事情時,突然一個分公司的支撐人員突然告訴我,當她插入數據的時候報錯:磁盤空間不足。這個時候我馬上上server上面去看,果然只剩下可憐的40M,1.5T的空間全部洗白。我馬上查看錶空間的使用情況,很悲劇的是空間不足。
這個時候咋辦呢,我把udump下面的文件全部幹掉(這些文件一般在單個進程出問題的時候我纔會去查看)。幹掉之後剩下了2個多G的空間,這個時候查看錶空間的使用情況,發現表空間都使用正常,除了undo表空間滿了(當時的transaction很多),發現可能是臨時表空間增長迅速引起的。此外還有另外一個空間暫有20G左右,目前的辦法只有先幹掉臨時表空間(undo表空間只有6G),把臨時表空間掛到另外一個磁盤。
1. 查看所有的表空間
SQL> select * From v$tablespace;
TS# NAME INCLUDED_IN_DATABASE_BACKUP BIGFILE FLASHBACK_ON ENCRYPT_IN_BACKUP
---------- ------------------------------ --------------------------- ------- ------------ -----------------
0 SYSTEM YES NO YES
1 UNDOTBS1 YES NO YES
2 SYSAUX YES NO YES
4 USERS YES NO YES
7 TBS_DATA YES NO YES
8 TBS_INDX YES NO YES
3 TEMP NO NO YES
7 rows selected
2. 查看當前用戶的使用表空間情況
SQL> select username,temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
MGMT_VIEW TEMP
SYS TEMP
DBSNMP TEMP
SYSMAN TEMP
YADX TEMP
SYSTEM TEMP
OUTLN TEMP
MDSYS TEMP
ORDSYS TEMP
CTXSYS TEMP
ANONYMOUS TEMP
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
EXFSYS TEMP
DMSYS TEMP
WMSYS TEMP
XDB TEMP
ORDPLUGINS TEMP
SI_INFORMTN_SCHEMA TEMP
OLAPSYS TEMP
MDDATA TEMP
DIP TEMP
SCOTT TEMP
TSMSYS TEMP
已選擇22行。
3. 查看目前臨時表空間包含的數據文件:
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
E:\ORADATA\TEMP01.DBF
SQL>
4. 創建一個臨時表空間
create temporary tablespace TEMP tempfile 'E:\ORADATA\TEMP01.DBF' size 20G;
5. 將默認臨時表空間切換到新的表空間上
alter database default temporary tablespace TEMP;
6. 再次查看所有用戶的臨時表空間設置
確認沒有用戶在使用舊的表空間之後,可以刪除掉
drop tablespace TEMP;
7. 查看臨時表空間綜合信息
SQL> select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible from dba
_temp_files;
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME MB AUT
------------------------------ ---------- ---
E:\ORADATA\TEMP01.DBF
TEMP 20480 NO
8. 最後在host上面刪除臨時表空間數據文件
這樣,系統就釋放了臨時表空間的空間。此外更分公司商量馬上添加磁盤空間。這個問題暫時得到解決。 這次過程中有些東西沒得得到記錄,所以這裏只記錄了操作步湊。當然處理方法還有多種,各位多多研究。