A-A+

遇到一个oracle10g impdp bug

2016年07月11日 Oracle 暂无评论 阅读 5,141 次

inewup-oracle-12c

情况是这样的,客户需建议一个测试系统,导入正式数据

impdp xxxxx  directory=xxxxx dumpfile=xxxxx.dmp remap_tablespace=xxxxxx:cccccc remap_schema=xxx:ccc logfile=xxx.log

导入的过程中使用了impdp attach=SYS_IMPORT_FULL_01 修改了parallel 并行度

在导入到TABLE_STATISTICS的时候出现问题

处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

ORA-39097: 数据泵作业出现意外的错误 -21780

ORA-39065: DISPATCH 中出现意外的主进程异常错误

ORA-21780: 已超过对象持续时间的最大值。

ORA-39014: 一个或多个 worker 进程已过早地退出。

作业 "xxxxx"."SYS_IMPORT_FULL_01" 因致命错误于 14:30:43 停止

ORA-39014: 一个或多个 worker 进程已过早地退出。

查询后发现Data Pump Export (expdp) or Data Pump Import (impdp) reports ORA-21780 at the end of export completion. (文档 ID 1357811.1)

CHANGES

Changed number of parallel processes while Data Pump Export or Import was running.

Export> parallel=1
Export> exit

CAUSE

This is caused by Bug:10198387 which is a confirmed duplicate of Bug:16298145

SOLUTION

FIX

  • 11.2.0.4
  • 12.1

WORKAROUND

Don't change the number of parallel processes while Data Pump Export is running.

DIAGNOSTIC ANALYSIS:
--------------------
WORKAROUND:
-----------
Don't execute "parallel=n" while export is running.
RELATED BUGS:
-------------
-
REPRODUCIBILITY:
----------------
Permanently reproducible:
- 11g Release 1
- 11g Release 2
Not verified on 10g but most probable would reproduce there too.
TEST CASE:
----------
The following test case will try to export the SYSTEM schema by using
PARALLEL=4
1. Prerequisites
connect / as sysdba
-- create test user
create user tc1 identified by tc1 default tablespace users;
grant dba to tc1;
-- Create Data Pump directory
create or replace directory DP_TEST as '/tmp';
-- Create a parameter file (test.par) to include the following parameters:
directory=DP_TEST
job_name=TEST
LOGFILE=test.log
SCHEMAS=SYSTEM
parallel=4
2. Run the test case. You need 2 separate sessions:
-- session #1: initiates the export
rm /tmp/*.dmp
expdp tc1/tc1 parfile=test.par
-- session #2: Changes parallel to 1.
expdp tc1/tc1 attach=TEST
Export> parallel=1
Export> exit
NOTE
----
It is essential to execute the "parallel=1" command *after* the
"total estimation" message has been reported:
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 320 KB <== don't execute
"parallel=1" before this message appeared.
before this message
The issue would not occur if "parallel=1" is specified before the
estimate process completed.

给我留言