目录
1、查询回滚段信息:状态为ONLINE,当前UNDO表空间为undotbs1
2、创建一个新的回滚段: 
3、切换回滚段:
4、重启数据库后,即可删除原来的回滚段,这样就能释放磁盘空间了。
5、对回滚段的大小,可以根据情况进行调整,也可以改为自动扩展。 
首页 数据库 mysql教程 oracle回滚段和回滚表空间

oracle回滚段和回滚表空间

Jun 07, 2016 pm 03:19 PM
oracle 回滚 空间

昨晚因为做了一个大批量的删除,用的 delete 。大约用了 6 个小时,导致了回滚段自动扩展到将近 30 个 G 。(以后记着,做大批量删除的时候,一定要用脚本实现,分批量提交事务。那样就不会占用太多的 UNDO 表空间了!) 从网上搜了一个普遍的方法,更换新的

昨晚因为做了一个大批量的删除,用的delete。大约用了6个小时,导致了回滚段自动扩展到将近30G。(以后记着,做大批量删除的时候,一定要用脚本实现,分批量提交事务。那样就不会占用太多的UNDO表空间了!) 

从网上搜了一个普遍的方法,更换新的UNDO表空间,然后删除原来的UNDO表空间,释放出磁盘容量。

具体方法如下:(参考网上的资料) 

1、查询回滚段信息:状态为ONLINE,当前UNDO表空间为undotbs1

SQL>select segment_name, owner, tablespace_name, status from dba_rollback_segs; 

SEGMENT_NAME             OWNER TABLESPACE_NAME           STATUS 

------------------------------ ------ ------------------------------ ---------------- 

SYSTEM                 SYS   SYSTEM                   ONLINE

_SYSSMU1$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU2$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU3$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU4$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU5$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU6$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU7$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU8$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU9$               PUBLIC UNDOTBS1               ONLINE

_SYSSMU10$               PUBLIC UNDOTBS1              ONLINE 

11 rows selected. 

2、创建一个新的回滚段: 

SQL>CREATE UNDO  TABLESPACE  UNDOTBS2  DATAFILE 'd:/oracle/oradata/oradev/UNDOTBS2.dbf'  SIZE 50M

注:UNDOTBS2为新建回滚段名称,可自拟。'd:/oracle/oradata/oradev/UNDOTBS2.dbf' 是表空间数据文件地址,可根据情况设定。 

3、切换回滚段:

SQL> alter system set undo_tablespace=undotbs2 scope=both;

这样系统默认UNDO表空间就是新建的undotbs2了。

4、重启数据库后,即可删除原来的回滚段,这样就能释放磁盘空间了。

SQL>drop rollback segment undotbs1; 

SQL>drop tablespace undotbs1 including contents and datafiles;

5、对回滚段的大小,可以根据情况进行调整,也可以改为自动扩展。 

下面是网友提供的一个小技巧:

调小了回滚段后,在imp导入数据时,提示回滚段无法扩展的错误。

解决方法:在imp时,加入参数 commit=y,直接提交,避免占用大回滚段。

 

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

oracle中计算两个日期之间天数的函数 oracle中计算两个日期之间天数的函数 May 08, 2024 pm 07:45 PM

oracle中计算两个日期之间天数的函数

oracle数据库日志会保存多久 oracle数据库日志会保存多久 May 10, 2024 am 03:27 AM

oracle数据库日志会保存多久

oracle数据库启动步骤顺序为 oracle数据库启动步骤顺序为 May 10, 2024 am 01:48 AM

oracle数据库启动步骤顺序为

oracle中interval的用法 oracle中interval的用法 May 08, 2024 pm 07:54 PM

oracle中interval的用法

oracle数据库服务器硬件配置要求 oracle数据库服务器硬件配置要求 May 10, 2024 am 04:00 AM

oracle数据库服务器硬件配置要求

oracle中某个字符出现的次数怎么看出来 oracle中某个字符出现的次数怎么看出来 May 09, 2024 pm 09:33 PM

oracle中某个字符出现的次数怎么看出来

oracle需要多少内存 oracle需要多少内存 May 10, 2024 am 04:12 AM

oracle需要多少内存

oracle中如何判断包含两个字符串 oracle中如何判断包含两个字符串 May 08, 2024 pm 07:00 PM

oracle中如何判断包含两个字符串

See all articles