是谁 偷偷的 用了那么多空间呢(本来有几十个G的Free磁盘空间的)?
检查数据库表空间占用空间情况:
SQL>select tablespace_name sum(bytes)/ / / GB
from dba_data_files group by tablespace_name
union all
select tablespace_name sum(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_name bytes/ / from dba_data_files
where tablespace_name like UNDOTBS
FILE_NAME
BYTES/ /
+ORADG/d *** y/datafile/undotbs
检查UNDO Segment状态
SQL>select usn xacts rssize/ / / 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 usn xacts status rssize/ / / 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 提供的信工具a *** cmd来察看空间占用情况
[oracle@d *** y ~]$ export ORACLE_SID=+ASM
[oracle@d *** y ~]$ a *** cmd
ASMCMD>du
Used_MB Mirror_used_MB
ASMCMD>exit
lishixinzhi/Article/program/Oracle/201311/18992比如说你的事务未提交进程意外终止(
掉线
啊,点击
叉叉
退出连接啊)未提交的数据全部
回滚
。或者在你的事务提交过程中,数据违反约束条件,事务内部出现错误被终止,则该事务中所有 *** 作也被自动回滚。还有其他一些情况,这两个是主要的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)