Проблема с DATA PUMP на PDB
Столкнулись с неожиданной проблемой — на одной из pdb перестали работать impdp/expdp.
ORA-31626: job does not exist ORA-31637: cannot create job SYS_IMPORT_FULL_03 for user SYS ORA-06512: at «SYS.DBMS_SYS_ERROR», line 95 ORA-06512: at «SYS.KUPV$FT_INT», line 810 ORA-39244: Event to disable dropping null bit image header during relational select
Дополнительный трейс, включённый c помощью
— Enable event ALTER SYSTEM SET EVENTS = ‘39089 trace name context forever, level 0x300’ ; — Disable event ALTER SYSTEM SET EVENTS = ‘39089 trace name context off’ ;
дал тоже немного пищи для размышлений:
*** 2017-09-28 17:45:55.708 KUPC:17:45:55.708: Queue table ownership migration failed - Aborting job KUPC:17:45:55.709: Error Code: -39244 KUPC:17:45:55.709: Error Text: Prepare Queue Table ORA-39244: Event to disable dropping null bit image header during relational select KUPV:17:45:55.709: Delete request for MT: SYS.SYS_EXPORT_TABLE_01 *** 2017-09-28 17:46:05.176 SHDW:17:46:05.176: Trapped to shadow error handling routine SHDW:17:46:05.177: Top-level error number reported = -31626 SHDW:17:46:05.177: Shadow context error supplied = 0 SHDW:17:46:05.177: Error stack at time of error report: SHDW:17:46:05.177: ORA-31637: cannot create job SYS_EXPORT_TABLE_01 for user SYS ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: at "SYS.KUPV$FT_INT", line 810 ORA-39244: Event to disable dropping null bit image header during relational select SHDW:17:46:05.177: Backtrace stack: SHDW:17:46:05.177: ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: at "SYS.KUPV$FT_INT", line 810 ORA-06512: at "SYS.KUPV$FT", line 1027 ORA-06512: at "SYS.DBMS_DATAPUMP", line 5869 SHDW:17:46:05.177: Call stack: SHDW:17:46:05.177: ----- PL/SQL Call Stack ----- object line object handle number name 0xe11183120 1461 package body SYS.DBMS_DATAPUMP 0xe11183120 5889 package body SYS.DBMS_DATAPUMP 0xcd1571f10 1 anonymous block SHDW:17:46:05.183: *** GET_STATUS (1210) procedure call *** SHDW:17:46:05.183: handle = 0 SHDW:17:46:05.183: mask = 9 SHDW:17:46:05.183: timeout = 0
На всех остальных pdb операции работали прекрасно.
Итак, решение проблемы
Следующая последовательность действий помогла восстановить работоспособность:
— @?/rdbms/admin/utlrp.sql на заданной pdb; — выключение других инстансов RAC (дабы исключить побочное влияние); — перезагрузка pdb — close/start; — вызов инструкций SYS.DBMS_DATAPUMP для экспорта схемы:
DECLARE l_dp_handle NUMBER; l_last_job_state VARCHAR2(30) := 'UNDEFINED'; l_job_state VARCHAR2(30) := 'UNDEFINED'; l_sts KU$_STATUS; BEGIN l_dp_handle := DBMS_DATAPUMP.open( operation => 'EXPORT', job_mode => 'SCHEMA', remote_link => NULL, job_name => 'EMP_EXPORT', version => 'LATEST'); DBMS_DATAPUMP.add_file( handle => l_dp_handle, filename => 'TEST_USER.dmp', directory => 'IMP_DATA_DIR'); DBMS_DATAPUMP.add_file( handle => l_dp_handle, filename => 'TEST_USER.log', directory => 'IMP_DATA_DIR', filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE); DBMS_DATAPUMP.metadata_filter( handle => l_dp_handle, name => 'SCHEMA_EXPR', value => '= ''TEST_USER'''); DBMS_DATAPUMP.start_job(l_dp_handle); DBMS_DATAPUMP.detach(l_dp_handle); END; /
И после этого всё стало работать как надо. Вот такой вот шаманский ритуал!
Есть вопрос? Напишите в комментариях!