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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2650782/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js匯入匯出總結與實踐JS
- Navicat 匯出sql問題SQL
- 問題總結
- MySQL查詢結果匯出方式總結MySql
- Swoole 問題總結
- Elasticsearch 問題總結Elasticsearch
- Kibana 問題總結
- Kerberos問題總結ROS
- Mysqldump匯出亂碼問題排查MySql
- npm install 使用過程出現的問題總結NPM
- 跨域問題總結跨域
- springboot使用問題總結Spring Boot
- Fiddler 使用問題總結
- JBoss安全問題總結
- 面試問題總結面試
- electron初探問題總結
- ANSYS HFSS無法匯出dxf問題
- EasyExcel到出匯入問題記錄Excel
- 揹包問題例題總結
- 前端跨域問題總結前端跨域
- ryu啟動問題總結
- flutter安裝問題總結Flutter
- vue專案問題總結Vue
- mysql相關問題總結MySql
- Vue 常見問題總結Vue
- TCP常見問題總結TCP
- RabbitMq面試問題總結MQ面試
- PHP面試問題總結PHP面試
- REDIS面試問題總結Redis面試
- mysql常見問題總結MySql
- Kubernetes 常見問題總結
- Flink 常見問題總結
- 【Java問題面試總結】Java面試
- Dbeaver 匯出Excel 格式變化的問題Excel
- 土製Excel匯入匯出及相關問題探討Excel
- 揹包問題解題方法總結
- 回溯問題Python框架總結——排列組合問題Python框架
- Android 日常開發問題總結Android