ORA-39095: 转储文件空间已耗尽: 无法分配 4096 字节_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3244 | 回复: 0   主题: ORA-39095: 转储文件空间已耗尽: 无法分配 4096 字节        下一篇 
曹先丰
注册用户
等级:中士
经验:208
发帖:72
精华:0
注册:2012-1-9
状态:离线
发送短消息息给曹先丰 加好友    发送短消息息给曹先丰 发消息
发表于: IP:您无权察看 2015-5-21 10:40:29 | [全部帖] [楼主帖] 楼主

在测试exp和expdp的速度时,遇到下面的这个错误:

ORA-39095: 转储文件空间已耗尽: 无法分配 4096 字节
作业 "SYS"."SYS_EXPORT_TABLE_01" 因致命错误于 13:50:54 停止

这个实验是用expdp导出到多个导出文件中,通过并行提高导出速度

C:/Documents and Settings/Administrator>expdp 'sys/aibo@test as sysdba' director
y=dpdump dumpfile=expdp1.dp,expdp2.dp tables=(skate.testbind,skate.testbind_tmp,
skate.test_idx) filesize=150M & time


Export: Release 10.2.0.4.0 - Production on 星期二, 31 8月, 2010 13:49:35

Copyright (c) 2003, 2007, Oracle.  All rights reserved.


连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options


启动 "SYS"."SYS_EXPORT_TABLE_01":  'sys/********@test AS SYSDBA' directory=dpdum

p dumpfile=expdp1.dp,expdp2.dp tables=(skate.testbind,skate.testbind_tmp,skate.t
est_idx) filesize=150M


正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 926 MB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
ORA-39095: 转储文件空间已耗尽: 无法分配 4096 字节
作业 "SYS"."SYS_EXPORT_TABLE_01" 因致命错误于 13:50:54 停止

当前时间: 13:51:59.51

分析产生错误的原因:通过错误的提示,可以知道因为我们指定了这个作业的filesize(即转储文件的大小),一个转储文件为150M,指定了两个转储文件共300m,而实际转储文件评估是926m,使转储文件太小,无法存储导出的文件,所以会报错。

其实指定filesize的大小是管理磁盘资源的一种机制。

已经知道错误的原因了,那就好解决了,可以重新指定filesize,重新执行这个作业;也可以为这个作业添加转储文件,继续这个作业

一般在作业的开始,可以用job_name指定作业名字,方便交互管理,如果没有指定也可以通过视图dba_datapump_jobs查询得到

在开一个sql窗口

C:/Documents and Settings/Administrator>sqlplus "sys/aibo@test as sysdba"


SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 8月 31 15:21:42 2010

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
SQL> select job_name,state from dba_datapump_jobs;
JOB_NAME                       STATE
------------------------------ ------------------------------
SYS_EXPORT_TABLE_01            NOT RUNNING
SQL>


用attach匹配已经存在的作业“SYS_EXPORT_TABLE_01”

C:/Documents and Settings/Administrator>expdp 'sys/aibo@test as sysdba' attach=S
YS_EXPORT_TABLE_01


Export: Release 10.2.0.4.0 - Production on 星期二, 31 8月, 2010 14:01:43

Copyright (c) 2003, 2007, Oracle.  All rights reserved.


连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options


作业: SYS_EXPORT_TABLE_01
  所有者: SYS
  操作: EXPORT
  创建者权限: TRUE

 GUID: B2B05084B70E4A2EB136F84C2249001D


  起始时间: 星期二, 31 8月, 2010 14:01:44
  模式: TABLE
  实例: test
  最大并行度: 1
  EXPORT 个作业参数:
  参数名      参数值:

 CLIENT_COMMAND        'sys/********@test AS SYSDBA' directory=dpdump dumpfi
le=expdp1.dp,expdp2.dp tables=(skate.testbind,skate.testbind_tmp,skate.test_idx)
filesize=150M


  状态: IDLING
  处理的字节: 0
  当前并行度: 1
  作业错误计数: 0
  转储文件: d:/backup/oracle/expdp1.dp
    大小: 157,286,400
    写入的字节: 20,480
  转储文件: d:/backup/oracle/expdp2.dp
    大小: 157,286,400
    写入的字节: 4,096

Worker 1 状态:
  状态: UNDEFINED
  对象方案: SKATE
  对象名: TEST_IDX
  对象类型: TABLE_EXPORT/TABLE/TABLE_DATA
  完成的对象数: 1
  总的对象数: 3
  完成的行数: 1,468,189
  完成的字节: 314,548,224
  完成的百分比: 38
  Worker 并行度: 1

现在已经进入交互模式,用add_file为作业添加转储文件(这个转储文件是没有指定filesize的,模式是无穷大的)

Export> add_file=expdp3.dp
Export> add_file=expdp4.dp
Export> add_file=expdp5.dp
Export> add_file=expdp6.dp,expdp7.dp
Export> add_file=expdp8.dp,expdp9.dp


查看添加的转储文件是否存在作业中

Export> status


作业: SYS_EXPORT_TABLE_01
  操作: EXPORT
  模式: TABLE
  状态: IDLING
  处理的字节: 0
  当前并行度: 1
  作业错误计数: 0
  转储文件: d:/backup/oracle/expdp1.dp
    大小: 157,286,400
    写入的字节: 20,480
  转储文件: d:/backup/oracle/expdp2.dp
    大小: 157,286,400
    写入的字节: 4,096
  转储文件: D:/BACKUP/ORACLE/EXPDP3.DP
    写入的字节: 4,096
  转储文件: D:/BACKUP/ORACLE/EXPDP4.DP
    写入的字节: 4,096
  转储文件: D:/BACKUP/ORACLE/EXPDP5.DP
    写入的字节: 4,096
  转储文件: D:/BACKUP/ORACLE/EXPDP6.DP
    写入的字节: 4,096
  转储文件: D:/BACKUP/ORACLE/EXPDP7.DP
    写入的字节: 4,096
  转储文件: D:/BACKUP/ORACLE/EXPDP8.DP
    写入的字节: 4,096
  转储文件: D:/BACKUP/ORACLE/EXPDP9.DP
    写入的字节: 4,096

Worker 1 状态:
  状态: UNDEFINED
  对象方案: SKATE
  对象名: TEST_IDX
  对象类型: TABLE_EXPORT/TABLE/TABLE_DATA
  完成的对象数: 1
  总的对象数: 3
  完成的行数: 1,468,189
  完成的字节: 314,548,224
  完成的百分比: 38
  Worker 并行度: 1

我们发出 CONTINUE_CLIENT 命令,恢复作业的运行,也可以使用 START_JOB 命令。CONTINUE_CLIENT 命令
将模式从交互式命令模式更改为记录模式,然后执行 START_JOB。

Export> continue_client


作业 SYS_EXPORT_TABLE_01 已在 星期二, 31 8月, 2010 14:01  重新打开
重新启动 "SYS"."SYS_EXPORT_TABLE_01":  'sys/********@test AS SYSDBA' directory=d

pdump dumpfile=expdp1.dp,expdp2.dp tables=(skate.testbind,skate.testbind_tmp,ska
te.test_idx) filesize=150M


. . 导出了 "SKATE"."TEST_IDX"                          668.8 MB 6529200 行
. . 导出了 "SKATE"."TESTBIND"                          89.51 MB  912936 行
. . 导出了 "SKATE"."TESTBIND_TMP"                      872.9 KB  100000 行
已成功加载/卸载了主表 "SYS"."SYS_EXPORT_TABLE_01"
******************************************************************************
SYS.SYS_EXPORT_TABLE_01 的转储文件集为:

 d:/backup/oracle/expdp1.dp
d:/backup/oracle/expdp2.dp
D:/BACKUP/ORACLE/EXPDP3.DP


作业 "SYS"."SYS_EXPORT_TABLE_01" 已经完成, 但是有 1 个错误 (于 14:08:52 完成)

C:/Documents and Settings/Administrator>


至此问题解决

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论