環境:
OS:Red Hat Enterprise Linux AS release (Nahant)
DB:Oracle Database g Enterprise Edition Release Production
一台OraclegR數據庫報出如下錯誤:
ORA: unable to extend table SYSMANMGMT_SYSTEM_ERROR_LOG by in tablespace SYSAUX
ORA: unable to extend table SYSMANMGMT_SYSTEM_ERROR_LOG by in tablespace SYSAUX
ORA: unable to extend table SYSMANMGMT_SYSTEM_ERROR_LOG by in tablespace SYSAUX
ORA: unable to extend table SYSMANMGMT_SYSTEM_ERROR_LOG by in tablespace SYSAUX
ORA: unable to extend table SYSMANMGMT_SYSTEM_ERROR_LOG by in tablespace SYSAUX
登陸檢查
發現是SYSAUX表空間空間用盡
不能擴展
嘗試手工擴展SYSAUX表空間:
alter database datafile +ORADG/danaly/datafile/sysaux resize m
Tue Nov ::
ORA signalled during: alter database datafile
+ORADG/danaly/datafile/sysaux resize m
出現ORA
錯誤
提示空間不足
這時候我才認識到是磁盤空間可能被用完了
是誰
偷偷的
用了那麼多空間呢(本來有幾十個G的Free磁盤空間的)?
檢查數據庫表空間占用空間情況:
SQL> select tablespace_namesum(bytes)/// GB
from dba_data_files group by tablespace_name
union all
select tablespace_namesum(bytes)/// GB
from dba_temp_files group by tablespace_name order by GB;
TABLESPACE_NAME GB
USERS
UNDOTBS
SYSTEM
SYSAUX
WAPCM_TS_VISIT_DETAIL
HY_DS_DEFAULT
MINT_TS_DEFAULT
MMS_TS_DATA
MMS_IDX_SJH
MMS_TS_DEFAULT
IVRCN_TS_DATA
TABLESPACE_NAME GB
MMS_TS_DATA
CM_TS_DEFAULT
TEMP
UNDOTBS
rows selected
不幸的發現
UNDO表空間已經擴展至
G
而TEMP表空間也擴展至
G
這
個表空間加起來占用了
G的磁盤空間
導致了空間不足
顯然曾經有大事務占用了大量的UNDO表空間和Temp表空間
Oracle的AUM(Auto Undo Management)從出生以來就經常出現只擴展
不收縮(shrink)的情況(通常我們可以設置足夠的UNDO表空間大小
然後取消其自動擴展屬性)
現在我們可以采用如下步驟回收UNDO空間:
確認文件
SQL> select file_namebytes// from dba_data_files
where tablespace_name like UNDOTBS;
FILE_NAME
BYTES//
+ORADG/danaly/datafile/undotbs
檢查UNDO Segment狀態
SQL> select usnxactsrssize///hwmsize///shrinks
from v$rollstat order by rssize;
USN XACTS RSSIZE/// HWMSIZE/// SHRINKS
rows selected
創建新的UNDO表空間
SQL> create undo tablespace undotbs;
Tablespace created
切換UNDO表空間為新的UNDO表空間
SQL> alter system set undo_tablespace=undotbs scope=both;
System altered
此處使用spfile需要注意
以前曾經記錄過這樣一個案例:Oracle診斷案例
Spfile案例一則
等待原UNDO表空間所有UNDO SEGMENT OFFLINE
SQL> select usnxactsstatusrssize///hwmsize///shrinks
from v$rollstat order by rssize;
USN XACTS STATUS RSSIZE/// HWMSIZE/// SHRINKS
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
USN XACTS STATUS RSSIZE/// HWMSIZE/// SHRINKS
PENDING OFFLINE
rows selected
再看:
:: SQL> /
USN XACTS STATUS RSSIZE/// HWMSIZE/// SHRINKS
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
rows selected
Elapsed: ::
刪除原UNDO表空間
:: SQL> drop tablespace undotbs including contents;
Tablespace dropped
Elapsed: ::
檢查空間情況
由於我使用的ASM管理
可以使用
gR
提供的信工具asmcmd來察看空間占用情況
[oracle@danaly ~]$ export ORACLE_SID=+ASM
[oracle@danaly ~]$ asmcmd
ASMCMD> du
Used_MB Mirror_used_MB
ASMCMD> exit
空間已經釋放
From:http://tw.wingwit.com/Article/program/Oracle/201311/18167.html