Oracle
Oracle 數據泵,暫停作業
我目前正在為相當大的架構(2TB)執行 impdp 作業並遇到錯誤。源數據庫有一列比目標數據庫大。這會導致 ORA-02374 和 ORA-12899 錯誤。這導致導入作業在這張表上爬行。
我試圖克服這些錯誤,我能想出的最佳解決方案是修復表定義,或者告訴導入作業跳過目前表。我目前無法修復表定義,因為數據泵作業已鎖定表。
有沒有辦法暫停作業,修改列,然後恢復導入?或者有沒有辦法告訴工作跳過目前表並繼續前進?這將允許在作業完成後返回,修復表定義,然後僅重新導入一個表。
ETA:這是導入中最後幾張表之一,我寧願不殺死整個事情並重新開始。
好吧,您可以停止作業並在表中進行更改,然後跳過目前對象繼續作業。
展示:
[oracle@localhost]$ impdp jay/password directory=dp_dir tables=imptest, imptest2 content=data_only dumpfile=exp_jay_imptest.dmp ... ORA-02374: conversion error loading table "JAY"."IMPTEST" ORA-12899: value too large for column NAME (actual: 12, maximum: 10) ORA-02372: data for row: NAME : 'mysamplename' ^C--Press CTRL+C keys. Import> stop_job=immediate Are you sure you wish to stop this job ([yes]/no): yes
現在更改表定義。
SQL> alter table imptest modify name varchar2(20); Table altered. SQL> exit [oracle@localhost]$ impdp jay/password attach=SYS_IMPORT_TABLE_01--- you can get job name from log file. Import> start_job Import> continue_client Job SYS_IMPORT_TABLE_01 has been reopened at Tue Oct 11 07:39:12 2016 Restarting "JAY"."SYS_IMPORT_TABLE_01": jay/password directory=dp_dir tables=imptest,imptest2 content=data_only dumpfile=exp_jay_imptest.dmp . . imported "JAY"."IMPTEST" 19.00 MB 1049211 out of 1048576 rows . . imported "JAY"."IMPTEST2" 7.710 KB 396 rows Job "JAY"."SYS_IMPORT_TABLE_01" successfully completed at Tue Oct 11 07:40:13 2016 elapsed 0 00:01:02