expdpnf导出问题分析

这篇文章主要讲解了“expdpnf导出问题分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“expdpnf导出问题分析”吧!

站在用户的角度思考问题,与客户深入沟通,找到大安网站设计与大安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名注册雅安服务器托管、企业邮箱。业务覆盖大安地区。

中止僵死的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

感谢各位的阅读,以上就是“expdpnf导出问题分析”的内容了,经过本文的学习后,相信大家对expdpnf导出问题分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享标题:expdpnf导出问题分析
标题网址:http://myzitong.com/article/ihdops.html