暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle UNDOTBS1表空间越来越大,十步解决办法

原创 龙镇君 2022-11-01
9309

UNDOTBS1是一个回滚表空间,它会随着oracle数据库的数据事务运行使用,默认情况下表空间是自动扩展。

但是当它增大到一定程度,占用了过多的磁盘空间时,就会需要进行清理。

本期主题就是【Oracle UNDOTBS1表空间越来越大,解决办法】


步骤一:

查数据库UNDO表空间占用空间情况以及数据文件存放位置;

SQL>select file_name,bytes/1024/1024 from dba_data_files
 where tablespace_name like 'UNDOTBS1';


步骤二:

看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间(特别是生产环境)。

SQL> select s.username, u.name from v$transaction t,v$rollstat r,
v$rollname u,v$session s where s.taddr=t.addr and
 t.xidusn=r.usn and r.usn=u.usn order by s.username;

步骤三:

检查UNDO Segment状态;


SQL> select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks
 from v$rollstat order by rssize;

步骤四:

创建一个新的回滚段表空间:

SQL> create undo tablespace undotbs02 datafile '/原始路径/undotbs02.dbf' size 500M;

Tablespace created.


步骤五:

将回滚段指向新的表空间:

SQL> alter system set undo_tablespace=undotbs02 scope=spfile;

System altered.


步骤六:

等待原UNDO表空间所有UNDO SEGMENT OFFLINE;

SQL> select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks
 from v$rollstat order by rssize;

步骤七:

 再执行看UNDO表空间所有UNDO SEGMENT ONLINE;

SQL> select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks
 from v$rollstat order by rssize;


步骤八:

SQL> drop tablespace undotbs1 including contents and datafiles;

Tablespace dropped.

该步骤只能删除数据库对该空间的管理信息,要想完全删除该表空间文件,需要到相应的目录下手动删除;


步骤九:

确认删除是否成功;

SQL> select name from v$tablespace;


步骤十:

结束


最后修改时间:2022-11-01 14:20:55
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论