您好,登錄后才能下訂單哦!
這篇文章主要講解了“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。