ORA-39095: 转储文件空间已耗尽: 无法分配 4096 字节

来源:互联网 发布:美工刀架图片 编辑:程序博客网 时间:2024/05/17 06:38

author:skate

time:2010-08-31


 

在测试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>

 


至此问题解决

 

 

-----end-----

 

 

 

 

 

原创粉丝点击