11g导入大量包含子分区的数据时表空间不足
问题描述:
ORACLE11g使用impdp数据泵导入时遭遇:
ORA-01691: Lob 段 ISCS.SYS_LOB0000100750C00045$$ 无法通过 128 (在表空间 RT_DATA 中) 扩展
还可能遇到TEMP和UNDO表空间不足:
ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中)
ORA-01652: 无法按 8 扩展段 (在还原表空间 'TEMP 中)
解决方式:
查看RT_DATA表空间下面的段使用情况:
select *
from (select owner,
segment_name,
tablespace_name,
segment_type,
bytes / 1024 / 1024 AS "SIZE(M)"
from dba_segments
order by 5 desc)
where TABLESPACE_NAME = 'RT_DATA'
AND rownum < 20;

LOBSEGMENT的系统命名规则是:
SYS_LOB(10 digit object_id)C(5 digit col#)$$ 表段
SYS_IL(10 digit object_id)C(5 digit col#)$$ 索引
查看段空间使用者:
select * from dba_objects where object_id='0000100750';

最终发现11g导入时,impdp命令在默认表空间RT_DATA中生成的sys_import_table_01表中字段xml_clob为可变字段,且占用大量空间,下面是11条记录的片段。
select object_name,
object_schema,
partition_name,
subpartition_name,
object_tablespace,
xml_clob,
round(dbms_lob.getlength(xml_clob) / 1024 ) as "XML_CLOB SIZE(K)"
from SYS_IMPORT_TABLE_01
where rownum < 12;

相比10g的sys_import_table_01 ,11g增加了子分区的描述,从该表由原来82列变为95列,11g中在该表中对子分区的记录,会导致xml_clob列占用空间巨大,上述结果中子分区每条信息占用导致默认表空间爆满。
而这个原因目前不得而知,网上资料甚少,还请高手指点。不过可以通过手动扩展或自动扩展默认表空间,等完成导入之后,再收缩默认表空间。
方法一(手动扩展):
alter database datafile '/data1/oradata/i1000/rt_data01.dbf' resize 10G;
impdp结束后:
alter database datafile '/data1/oradata/i1000/rt_data01.dbf' resize 2G;
方法二(自动扩展):
alter database datafile '/data1/oradata/i1000/rt_data01.dbf' autoextend on;
impdp结束后:
alter database datafile '/data1/oradata/i1000/rt_data01.dbf' resize 2G autoextend off ;
如果遭遇temp和undo表空间不足,亦如此扩展。
11g导入大量包含子分区的数据时表空间不足的更多相关文章
- Oracle 数据备份、恢复以及导入时表空间不存在的解决方案
一.数据备份(导出) 1.exp命令导出dmp文件(exp -help查看帮助信息) 命令:exp username/userpasswd@192.168.99.199/orcl file=C:\jd ...
- Oracle添加数据文件创建表空间,创建用户代码
1,添加数据文件创建表空间 CREATE TABLESPACE "TEST1" DATAFILE 'D:\ORACLE\11G\ORADATA\ORCL\TEST1.DBF' SI ...
- 关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1
关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1 ORACLE公司来培训BIEE,带了一个DEMO的DMP文件,其导出用户DBO具有DBA权限,缺省表 ...
- exp和imp导入导出时表空间问题【未完】
准备工作 第一步: 创建教师和学生用户 教师用户/密码 TEACHER/t123456 学生用户/密码 STUDENT/s123456 参考链接 http://www.cnblogs.com/what ...
- 【Oracle】删除(释放)数据文件/表空间流程
oracle删除(释放)数据文件/表空间流程 生产环境:数据库里空间不足,niptest 表空间251G,只使用了17G 再alter database datafile '...../niptest ...
- 1118ALTER TABLE tabname DISCARD TABLESPACE快速导入数据利用表空间
-- 快速导入数据如果你有.ibd文件的一个干净的备份,你可以按如下操作从被起源的地方恢复它到MySQL安装中:相当快速 1. 发出这个ALTER TABLE语句: 2. ALTER TABLE tb ...
- 如何删除offline数据文件/表空间上的分区
接上一篇"Oracle 10g RAC全库flashback " http://www.cnblogs.com/cqubityj/p/3265552.html 在打开数据库之前把2 ...
- 使用phpexcel导入excel文件种的时期数据时数据导入格式
在使用phpexcel导入类似于 YYYY-MM-DD HH:ii:ss格式的数据时,导入成功以后会发现导入的数据其实是类似于42085.746516204格式的数据( excel在存储时间类型的数据 ...
- Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间
Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一: 删除user drop ...
随机推荐
- PHP学习笔记三十三【自定义错误处理器】
<?php //自定义错误处理器 //$errorno 错误号 //$errmes错误信息 //这两个参数是必须的 function my_error($errorno,$errmes) { e ...
- iOS开发-单例模式的解读
现在网上的有很多人写单例模式,一个很基本的东西但是版本也有很多,新人看了难免有些眼花缭乱的感觉.自己最新比较闲,也过来写一些自己的心得. 在往下看之前,我们要明白一点,那就是在什么情况下我们才要用到单 ...
- SQL Server一些常见却不太记得住的命令
一.数据库大小查询 1. exec sp_spaceused '表名' --(SQL统计数据,大量事务操作后可能不准)2. exec sp_spaceused '表名', true ...
- YUI Array 之each| forEach(遍历)
1. yui-each原码: 遍历YArray.each = YArray.forEach = Lang._isNative(Native.forEach) ? function (array, fn ...
- jquery.ajax和Ajax 获取数据
前几天接触了jquery 看到里面ajax的部分,自己也不是很懂,然后有重复看了即便,然后写了一个小功能,分享下...我刚学的.有错误的请指教. 验证用户名是否存在 在checkname_jqajax ...
- symfony2路径问题
1.相对路径 例:在上传文件里面,路径设置为 $path = "upload/" 此时路径指向的是web/upload/; 2.绝对路径 例:$path = "/va ...
- Python之路第十三天,高级(7)-详述数据库一对多,多对多表关系的设计以及如何查询
一对多表设计和查询方法 #!/usr/bin/env python3 # Author: Zhangxunan from sqlalchemy import create_engine from sq ...
- django最简单表单入门
两个html页面,存放于某个应用下的templates文件夹下. index.html 提交 点击“提交”按钮后,会调入第二个页面hello.html显示文本框的内容 原理是通过form的action ...
- php word转HTML
因为安装的的xampp不知道如何查看我的Apache版本是多少,就先把com.allow_dcom=true打开了,但是仍旧报错说找不到com类,然后就把下面的extension扩展添加到php.in ...
- Roads in the North(POJ 2631 DFS)
Description Building and maintaining roads among communities in the far North is an expensive busine ...