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