expdp导出数据问题-转
(2010-02-22 14:10:08)
标签:
杂谈 |
分类: 数据库 |
用expdp导数据的时候报下面的错误:
ORA-39095: | Dump file space has been exhausted: Unable to allocate string bytes |
原来是指定的dmp文件的大小小于实际导出文件的size了
$expdp ehr/ehr dumpfile=(ehr1.dmp,ehr2.dmp,ehr3.dmp,ehr4.dmp)
directory=export_dumps filesize=1G
ORA-39095:转储文件空间已耗尽,无法分配4096字节
作业"EHR"."SYS_EXPORT_SCHEMA_02" 因致命错误于09:48停止
解决上面的问题的方法:
1:重新启动“数据泵导出”
我们的第一个示例演示如何在“数据泵导出”过程中使用重新启动功能。我们将执行 HR 方案的“数据泵导出”,同时指定转储文件的最大大小。数据泵用户通常将指定最大转储文件大小 (filesize) 作为一个管理磁盘资源的机制。在此示例中,我们的作业会因为指定的转储文件大小太小而发生故障。
第 1 步:启动导出
在此示例中,我们将使用“expdp”客户机界面。在命令行指定了一个 job_name(可选),这样可以使您能够在稍后按照名称更容易地找到和连接该作业。
下面是导出命令:
> expdp system/manager schemas=ehr
directory=export_dumps
logfile=example1.log filesize=1G dumpfile=example1.dmp
输出将如下所示:
Export:Release 10.1.0.2.0 - Production on Tuesday, 06 July, 2004
6:37
.
.
.
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
.
. . exported "EHR"."COUNTRIES" 6.078 KB 25 rows
. . exported "EHR"."DEPARTMENTS" 6.632 KB 27 rows
ORA-39095:Dump file space has been exhausted:Unable to allocate
217088 bytes
Job "SYSTEM"."SYS_EXPORT_SCHEMA_02" stopped due to fatal error at
06:38
>
第 2 步:连接作业
我们的导出作业 (SYS_EXPORT_SCHEMA_02) 遇到了严重错误,客户机已经返回了操作系统提示符 (>)。我们可以通过调用下列查询来检查作业状态:
SQL> select job_name,state from dba_datapump_jobs;
JOB_NAME STATE
------------------------------ ------------------------------
SYS_EXPORT_SCHEMA_02 NOT RUNNING
在这个简单的示例中,可以很明显地看出问题所在。对于该 HR
方案来说,指定的转储文件太小。我们可以通过查看显示在屏幕上或者数据泵日志文件中的客户机输出来确定该错误的原因。
为了修复此问题,我们需要再添加一个转储文件。我们使用名称“EXAMPLE1”来连接作业。成功连接作业时,会显示作业状态以及有关该作业的其他令人感兴趣的信息。
>expdp ehr/ehr attach=EXAMPLE1
Export:Release 10.1.0.2.0 - Production on Tuesday, 06 July, 2004
6:38
.
.
.
Job:SYS_EXPORT_SCHEMA_02
Owner:SYSTEM
Operation:EXPORT
.
.
.
Total Objects: 7
Worker Parallelism: 1
第 3 步:添加转储文件
此时,可以在 Export> 提示符下发出 ADD_FILE
指令来添加转储文件。新的转储文件将自动创建在与原始转储文件相同的目录 (DATA_PUMP_DIR) 中。
Export>add_file=ehr5.dmp
接下来,我们可以执行 status 命令,看到现在显示出这个添加的转储文件。
Export>status
Job:EXAMPLE1
Operation:EXPORT
Mode:SCHEMA
State:IDLING
Bytes Processed: 55,944
Percent Done: 99
Current Parallelism: 1
Job Error Count: 0
Dump File:/work1/private/oracle/rdbms/log/example1.dmp
size: 303,104
bytes written: 163,840
Dump File:/work1/private/oracle/rdbms/log/hr1.dmp
bytes written: 4,096
第 4 步:重新启动/继续作业
最后,我们发出 CONTINUE_CLIENT 命令。作业 EXAMPLE1 此时将恢复运行。
Export>continue_client
Export> Job EXAMPLE1 has been reopened at
Tuesday, 06 July, 2004 6:38
Restarting "SYSTEM"."EXAMPLE1":system/******** schemas=hr
directory=data_pump_dir logfile=example1.log filesize=300000
dumpfile=example1.dmp job_name=SYS_EXPORT_SCHEMA_02
Master table "SYSTEM"."EXAMPLE1" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.EXAMPLE1 is:
/work1/private/oracle/rdbms/log/example1.dmp
/work1/private/oracle/rdbms/log/ehr5.dmp
Job "SYSTEM"."SYS_EXPORT_SCHEMA_02" completed with 1 error(s) at
06:38
我们也可以使用 START_JOB 命令。CONTINUE_CLIENT 命令将模式从交互式命令模式更改为记录模式,然后执行 START_JOB。