ORA-30036:无法按8扩展段(在还原表空间xxx中)
来源:互联网 发布:火源计划激活码淘宝 编辑:程序博客网 时间:2024/05/17 06:14
前言:工作中使用Oracle经常会遇见各种问题,在这里统一归档问题原因及处理方法,供以后查阅。
1.什么是还原表空间?
还原表空间即Undo表空间,是Oracle特有的概念,Undo表空间会自动分配Undo段,用来保存事务中DML( Insert、Update或Delete)语句的Undo数据。在Oracle9i前,管理Undo数据只能使用Rollback Segment。从Oracle9i开始,管理Undo数据不仅可以使用回滚段,还可以使用Undo表空间。而由于管理里规划回滚段太过复杂,Oracle10g已经弃用回滚段,仅使用Undo表空间来管理Undo数据。
2.什么是Undo数据?
Undo数据也称回滚数据,当执行DML语句时,事务操作过程中的数据被称为Undo数据,主要有两个作用:
- 确保事务一致性:如果事务发生错误或者用户想要取消数据库操作,则可以通过Rollback回到修改前的值。
- 提供一致性读:如表T有100条记录,用户A在表T执行了语句删除掉10条记录,尚未提交,此时用户B执行查询语句,将返回100条记录而不是90条。
3.如何解决?
言归正传,开始解决问题,首先我们查看当前实例使用的Undo表空间:
SQL> show parameter undo;NAME TYPE VALUE------------------------------------ ----------- ------------------------------undo_management string AUTOundo_retention integer 900undo_tablespace string UNDOTBS1
可以看到,使用的Undo表空间为“UNDOTBS1”,与报错内容中的名字一致。接下来查看数据库可用的Undo表空间:
SQL> SELECT tablespace_name FROM dba_tablespaces WHERE contents='UNDO';TABLESPACE_NAME------------------------------UNDOTBS1UNDOTBS2
结果显示有两个Undo表空间可用,分别为UNDOTBS1、UNDOTBS2。我们来看看这两个表空间的使用情况:
------查看表空间使用情况select b.tablespace_name as "表空间", b.file_name as "物理文件名", b.bytes / 1024 / 1024 as "当前大小(M)", (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 as "已使用(M)", substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) as "使用率(%)", case b.autoextensible when 'YES' then '是' else '否' end as "是否自增", b.maxbytes / 1024 / 1024 as "自增最大容量(M)" from dba_free_space a, dba_data_files b where a.file_id = b.file_id and a.tablespace_name in ('UNDOTBS1', 'UNDOTBS2') group by b.tablespace_name, b.file_name, b.bytes, b.autoextensible, b.maxbytes order by b.tablespace_name;
可以看到,UNDOTBS1有两个数据文件来存储Undo数据,使用率都到达了90%以上,所剩空间已不足。解决的办法有三个:
1.为表空间增加数据文件
alter tablespace UNDOTBS1 add datafile '+DATADG/esbmssdb/datafile/undotbs1.4.dbf' --数据文件名 size 100M --初始大小 autoextend on next 1M maxsize 8192M; --自增,每次增加1M,最大为8192M
2.设置文件自动扩展
alter database datafile '+DATADG/esbmssdb/datafile/undotbs1.3.dbf' autoextend on next 1M maxsize 8192M;
3.切换Undo表空间
alter system set undo_tablespace = UNDOTBS2;
注:如果数据库中只有一个可用的Undo表空间,则使用前两种方法。
阅读全文
0 0
- ORA-30036:无法按8扩展段(在还原表空间xxx中)
- UNDO 空间爆满 ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中)
- ORA-01691:Lob 段 无法通过8192(在表空间XXX中)扩展 解决方案
- 无法按8扩展段(在还原表空间‘XXXX’中)
- DELETE操作出现:ORA-30036: 无法按 1024 扩展段 (在撤消表空间 'UNDOTBS_1' 中)
- 【空间管理】ORA-01652: 无法通过 128 (在表空间 TEST01 中) 扩展 temp 段
- ORA-01652: 无法通过 (在表空间 中) 扩展 temp 段
- ORA-01691:Lob 段 无法通过8192(在表空间USERS中)扩展 解决方案
- ORA-01652: 无法通过128(在表空间NEW_TEMP中)扩展 temp 段
- ORA-01691:Lob 段 无法通过8192(在表空间TS_SI中)扩展 解决方案
- ORA-01652无法通过256(在表空间temp中)扩展temp段
- ORA-01652无法通过128(在表空间temp中)扩展temp段
- ORA-01691: Lob 段 INSPECT.SYS_LOB0000052587C00011$$ 无法通过 8192 (在表空间 USERS 中) 扩展
- ora-01652无法通过128(在表空间temp中)扩展temp段
- ora-01652无法通过128(在表空间temp中)扩展temp段
- ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段
- ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段
- ora-01652:无法通过128(在表空间space中)扩展temp段
- STL vector 源码解析
- 第一个Struts2项目(上)
- Effective Modern C++: Item 7 -> 创建对象时分清()和{}
- 20170619--20170623
- 基于TMS320DM6437平台嵌入式智能工业相机项目总结
- ORA-30036:无法按8扩展段(在还原表空间xxx中)
- oracle 用户权限之执行存储过程权限不足
- java:11-构造函数基本介绍
- linux与win下文件打开汉子乱码问题
- JavaScript 函数参数传递到底是值传递还是引用传递
- Maven 配置 Storm 第三方依赖包分离
- JAVA学习日记----------排序篇03
- 清除浮动
- [Leetcode] 214. Shortest Palindrome 解题报告