Habilitar e desabilitar todos os JOBS do Oracle

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

Off line

Bom, algumas pessoas tem reclamado que não tem conseguido entrar em contato comigo. Ocorre que este ano o meu principal cliente mudou o seu firewall e proxy bloqueando meu acesso já limitado ao mundo externo. Sendo assim, não consigo mais me comunicar via IRC, Jabber, ICQ, GTalk, etc em horário comercial. Até mesmo o meu acesso a webmail está comprometido pois estou utilizando um proxy externo para acessa-lo. O problema é que o Gmail não se comporta bem via proxy e conexões muito lentas e você acaba sendo obrigado a usar uma versão em HTLM puro do Gmail. Vou lhes dizer que a versão HTML do Gmail é no mínimo bizarra.

Algumas pessoas podem achar estranho pois me vêem on-line o dia inteiro. Ocorre que meu desktop em casa fica ligado praticamente 24/7, então você pode me ver on-line, mas isto não significa que eu esteja lá. Seja como for, o e-mail continua sendo a melhor forma de me encontrar.

Sobrevivendo como DBA

Algumas pessoas já sabem e outras andaram estranhando. O fato é que voltei a trabalhar com Oracle. Passei um tempo com desenvolvimento Web, mas o fato é que eu realmente gosto de trabalhar com Banco de Dados. Procuro há algum tempo uma vaga para DBA PostgreSQL no Brasil, e não encontro. Se você entrar no APInfo, por exemplo e fizer uma busca, você vai encontrar algumas vagas para desenvolvedores que tenham algum conhecimento de PostgreSQL, mas não vagas para DBA PostgreSQL.

O fato é que o PostgreSQL está crescendo no mercado. Ainda não representa uma fatia tão expressiva quando o Firefox no mercado de navegadores, mas vem crescendo. O que eu vejo são empresas com aplicações pequenas onde não existem um DBA alocado exclusivamente para tomar conta do SGDB ou empresas com aplicações médias onde um outro DBA, como um DBA Oracle ou MS SQL Server acaba assumindo o trabalho. Existem ainda poucas empresas especializadas em dar suporte para o PostgreSQL no Brasil, e poucas aplicações de grande porte utilizando o PostgreSQL, pelo menos é o que tenho notícias. Sei que muitas implementações não são divulgadas, até mesmo por questões de segurança interna. Mas já tem muita gente testando e se convencendo que o PostgreSQL já está pronto para aguentar cargas mais pesadas. O lançamento da versão 8.3 vai confirmar isso novamente.

Estive lendo um artigo interessante, onde o autor demonstra que em seus testes de migração do Oracle 8 para o 10, não houve uma melhoria muito grande no aumento de performance do Oracle. O que mudou então? Muita coisa melhorou, mas o que eu tenho sentido nos meus testes pessoais é uma melhoria enorme nas interfaces administrativas. Uma quantidade enorme de ferramentas foram colocadas a disposição para automatizar dezenas de tarefas. É claro que em algumas implementações críticas ou muito grandes, um ou mais bons DBAs conseguirão fazer um gerenciamento do Banco de Dados melhor que as ferramentas automáticas. Mas as implementações pequenas e médias precisam de cada vez menos intervenções. Muita coisa que eu fazia na mão ou via scripts no Oracle 9i, podem ser feitas automaticamente pelo Oracle 10g. E em breve teremos a versão 11 por aí.

Isto significa que a demanda por DBAs tende diminuir um pouco, mas significa também que o PostgreSQL ainda tem muito terreno para ganhar. A cada nova versão, o desempenho do PostgreSQL tem sofrido melhorias constantes e significativas. Ainda não existem funcionalidades e ferramentas tão sofisticadas quanto as da Oracle, mas iniciativas como o CEDRUS estão aparecendo e muita gente está começando a se preocupar com isso. A meu ver, teremos um aumento de demanda crescente para bons DBAs para PostgreSQL, de preferência, aqueles que tiverem experiência com ambientes maiores. Isto significa que o que se aprende com Oracle (se não aprender apenas a arrastar o mouse, claro…) não deverá se perder, e sim se agregar para diversas situações onde o ambiente é mais exigente.

Com isso, digo que estou um pouco afastado do trabalho com PostgreSQL, mas continuo acompanhando de perto, com o prazer de trabalhar ao lado de dois bons DBAs com quem estou aprendendo muito, ironicamente, um é um DBA DB2, e ou outro é um DBA PostgreSQL! Acredito que haverá espaço para os fãns do elefante em breve,enquanto isso, se aprimorar um pouco em ambientes mais complexos, não me parece tão ruim assim. Tenho aprendido muita coisa e comparado como as coisas funcionam em SGDBs diferentes, tenho até aprendido algumas coisas sobre DB2 em mainframes, que é muito interessante. Espero que quando as oportunidades surgirem eu esteja bem preparado para assumir novos desafios.

So Long, and Thanks for All the Fish

Não é sem um pouco de nervosismo e alegria que estou dando uma guinada na minha vida profissional. Mudanças importantes estão acontecendo como fruto de varias coisas que vinham se acumulando.

Aprendi muita coisa nestes últimos 4 anos. Conheci muita gente e aprendi muito com elas. Vivenciar um ambiente com exigências de nível corporativo foi um fator fundamental para mim. Foi uma etapa importante e espero ter aprendido com meus erros.

Estou bastante entusiasmado com meus novos desafios e espero contribuir mais com que mais me ajudou nos últimos tempos: a comunidade!

Bem, mas não dá tempo de ficar pensando muito nisso… hora de arregaçar as mangas e trabalhar. Na verdade, sinto que estou apenas começando…

Ausência

Após algum tempo sumido, estou regressando ao convívio com a comunidade de software livre. Nos últimos tempos uma avalanche de acontecimentos me deixou distante da comunidade:

  • Fui designado para coordenar a equipe de desenvolvimento no trabalho, o que me fez mergulhar numa avalanche de reuniões onde eu mal consegui sentar na frente do computador por semanas.
  • Entrei num projeto grande desenvolvendo um portal utilizando o CMS Xoops. O projeto exigiu uma série de hacks no CMS que eu quero devolver para comunidade em breve. Espero que até o final de abril eu consiga terminar este projeto.
  • Alguns problemas de saúde na família exigiram minha atenção constantemente.

O resultado é que nos últimos 2 meses eu quase virei um zumbi ambulante. Mas agora as coisas parecem começar a caminhar:

  • A equipe do trabalho começou a caminhar com as próprias pernas exigindo menos a minha atenção. O trabalho está começando a fluir melhor, já consegui ficar mais de 4 horas por dia na frente do computador nos últimos 3 dias.
  • Comecei a me entender melhor com o Xoops, PHP e o MySQL . Passamos alguns maus bocados no projeto mas a ferramenta está começando a entrar num nível de customização adequado para o projeto que tem mais de 10 mil páginas para entrarem no ar!
  • Em casa as coisas já estão um pouco mais calmas. Eu já havia desistido de ir ao FISL e consegui chegar num meio termo. Vou e volto no mesmo dia. Será o suficiente para dar a palestra, dar um oi para o pessoal e com sorte voltar para o casamento de um grande amigo meu: o Tatu!

Bem, não participei do FLISOL nem fui na festa de casamento de outro grande amigo meu, o Denis, mas espero começar a voltar às atividades em breve. Um bom começo é voltar a blogar. Após algumas alfinetadas do meu colega fike, decidi que está na hora de ter o nosso próprio servidor. A idéia é locar um servidor dedicado e rachar a conta com alguns amigos. Quando isso rolar, deverei aposentar meu blog aqui no multiply e começarei a utilizar uma ferramenta livre. Talvez eu use o próprio Xoops!

Por enquanto, eu estou feliz com a idéia de dar um pulo em Porto Alegre de dar uma espiada no Fórum. Agora tenho que dar uns retoques na palestra e ir atrás de algumas informações complementares para dar mais sustentação para a coisa toda.

Enfim… tô de volta pessoal, pode me chamar que eu já estou até no IRC de novo, em #psl-abcd, #debian-br #postgresql-br #postgresql (na freenodes, é claro!)