回收undo表空间的实现方法

来源:互联网 发布:高级安全windows防火墙 编辑:程序博客网 时间:2024/06/05 20:07

UNDO表空间越来越大,产生问题的原因主要以下两点:1. 有较大的事务量曾经让Oracle Undo自动扩展2. 有较大事务长时间没有提交曾经


UNDO表空间越来越大,产生问题的原因主要以下两点:

1. 有较大的事务量曾经让Oracle Undo自动扩展

2. 有较大事务长时间没有提交曾经让Oracle Undo自动扩展

UNDO表空间变大后,把空间回收比较麻烦,Shrink命令经常不成功,但是可以通过切换UNDO表空间的方法,回收磁盘空间

解决步骤:

1. 启动SQLPLUS,并用sys登陆到数据库2. 查找数据库的UNDO表空间名show parameter undoNAME TYPE VALUE

-

undo_management string AUTO

undo_retention integer 900

undo_tablespace string UNDOTBS23. 检查数据库UNDO表空间占用空间情况以及数据文件存放位置select tablespace_name, sum(bytes/1024/1024) “"SIZE(M)“"

from dba_data_files

where tablespace_name = “‘UNDOTBS2“‘group by tablespace_name;

4. 查看回滚段的使用情况,哪个用户正在使用回滚段的资源,一般停掉业务系统,重新启动数据库后操作比较好,,。select s.username, u.namefrom v$transaction t,v$rollstat r, v$rollname u,v$session swhere s.taddr=t.addrand t.xidusn=r.usnand r.usn=u.usnorder by s.username;5. 创建新的UNDO表空间,并设置自动扩展;create undo tablespace undotbs1datafile “‘/oradata/oradata/ddptest/UNDOTBS1.dbf“‘ size 1000m autoextend on next 800m maxsize unlimited;6. 更改spfile配置;alter system set undo_tablespace=undotbs1 scope=both;7. 重新启动数据库, 删除原有的UNDO表空间;drop tablespace undotbs2 including contents;8. 册除原UNDO表空间的数据文件,回收磁盘空间#rm $ORACLE_BASE/oradata/$ORACLE_SID/undotbs02.dbf


Sql代码  收藏代码
  1.    
  2.   
  3. /*系统UNDO表空间的重建*/  
  4. --1. 创建新的UNDO表空间  
  5. CREATE UNDO TABLESPACE "UNDOTEMP"  
  6. DATAFILE '/opt/oracle/product/9.2.0.4/dbs/undo01.ora' SIZE 5 m  
  7. /  
  8. --2. 在OEM控制台修改系统默认的UNDO表空间名, 由UNDOTBS改为UNDOTEMP, 或通过下面的命令修改默认UNDO表空间的标识  
  9. ALTER SYSTEM SET undo_tablespace = undotemp  
  10. /  
  11. --3. 删除原来的系统默认UNDO表空间, 并重建UNDOTBS  
  12. DROP TABLESPACE "UNDO02" INCLUDING CONTENTS AND DATAFILES  
  13. /  
  14. CREATE UNDO TABLESPACE "UNDOTBS"  
  15. DATAFILE '/opt/oracle/product/9.2.0.4/dbs/undo01.dbf' SIZE 200 m  
  16. AUTOEXTEND ON NEXT   4096 k                                   --MAXSIZE   500M  
  17. /  
  18. --4. 在OEM控制台修改系统默认的UNDO表空间名, 由 UNDOTEMP 改为 UNDOTBS, 改回原有的UNDO表空间标识  
  19. ALTER SYSTEM SET undo_tablespace = undotbs  
  20. /  
  21. --5. 删除临时创建的UNDO表空间UNDOTEMP  
  22. DROP TABLESPACE "UNDOTEMP" INCLUDING CONTENTS AND DATAFILES 



原创粉丝点击