Ao migrar uma base via DUMP (seja com expdp/impdp ou exp/imp) ou realizar algumas manutenções como atualizações de aplicação, é sempre uma boa idéia parar todos os JOBS que estão rodando no banco antes de começar o trabalho. Não basta matar os processos ativos(ou mesmo reiniciar a base), você tem de cuidar para que os JOBs não sejam iniciados no meio do processo e este é um erro muito comum.
Para facilitar este trabalho criei o pequeno script abaixo que cria dois arquivos, um para desabilitar os JOBs e outro para habilitar novamente. Outro erro comum é desabilitar os JOBs e depois não saber quais estavam ativos antes, na hora de habilita-los.
Um último adendo, aqui eu estou utilizando o DBMS_IJOB (que não está bem documentado, mas permite trabalhar com jobs de outros usuários) e o DBMS_SCHEDULER para aqueles que utilizam este recurso introduzido no 10g.
sqlplus -s / as sysdba <<EOF set heading off set trimspool on set term off set echo off set feed off SPOOL 'jobs_to_broken.sql' SELECT 'EXEC dbms_ijob.broken(' || job || ',TRUE);' FROM dba_jobs WHERE broken = 'N'; SELECT 'EXEC dbms_scheduler.disable (''' || owner || '.' || job_name || ''');' FROM dba_scheduler_jobs WHERE enabled = 'TRUE' ORDER BY owner, job_name; SPOOL OFF SPOOL 'jobs_to_run.sql' SELECT 'EXEC dbms_ijob.broken(' || job || ',FALSE);' FROM dba_jobs WHERE broken = 'N'; SELECT 'EXEC dbms_scheduler.enable (''' || owner || '.' || job_name || ''');' FROM dba_scheduler_jobs WHERE enabled = 'TRUE' ORDER BY owner, job_name; SPOOL OFF -- rodar '@jobs_to_broken' para desabilitar os JOBs' -- rodar '@jobs_to_run' para restaurar os JOBs EOF