impdp ORA-39002,ORA-39166,ORA-39164的问题及解决(r2第6天)

今天在做imp和impdp的性能测试时,发现如果表中存在lob字段,加载真是慢的厉害,每秒钟大概1000条的样子,按照这种速度,基本上不用干活了。 比如5千万条记录,50000000/1000/60/60=13.89小时,时间是无法接受的。 所以尝试使用impdp来看看性能的提升。 导出的表里面有9千万条记录,而且做了分区,分区大概有300个。如果使用全表导出导入,在之前的测试中,测试5千万数据,大概会有3个多小时,也算是比较长的时间,而且随着数据量的增大,时间还会不断的增长。 个人尝试从分区的角度做些工作。 导出分区,然后按照分区导入。 使用的impdp命令如下,已经做了remap_schema,但是不管怎么尝试,都会抛出如下的错误。事实上这个分区是存在的。

impdp mig_test/mig_test directory=memo_dir dumpfile=par1_mo1_memo.dmp logfile=par1_mo1_memo_imp.log  tables=mig_test.mo1_memo:P9_A0_E5 TABLE_EXISTS_ACTION=appendREMAP_SCHEMA=prdappo:MIG_TEST DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS


With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39002: invalid operation
ORA-39166: Object MIG_TEST.MO1_MEMO was not found.
ORA-39164: Partition MIG_TEST.MO1_MEMO:P9_A0_E5 was not found. 


尝试了各种方法。还是没有效果。最后查看metalink找到了一些思路。(Doc ID 550200.1)

CAUSE

Unlike fromuser/touser and tables functionality in traditional imp, DataPump assumes that if TABLES parameter does not include schema name then the table is owned by current user doing import and will not find correct table to import unless the user doing import is same user which owns the tables in export dump and has IMP_FULL_DATABASE role so that user can import into other schemas.

SOLUTION

1. Either grant IMP_FULL_DATABASE to user which owns the objects in the export dump so that user can import into other schema referenced REMAP_SCHEMA and run DataPump import as that schema, ie

SQL> grant IMP_FULL_DATABASE to old_user; impdp old_user/passwd TABLES=TABLEA:TABLEA_PARTITION1 / REMAP_SCHEMA=old_user:new_user DUMPFILE=exp01.dmp,exp02.dmp,exp03.dmp / DIRECTORY=data_pump_dir Or: 2. Be sure to include the schema name in TABLES parameter so the correct table can be found to import from user/to user referenced in REMAP_SCHEMA, ie

impdp system/passwd TABLES=old_user.TABLEA:TABLEA_PARTITION1 / 
REMAP_SCHEMA=old_user:new_user DUMPFILE=exp01.dmp,exp02.dmp,exp03.dmp / 
DIRECTORY=data_pump_dir
最后尝试使用如下的命令,终于有反应了,分区里竟然还是空的。:)

impdp mig_test/mig_test directory=memo_dir dumpfile=par1_mo1_memo.dmp logfile=par1_mo1_memo_imp.log  tables=prdappo.mo1_memo:P9_A0_E5 remap_schema=prdappo:mig_test TABLE_EXISTS_ACTION=append  DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS
Master table "MIG_TEST"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
Starting "MIG_TEST"."SYS_IMPORT_TABLE_01":  mig_test/******** directory=memo_dir dumpfile=par1_mo1_memo.dmp logfile=par1_mo1_memo_imp.log tables=prdappo.mo1_memo:P9_A0_E5 remap_schema=prdappo:mig_test TABLE_EXISTS_ACTION=append DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS 
Processing object type TABLE_EXPORT/TABLE/TABLE
Table "MIG_TEST"."MO1_MEMO" exists. Data will be appended to existing table but all dependent metadata will be skipped due to table_exists_action of append
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "MIG_TEST"."MO1_MEMO":"P9_A0_E5"                0 KB       0 rows
Job "MIG_TEST"."SYS_IMPORT_TABLE_01" successfully completed at 17:23:04

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

执行计划变化导致CPU负载高的问题分析 (r8笔记第20天)

前几天碰到一个CPU负载较高的问题。从系统层面来看,情况不是很严重,但是从应用的角度来说,已经感觉到很慢了。因为前端的调用频率还是比较高。所以会把这个问题放大。...

2567
来自专栏杨建荣的学习笔记

生产环境sql语句调优实战第六篇(r2笔记91天)

生产环境中有大量的sql语句在运行,尽管有awr,ash做数据的收集统计,但是dba的调优工作大多数情况都是在问题已经发生后做排查的,有些sql语句可能执行的时...

2724
来自专栏乐沙弥的世界

FORALL 之 SAVE EXCEPTIONS 子句应用一例

     对于大批量的DML操作中出现的错误,除了使用DML error logging特性来记录在DML期间出现的错误之外,使用批量SQL语句FORALL的S...

611
来自专栏杨建荣的学习笔记

SQL*Loader-805的解决(r2笔记36天)

使用sql*loader是大型项目中数据迁移的利器。如果是外部系统,其他数据库到oracle的数据迁移,使用文本式文件是最兼容的方式。 sqlldr的加载效率是...

3108
来自专栏杨建荣的学习笔记

巧用外部表避免大量的insert (r4笔记第71天)

昨天开发咨询我一个问题,希望我对下面的语句进行调优。 语句类似下面的形式 SELECT subscriber_no FROM SUBSCRIBER S W...

3478
来自专栏乐沙弥的世界

Oracle 聚簇因子(Clustering factor)

    聚簇因子是 Oracle 统计信息中在CBO优化器模式下用于计算cost的参数之一,决定了当前的SQL语句是否走索引,还是全表扫描以及是否作为嵌套连接外...

1301
来自专栏数据库新发现

关于dirty buffer

SQL> select VIEW_DEFINITION from v$fixed_view_definition where VIEW_NAME = 'GV$B...

983
来自专栏乐沙弥的世界

ORA-01652: unable to extend temp segment by 8192...

      最近在rebuild index时提示unable to extend temp segment by 8192 in tablespace..的错...

1171
来自专栏idba

死锁案例之四

一 前言 死锁,其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发同学都会在工作过程中遇见 。关于死锁我会持续写一个系列的案例分析,希望能够对想...

733
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(31)-MVC使用RDL报表

这次我们来演示MVC3怎么显示RDL报表,坑爹的微软把MVC升级到5都木有良好的支持报表,让MVC在某些领域趋于短板 我们只能通过一些方式来使用rdl报表。 R...

2675

扫码关注云+社区