oracle 关于“ORA-30036”处理方法

发布时间:2020-07-28 23:42:36 作者:欲黄大帝
来源:网络 阅读:1793

ORA-30036:unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
出现问题原因:
大批量导入某表时imp报错如下:
Export file created by EXPORT:V11.02.00 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
import server uses WE8MSWIN1252 character set (possible charset conversion)
.....
IMP-00058: ORACLE error 30036 encountered
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
IMP-00028: partial import of previous table rolled back: 814416 rows rolled back
IMP-00057: Warning: Dump file may not contain data of all partitions of this table
Import terminated successfully with warnings.
字面意思翻译就是:无法按8扩展字段
首先了解了一下UNDO的作用:
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数据,主要有两个作用:
1、确保事务一致性:如果事务发生错误或者用户想要取消数据库操作,则可以通过Rollback回到修改前的值。
2、提供一致性读:如表T有100条记录,用户A在表T执行了语句删除掉10条记录,尚未提交,此时用户B执行查询语句,将返回100条记录而不是90条。
再来谈一下解决办法:
1、在原有数据文件中增加扩展容量:
alter database datafile '/opt/oracle/oradata/orcl/undotbs01.dbf' resize 30G;
(注意:如果原有数据文件大小是30G的话,这个方法就不能用了,因为oralce最大文件只让配置成30G一个数据文件)
2.新增数据文件(通用):
alter tablespace UNDOTBS1 add datafile '/opt/oracle/oradata/orcl/undotbs01_01.dbf' size 30G;
--autoextend on next 1M maxsize 5000M; //可选项;目的是设置文件的自动扩展属性,从最小1M到最大5000M
3.如果有需求要创建有多个undotbs表空间,可以定时检查undo表空间,并进行切换:
alter system set undo_tablespace = undotbs02;
(注意undotbs02需要提前新建,并设置相应的数据文件大小即可)

推荐阅读:
  1. oracle 12c修改账号密码(带特殊字符)
  2. oracle 11g rac ORA-01555快照过旧报错的处理方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle 关于 ora

上一篇:爬取豆瓣的tp250电影名单

下一篇:电脑文件被误删如何找回呢?简单恢复

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》