Versionamento de objetos de bancos de dados - Revista SQL Magazine 107

Este artigo apresenta uma solução para versionar e recuperar versões anteriores dos metadados ou código DDL dos objetos de um banco de dados Oracle. O repositório de metadados sugerido permite recuperar versões anteriores de objetos de BD Oracle

Artigo do tipo Tutorial
Recursos especiais neste artigo:
Artigo no estilo Solução Completa.
Versionamento de objetos de bancos de dados
Apresentaremos neste artigo a criação de um repositório de metadados (código DDL) de objetos de bancos de dados Oracle, o que permitirá criar o versionamento destes objetos e uma recuperação (em casos, por exemplo, de exclusão acidental ou nova versão com erros) mais rápida e fácil do que efetuar a restauração de um backup.

O repositório é uma solução simples, mas muito eficiente e é composto por apenas três objetos de banco de dados: uma tabela, uma stored procedure e um scheduler job. Para efetuar a recuperação do código DDL de um objeto é necessário ter apenas conhecimentos básicos de instruções SQL. Deste modo, qualquer DBA ou até mesmo um desenvolvedor júnior estarão aptos a fazer a recuperação.

Em que situação o tema é útil
Em desenvolvimento de software é muito comum implementarmos novas versões de softwares que apresentam bugs ou resultados inesperados. Diante destas situações, precisamos corrigir o problema o mais rápido possível e a forma mais rápida normalmente é voltar à versão anterior. O repositório apresentado neste artigo permite esta recuperação de uma forma muito rápida e fácil.

Outro motivo que também pode nos levar ao uso deste repositório é se algum objeto do BD for excluído por engano ou acidente (erro humano). Nestes casos, também podemos recuperar um ou mais objetos facilmente a partir do código DDL dele(s), contido(s) no repositório.

Um sistema de controle de versão objetiva controlar as diferentes versões geradas durante a elaboração e manutenção de um artefato qualquer. Sua aplicação mais usual é no desenvolvimento de projetos de software onde temos uma afinidade de artefatos sendo gerados durante a construção do produto. Neste cenário eles são utilizados para administrar as diferentes versões tanto da documentação quanto dos fontes do projeto.

Esse tipo de prática (o versionamento) é muito útil em diferentes aspectos. Por exemplo, elas permitem um trabalho em equipe coordenado uma vez que possibilitam que diferentes pessoas trabalhem de forma organizada em um mesmo conjunto de artefatos. Além disso, o versionamento permite também a recuperação de versões estáveis de um produto (o que muitas vezes é importante quando são identificados problemas críticos em novas versões liberadas) através do controle do histórico da evolução dos diferentes artefatos que estão sendo gerados no projeto.

Neste contexto, um cenário muitas vezes ignorado é o versionamento dos objetos criados em um SGBD. Este artigo tem como objetivo apresentar a implementação de um repositório de metadados dos principais objetos de um banco de dados Oracle, através de uma rotina em PL/SQL que permite armazenar em uma única tabela versões de código DDL (Data Definition Language) de tabelas,stored procedures, functions, views, packages, scheduler jobs, triggers, índices, visões materializadas e outros objetos do BD. Esta opção pode servir para complementar estratégias de backup e permitir recuperações mais fáceis e rápidas de versões anteriores do código ou a estrutura destes objetos. " [...] continue lendo...

Artigos relacionados