Publicado por Telles e arquivado em Informática
Semana passada foi o Banco de Dados de produção que quase teve de voltar o backup. Não precisei, mas tive de gerar um dump, recriar a base e importar tudo de novo. Resultado: quase 24h de banco fora do ar.
Hoje foi uma procedure que eu tinha que entregar hoje sem falta. Compilei, comecei a rodar e fui acompanhando minha tabela de erros para ver como está o processamento. Notei uma série de erros em sequência, mas que não davam para localizar direito o ponto em que os dados estavam entrando pelo cano. Adicionei mais pontos de tratamento de erro e fui recompilar minha procedure. O que aconteceu???
O processo ficou travado no Oracle. Fui tentar matar a sessão e nada. Fechei a aplicação e nada. Mandei reiniciar o Oracle e adivinha… não desliga. Matei tudo quanto era processo que não fosse o Console. Nada do Banco desligar.
Já estou a meia hora e nada do bicho desligar. Eu ia ficar no prazo, trabalhei até mais tarde. Achei que estava com folga de tempo e olhe só onde estou? Quase 22h de uma véspera de feriado com um calor pedindo para tomar umas cervejas e eu aqui congelando nesse maldito ar condicionado!!!
Fala Sério. Isso é castigo!!!
Tags:
Oracle,
PL/SQL
Nenhum comentário »
Publicado por Telles e arquivado em Oracle
Depois de quase um mês remodelando uma interface entre dois sistemas que deixaram de se comunicar por causa da mudana de um parêmetro… homologamos a solução!!! Bem, pelo menos a primeira parte. Agora falta botar pra funcionar o que nunca funcionou…
Pra mim foi um grande aprendizado…
- Primeiro documentei o nome de todas tabelas, procedures, gatilhos, sinônimos, dependncias e tudo quanto objeto que estava relacionada a interface. Deram uns 50 objetos diferentes…
- Depois fui atrás de informações sobre como os dois sistemas funcionavam no tocante a parte que precisava ser mexida.
- No meio do caminho li um livro inteiro de PL/SQL do Oracle pois conhecia muito pouco do assunto e mesmo assim só tinha mexido com isso no PostgreSQL.
- Fiz um diagrama de blocos de como eu gostaria que ficassem as novas procedures e gatilhos.
- Criei um script para alterar e criar todas tabelas, sequências, permições e comentários necessários, Incluindo algumas instruções DML necessárias para criar as condições de teste corretas.
- Escrevi de novo as procedures e gatilhos praticamente do zero.
- Adicionei uma boa dose de comentários em todo o codigo escrito
- Testei os scripts e compilei os procedures e gatilhos
- Fiz um tutorial para a alterão dos procedimentos necessários para a empresa que manda os dados para interface
- Recebi uma carga de dados de teste da empresa e testei a parafernália toda
- Pedi para a equipe que de suporte do outro sistema para checar se os dados de teste entraram com sucesso na base de teste.
- Atualizei toda a documentação
- Carreguei todos os objetos no banco de dados de produção
- Liberei a empresa para comeaçar a fazer a carga na interface com dados reais.
Putz! Que trampo!!! Agora só falta avisar uma das empresas que eu fui obrigado a alterar 2 gatilhos deles que estavam dando erro quando mudei os procedimentos.
Isso ainda pode gerar um abacaxi…
Bem, mas o importante que eu aprendi muuuuita coisa no processo. Tô comeando a fazer as coisas como gente grande. Documentando tudo, testando em um ambiente separado, homologando a solução e redocumentando tudo de novo. Deu muito trabalho deste jeito, mas pela complexidade da coisa e o número de erros que tive que corrigir (os meus e alguns dos outros dois sistemas…) a coisa seria bem mais complicada se eu fisesse de outra forma. Como estou mexendo em um sistema de tributação, qualquer erro poderia ter gerado graves consequências em pouquíssimo tempo.
, desenvolver em ambiente corporativo é como na Educação:
o bagulho louco e o processo lento.
Tags:
Education,
Oracle,
PL/SQL
Nenhum comentário »