expdpnf 导出问题总结

来源:这里教程网 时间:2026-03-03 13:58:49 作者:

中止僵死的expdp任务 --dba_datapump_jobs查找数据泵作业 SELECT owner_name, job_name, operation, job_mode,  state, attached_sessions  FROM dba_datapump_jobs  WHERE job_name NOT LIKE 'BIN$%'  ORDER BY 1,2;    OWNER_NAME JOB_NAME            OPERATION JOB_MODE  STATE       ATTACHED ---------- ------------------- --------- --------- ----------- -------- SCOTT      EXPDP_20051121      EXPORT    SCHEMA    EXECUTING          1 SCOTT      SYS_EXPORT_TABLE_01 EXPORT    TABLE     NOT RUNNING        0  SCOTT      SYS_EXPORT_TABLE_02 EXPORT    TABLE     NOT RUNNING        0  SYSTEM     SYS_EXPORT_FULL_01  EXPORT    FULL      NOT RUNNING        0 --查找数据泵的master表 SELECT o.status, o.object_id, o.object_type,        o.owner||'.'||object_name "OWNER.OBJECT"   FROM dba_objects o, dba_datapump_jobs j WHERE o.owner=j.owner_name AND o.object_name=j.job_name    AND j.job_name NOT LIKE 'BIN$%' ORDER BY 4,2;   STATUS   OBJECT_ID OBJECT_TYPE  OWNER.OBJECT ------- ---------- ------------ ------------------------- VALID        85283 TABLE        SCOTT.EXPDP_20051121 VALID        85215 TABLE        SCOTT.SYS_EXPORT_TABLE_02 VALID        85162 TABLE        SYSTEM.SYS_EXPORT_FULL_01 --删除master表 DROP TABLE scott.sys_export_table_02; --对于启用了recyclebin的系统,需要额外运行 purge dba_recyclebin; -------------正常中止expdp作业--------------------------- --查到job_name select * from dba_datapump_jobs; OWNER_NAME   JOB_NAME  OPERATION  JOB_MODE   STATE                              DEGREE ATTACHED_SESSIONS DATAPUMP_SESSIONS ------------------------------------------------------------ ------------------------------ ---------- SYSTEM       SYS_EXPORT_FULL_01    EXPORT   FULL  EXECUTING                               1                 1                 3 --attach该任务 expdp system/sys attach=SYS_EXPORT_FULL_01 Export> stop_job Export> KILL_JOB

修改正在执行导入操作的impdp并行度,提高导入效率

impdp uname/password attach=SYS_IMPORT_SCHEMA_01 ---回车,可以查看该任务的详细情况 rac expdp导出时报错:ORA-31693、ORA-31617、ORA-19505、ORA-27037 ac expdp导出时报错: ORA-31693: Table data object "scott"."dept" failed to load/unload and is being skipped due to error: ORA-31617: unable to open dump file "/home/oraclerac/dump_dir/oravs_expdp_05.dmp" for write ORA-19505: failed to identify file "/home/oraclerac/dump_dir/oravs_expdp_05.dmp" ORA-27037: unable to obtain file status 错误原因: 在RAC环境下如果PARALLEL参数设置大于1,进程会在RAC的各个节点上进行导出。如果导出目录不共享的话就会报错 解决方法: 1、设置为共享的directory; 2、导出语句添加cluster=n选项,指定只在本地导出;  

expdp/impdp数据泵分区表导入太慢了

分区表数据泵导入太慢,达不到客户的迁移要求 导出语句如下:(10G单节点) userid='/ as sysdba' directory=milk_dir dumpfile=mon_%U.dmp logfile=0828.log schemas=mon parallel=8 导入语句(11G的rac): userid='/ as sysdba' directory=milk_dir dumpfile=mon_%U.dmp logfile=0828.log parallel=8 CLUSTER=N 整个过程导出花费了3个小时不到,导入花费了近10个小时。这个过程实在是太慢,,,,, 在整个导入过程中,通过实时刷新日志,发现一到分区表的分区就贼慢,就算是一个分区只有22条数据。也要2分钟刷新一次,相当于两分钟导入了160条数据,这速度,,,,,,,,,,,不行,,,,不行,,,,, 从新优化导入的parfile: userid='/ as sysdba' directory=milk_dir dumpfile=mon_%U.dmp logfile=0828.log parallel=8 ACCESS_METHOD=DIRECT_PATH CLUSTER=N   导入速度直接从花费10小时降为两小时,符合迁移的效率  ACCESS_METHOD=DIRECT_PATH  官方的解释:  use ACCESS_METHOD=DIRECT_PATH to import the data, as this access method does not check the table metadata before import

ORA-01555解决导出含clob字段表报错快照过旧问题

导出含clob字段的表数据,报快照过旧,无法导出 该问题是因为含clob字段表数据过大导致,需要修改数据库闪回参数解决 查看undo表空间大小是否足够,undo_retention参数是否设置太小,一般跟undo空间无关,只需修改参数即可 目前解决办法有两个,加大retention或者使用pctversion 另外,对于使用MSSM表空间的表,只有pctverion可用,lob retention不可用 1、加大retention 查看undo参数 SQL> show parameter undo --修改undo闪回参数 alter system set undo_retention=7200 scope=both; 通过查询oracle官网,oracle的lob大字段有自己的retention参数,如果只调整undo_retention,而没有同步到lob大字段,该参数还是默认的900s,确认查询结果如下: select table_name,column_name,pctversion,retention from dba_lobs where table_name='T_PATIENT_DOC_COLB'; select table_name,column_name,pctversion,retention from dba_lobs where table_name='T_PATIENTS_DOC_CA'; select table_name,column_name,pctversion,retention from dba_lobs where table_name='T_CARE_DOC'; 修改表含有lob大字段的retention设置 ALTER TABLE T_PATIENT_DOC_COLB MODIFY LOB(CONTENT)(retention); ALTER TABLE T_PATIENTS_DOC_CA MODIFY LOB(SIGN)(retention); ALTER TABLE T_PATIENTS_DOC_CA MODIFY LOB(TIMESTAMP)(retention); ALTER TABLE T_CARE_DOC MODIFY LOB(CARE_DOC)(retention); 2、使用pctversion 从结果中可以看到, 当显示指定pctversion的时候,retention参数会失效 SQL> alter table T_PATIENTS_DOC_CA modify lob(SIGN) (pctversion 10); SQL> select column_name, pctversion, retention from user_lobs where table_name = 'T_PATIENTS_DOC_CA'; COLUMN_NAME          PCTVERSION  RETENTION ------------------------------   ---------   ---------- SIGN                           10 TIMESTAMP                               7200

相关推荐