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



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



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25469263/viewspace-2650782/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25469263/viewspace-2650782/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值