quarta-feira, 20 de agosto de 2008

Flashback query (Oracle)!

Se você é nerd e trabalha na área de banco de dados como nós, já deve ter se deparado com algumas situações inusitadas.
Por exemplo, são 8:02 da manhã e vc ainda ta tentando acordar tomando 500ml de café puro quando seu diretor entra na sala parecendo uma vaca louca e gritando "rápido, delete aqueles preços que estão aparecendo no site porque tá tudo errado!!vou verificar no setor de faturamento e já volto aqui, mas apague tudo agora!".
Vc ainda sonolento prepara e executa o script no Oracle depois de ser xingado pelo diretor por ter perguntado 4 vezes se ele tem certeza que quer que apague tudo:
sql>delete from precos;commit;
ou então
sql>update precos set precos.valor='';commit;
5 minutos depois ele volta gritando desesperadamente pra vc não apagar ou desfazer pois só tinha um erro de 1 centavo em 1 preço. E agora? Como você resolve isso se o backup foi feito antes da atualizaçao dos preços?
Não se preucupe!Primeiro coloque várias dificuldades e reclame da falta de organização da empresa e peça um aumento por isso, dpois, se ainda tiver vida e emprego, torça pro DBA ter habilitado (ou mantido) o ARCHIVELOG do banco e rode o sequinte script:
sql>insert into precos
select * from precos
as of timestamp
to_timestamp('20/08/2008 08:10:06','dd/mm/yyyy:hh24:mi:ss') ;
commit;
Onde como vc deve ter percebido, a data e hora você coloca antes de ter feito a besteira e vc pode colocar condições (where preco.valor>1000, por exemplo) o que seria necessário caso vc prefira fazer um update.
Se funcionar meus parabéns! Você acabou de aprender como funciona o flashback query no oracle, também conhecido como "Mantém pescoços" ou "Anulador de índices de desempregos".Caso não tenha funcionado, provavelmente o ARCHIVELOG do banco está desativado... nesse caso acenda uma vela pro seu santo protetor ou leve seu salário em alguma dessas igrejas que "trocam" milagres por dinheiro....e se sair dessa intacto, ATIVE O ARCHIVELOG!! Assim na próxima vc escapa ileso..
Como ativar o ARCHIVELOG? Google! Onde também tem mais informações sobre flashback...qd eu tiver com disposição posto um howto aqui...
Por hora é só, e não encham o saco pq estou de mal humor...(ressaca de ver o Brasil perder de 3x0 pra Argentina nas Olimpiadas...ninguém merece...)

Nenhum comentário: