这篇文章主要讲解了“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选项,指定只在本地导出;
分区表数据泵导入太慢,达不到客户的迁移要求
导出语句如下:(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
导出含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导出问题分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。