expdpnf导出问题分析

发布时间:2021-11-09 10:35:09 作者:iii
来源:亿速云 阅读:205

这篇文章主要讲解了“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导出问题分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 字符串典型问题分析
  2. 典型问题分析(十五)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

expdpnf

上一篇:怎么解决EXPDP时报错ORA-31693

下一篇:数据库中如何查看故障时间等待事件、问题sql及会话访问次数

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》