Ir para o conteúdo
ou

Software livre Brasil

 Voltar a SAVEPOINT
Tela cheia

Habilitar e desabilitar todos os JOBS do Oracle

10 de Dezembro de 2010, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 1372 vezes

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

Fonte: http://feedproxy.google.com/~r/midstorm/~3/tgbyvJ_gXJw/

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.