使用 DBMS_DATAPUMP api 从不同模式导出表

问题描述 投票:0回答:2

我需要使用 DBMS_DATAPUMP api 从不同模式导出表。 导出 0.5 GB 数据后,以下脚本失败并出现以下错误:

ORA-39126: Worker unexpected fatal error in KUPW$WORKER.FETCH_XML_OBJECTS [JOB:"MySchama3"]
ORA-10260: limit size () of the PGA heap set by event 10261 exceeded
ORA-10260: limit size (1048576) of the PGA heap set by event 10261 exceeded
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 11252

脚本:

   h1 := dbms_datapump.open (operation => 'EXPORT', job_mode => 'SCHEMA', job_name => exportJobName); 
dbms_datapump.set_parallel(handle => h1, degree => 15); 
dbms_datapump.add_file(handle => h1, filename => exportLogFile, directory => exportLogDir, filetype => 3); 
dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0); 
dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_LIST', value => q'|'MySchema1','MySchema2','MySchema3'|');
dbms_datapump.metadata_filter(handle => h1, name => 'NAME_EXPR', value => q'|in ('Table1','Table2','Table3') |', object_path => 'TABLE');
dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS'); 
dbms_datapump.add_file(handle => h1, filename => exportJobName || '_EXPDAT_' || to_char(systimestamp,'dd-mm-yyyy_hh24-mi-ss-FF') || '_%U.DMP', directory => exportStageDir, filetype => 1); 
dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1); 
dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC'); 
dbms_datapump.set_parameter(handle => h1, name => 'COMPRESSION', value => 'ALL');
dbms_datapump.set_parameter(handle => h1, name => 'ENCRYPTION_ALGORITHM', value => 'AES256');
dbms_datapump.set_parameter(handle => h1, name => 'ENCRYPTION_PASSWORD', value => exportEncryptionPwd);
dbms_datapump.set_parameter(handle => h1, name => 'FLASHBACK_SCN', value => flashbackSCN);
dbms_datapump.Start_job(h1);
dbms_datapump.WAIT_FOR_JOB(h1,job_state);
dbms_datapump.Detach(h1); 
exception
    WHEN others THEN
        raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
database database-administration plsqldeveloper datapump
2个回答
0
投票

能否提供数据库版本和补丁级别?此外,了解内存分配 (SGA/PGA) 的详细信息可能会很有帮助。您是否尝试过分配更多的 PGA?

问候, 丹尼尔


0
投票

您能澄清一下这一行的语法吗? dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_LIST', value => q'|'MySchema1','MySchema2','MySchema3'|');

这会生成错误:ORA-39001:无效的参数值

我搜索了好几天,一直无法找到 SCHEMA_LIST 的正确语法。 有很多示例,但似乎没有一个提供正确的语法。 我想更进一步,使架构列表成为一个变量。 如果有人能帮忙的话。我将永远感激不已!!!

© www.soinside.com 2019 - 2024. All rights reserved.