Ferramenta para gerenciar e controlar scripts de banco.

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Avatar do usuário
wbarrence
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 55
Registrado em: Qui, 06 Out 2011 10:30 am
Localização: SP
--
WABS

Olá Pessoal,

Alguém pode me indicar alguma ferramenta que me permite fazer o gerenciamento e controle de scripts (INSERT, UPDATE, DELETE, ALTER, etc.) de Banco de Dados?

Eu trabalho com desenvolvimento de aplicações, na parte de banco, e a cada versão da aplicação que é gerada, eu tenho que juntar todos os scripts da versão numa pasta, compactar e enviar para a homologação. O problema que ocorre é que as vezes é necessário dar manutenção nesses, verificar logs, etc.. e dependendo da quantidade de scripts torna o trabalho um tanto oneroso.

Att,
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá wbarrence,

Sobre ferramentas para aplicação de scripts, eu não tenho informações de um produto específico.

Existem alguns produtos que permitem comparar a estrutura entre dois schemas (mesmo que em banco diferentes) e até geram scripts de migração. Entre os produtos, poderia sugerir o CA ERWIN ou os produtos da EMBARCADERO. Mas todos estes produtos são pagos e de custo muito alto. Um outro produto que gera parcialmente scripts de atualização seria o RED GATE SCHEMA COMPARE.

Sei que é um forum ORACLE, mas não tenho vergonha nenhuma em mencionar o SQLSERVER 2008 INTEGRATION SERVICES para automatização de algumas tarefas repetitivas. Mas isso envolve licenças ou um tempo considerável de sua parte para entender o funcionamento dele (diria que não seria um tempo jogado fora, pois o produto é extremamente interessante).

Mas se quer minha opinião, talvez você não precise de um produto para garantir o controle de atualizações.

Bastaria ter um schema em uma instãncia sua que fosse uma cópia "QUASE exata" do schema existente no ambiente de produção. Este schema seria usado exclusivamente para a aplicação de scripts.

Garantindo que cada um dos scripts individuais seja executado com sucesso neste ambiente (após acertos), creio que não haveria quase nenhum problemas em aplicar isso em produção posteriormente (respeitando a mesma ordem de aplicação dos scripts no ambiente de testes).

Eu também tenho um ambiente que continuamente sofre updates de versão (impactando na modelagem do banco ou em carga de dados).

O que eu costumo fazer é criar um script único de manutenção, onde vou agregando as atualizações do mês, em ordem cronológica.

Diariamente, um schema meu de banco é recriado (uma foto da produção, no que se refere a estrutura de tabelas, indices, etc - exceto em volume de dados), e este KIT de manutenção é sempre aplicado ao mesmo. No proximo dia, o schema volta à sua posição original e o KIT é novamente aplicado.

Tudo isso pode ser automatizado via AT do windows. O que me resta é periodicamente avaliar os logs gerados pelo KIT, especialmente quando agrego novas manutenções ao KIT.

Fazendo isso, você evita "sustos desnecessários" ao aplicar o KIT na produção, pois seu kit foi exaustivamente testado durante o mês.

Mas é importante que este schema de testes seja específico para os scripts. Se na sua empresa você não tem permissão para ter algo assim para suas atividades de DBA, recomendo que considere criar um schema em uma base XE de seu desktop e pratique os testes nela.

Abraços e boa sorte,

Sergio Coutinho
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante