`
lizhiyu211
  • 浏览: 230461 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

释放undo表空间

阅读更多

在日常的数据库维护和数据库编程中经常会遇到犹豫对大数据量做DML操作后是得ORACLE的undo表空间扩展到十几个G或者几十个G 但是这些表空间的所占用磁盘的物理空间又不会被oracle所释放,如果你用的是PC机很可能会遇到磁盘空间不足的问题,经过个人整理经过如下操作可以重构undo表空间,同样temp表空间也可能在你查询大数据或则创建索引的时候无限扩大导致磁盘空间不足,同样可以用如下方式解决此问题:

--查看各表空间名称
select name from v$tablespace
--查看某个表空间信息
select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1';
--查看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间(特别是生产环境)。
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状态
select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;
--创建新的UNDO表空间,并设置自动扩展参数;
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配置文件;
alter system set undo_tablespace=undotbs2 scope=both;
--等待原UNDO表空间所有UNDO SEGMENT OFFLINE;
select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;
--再执行看UNDO表空间所有UNDO SEGMENT ONLINE;
select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;
-- 删除原有的UNDO表空间;
drop tablespace undotbs1 including contents;
--确认删除是否成功;
select name from v$tablespace;

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

 

 

 

 

 

 

2
0
分享到:
评论

相关推荐

    脚本-Oracle释放过度使用的Undo表空间

    ### 关于Oracle释放过度使用的Undo表空间的知识点 在Oracle数据库管理中,Undo表空间扮演着极其重要的角色。它主要用于存储事务处理过程中产生的Undo记录,这些记录对于事务回滚、一致性读取以及恢复操作至关重要。...

    Oracle的Temp表空间和UNDO表空间的处理

    类似于Temp表空间,UNDO表空间也可能随着事务数量的增加而变得非常大,且Oracle同样不会自动释放已分配但未使用的空间。因此,也需要定期对UNDO表空间进行维护。 **2.1 处理流程** ##### 步骤一:创建新的UNDO表...

    管理undo表空间全面分析详解

    7. **释放undo资源**:事务完成后,使用的undo块可以被覆盖或重用。 #### 三、undo的作用 **1. 提供一致性读** 一致性读确保了在并发环境下,用户看到的是一个一致的数据视图。当多个事务同时进行时,一致性读使得...

    如何Shrink Undo表空间,释放过度占用的空间

    "如何Shrink Undo表空间,释放过度占用的空间" 本篇文章主要讲解如何Shrink Undo表空间,释放过度占用的空间,以解决Oracle数据库中的表空间扩展问题。 1. 表空间扩展问题 在Oracle数据库中,表空间的扩展是非常...

    oracle定时删除表空间的数据并释放表空间

    3. **purge操作**:Purge操作是删除已删除行的一种方法,通常用于临时表空间和Undo表空间。执行`PURGE`语句可以立即释放被删除的对象或行,而不是等待下次DML操作或数据库维护任务。 4. **DBMS_SCHEDULE包**:...

    Oracle 9i数据库中自动Undo表空间管理.pdf

    自动Undo管理还包括了清理过期的Undo数据,这些数据在事务完成后不再需要,系统会自动释放这部分空间,以供新的事务使用。 总的来说,Oracle 9i的自动Undo表空间管理是一个革命性的改变,它提升了数据库的易用性、...

    释放TEMP表空间占用硬盘空间

    本文将深入解析这一过程,帮助读者理解并掌握释放TEMP表空间所占用硬盘空间的具体步骤。 ### 一、Oracle临时表空间简介 Oracle数据库中的临时表空间主要用于存储临时对象,如排序操作、汇总统计、临时表等。这些...

    Mysql在线回收undo表空间实战记录

    只有当Undo日志不再需要(比如被其他事务覆盖或者超过了InnoDB的purge线程清理的时间窗口),空间才会被释放。 - 在线回收Undo表空间通常涉及到监控和调整InnoDB的Purge操作,以及优化`innodb_purge_threads`参数,...

    12c 新特性-Temporary Undo

    2. **减少 Undo 表空间的压力**:由于临时表的Undo信息被独立管理,不再与永久表共享Undo表空间,因此可以减轻Undo表空间的负载。 3. **提高事务处理效率**:避免了将临时表的Undo信息写入Redo日志所带来的I/O开销,...

    解决临时表(undo)空间过大问题

    - 定期对临时表空间进行完整备份,并在非高峰时段进行清理,释放空间。 通过以上方法,可以有效地管理和解决Oracle数据库中临时表空间过大的问题。记得在调整参数或执行脚本时,务必在测试环境先进行验证,确保...

    oracle 表空间

    7. 清理源表空间:在确认数据正确无误后,可以删除atf_ygj表空间中的对象,释放空间。 在整个过程中,还需要注意以下几点: - 确保有足够的权限执行这些操作,通常需要DBA权限。 - 在进行数据迁移时,尽量在低峰...

    OCA-042题库

    - 设置UNDO表空间的公式大致为:Undo Size = Undo Retention * UPS,其中UPS是Undo Blocks per Second。可以通过查询`v$undostat`视图来获取UPS值。 2. **Redo Log Files** - Redo日志文件与UNDO表空间不同,它们...

    Oracle数据库自带表空间的详细说明

    临时表空间的使用特点是,操作完成后会自动清理,但实际磁盘空间并不释放,这可能导致临时表空间大小逐渐增加。 4. **UNDO表空间** UNDO表空间是Oracle特有的,它保存了事务中DML操作的撤销(undo)信息,即数据...

    ORACLE数据库空间整理心得

    我们将从Shrink Undo表空间开始,介绍如何释放过度占用的空间,并解决UNDO表空间中的问题。 1. Shrink Undo表空间 在ORACLE数据库中,Undo表空间是一个非常重要的组件,它用于存储事务的Undo信息。当Undo表空间变...

    专题资料(2021-2022年)03管理表空间和数据文件.ppt

    LMT使用位图来记录自由的范围,减少了数据字典的竞争,分配和释放空间时不产生回滚信息,并且不需要合并空闲空间。而DMT则依赖于数据字典来管理范围,这种方式需要合并连续的空闲区,虽然已被逐渐淘汰。 对于特定...

    Mysql InnoDB删除数据后释放磁盘空间的方法

    MySQL的InnoDB存储引擎在...总之,释放InnoDB占用的磁盘空间通常需要对数据库进行一定的操作,包括优化表、重建表空间或调整参数。在进行这些操作前,一定要确保有完整可靠的数据库备份,以防止任何可能的数据丢失。

    Oracle的UNDOTBS01.DBF文件太大的解决办法

    完成以上步骤后,所有的撤销数据将会被写入到新的撤销表空间中,而原有的UNDOTBS01.DBF文件将会被清空并释放空间。 #### 查看表空间情况 为了验证操作是否成功以及了解其他表空间的状态,可以使用以下命令来查询...

    ocp原厂培训笔记(第三天)

    为了处理大表操作和避免Undo表空间不足,建议指定大的Undo表空间和适当的Undo保留时间(UNDO_RETENTION),至少应等于用户的最长查询时间。 当Undo表空间不足以保存回滚信息时,系统会抛出`ORA-01650`错误,这时...

Global site tag (gtag.js) - Google Analytics