Oracle undo释放表空间中的操作步骤

数据库 Oracle
本文将教会你在Oracle undo释放表空间中的实际操作步骤,以及在实际操作中如何检查undo Segment状态,以下就是文章的主要内容。

数据库的维护与数据库的编程实际应用中经常会遇到不解之处,对于大数据量做的DML操作后,我们是的把Oracle undo的表空间扩展到十几个G或是几十个G 但是这些表空间的所占用磁盘的物理空间又不会被Oracle 所释放,如果你用的是PC机很可能会遇到磁盘空间不足的问题。

经过个人整理经过如下操作可以重构Oracle undo表空间,同样temp表空间也可能在你查询大数据或则创建索引的时候无限扩大导致磁盘空间不足,同样可以用如下方式解决此问题:

查看各表空间名称

 

  1. select name from v$tablespace 

查看某个表空间信息

 

  1. select file_name,bytes/1024/1024 from 
    dba_data_files where tablespace_name like 'undoTBS1'; 

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

 

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

 

检查undo Segment状态

 

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

创建新的undo表空间,并设置自动扩展参数;

 

  1. create undo tablespace undotbs2 datafile 'D:\Oracle 
    \PRODUCT\10.1.0\ORADATA\ORCL\
    undoTBS02.DBF' size 10m 
    reuse autoextend on next 100m maxsize unlimited; 

动态更改spfile配置文件;

 

  1. alter system set undo_tablespace=undotbs2 scope=both

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

 

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

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

 

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

删除原有的UNDO表空间;

 

  1. drop tablespace undotbs1 including contents; 

确认删除是否成功;

 

  1. select name from v$tablespace; 

***需要在重启数据库或者重启计算机后到存储数据文件的路径下删除数据文件(为什么要手动删除呢:以上步骤只是删除了Oracle 中Oracle undo表空间的逻辑关系,即删除了数据文件在数据字典中的关联,不会自动删除项关联的数据文件)。

【编辑推荐】

  1. Oracle表列的修改的流程
  2. Oracle数据库中表的2种连接方式
  3. Oracle体系结构中的基本概念,数据库的介绍
  4. Oracle体系结构实例的相关内容介绍
  5. Oracle数据库维护中前瞻性的相关内容介绍
责任编辑:佚名 来源: 博客园
相关推荐

2010-05-10 18:05:15

Oracle释放und

2009-10-26 16:13:29

Oracle使用UND

2011-08-24 14:42:14

Oracle 10gUNDO数据的作用UNDO表空间

2009-10-22 16:25:53

Oracle UNDO

2022-01-18 08:29:58

Oracle数据库后端开发

2010-05-06 09:42:28

Oracle表空间

2009-10-26 17:07:17

VB.NET UNDO

2010-04-06 09:58:13

Oracle dele

2011-08-24 14:21:44

Oracle 10gUNDO表空间

2010-04-26 13:38:34

Oracle dele

2010-04-02 18:01:39

Oracle清理

2011-08-29 13:40:12

Oracle 10g创建表空间

2011-05-20 15:50:06

oracle

2010-11-16 10:32:01

Oracle创建表空间

2010-11-16 11:32:54

ORACLE增加表空间

2010-05-10 18:46:14

Oracle更改表空间

2023-04-13 08:09:35

操作系统虚拟地址内存

2009-10-27 17:22:27

2010-04-08 12:31:03

Oracle死锁进程

2010-11-16 11:17:41

Oracle表空间大小
点赞
收藏

51CTO技术栈公众号