O artigo trata de demonstrar a criação de uma interface gráfica para realização de operações de Backup/Restore utilizando o Firebird e o utilitário de linha de comando Gbak, tornando a maneira de realizar estas tarefas muito mais amigável.
Em que situação o tema é útil
O tema é útil quando se deseja implementar aplicações personalizadas para automatização de tarefas cotidianas, fazendo com que o processo de realizar backup/restore seja mais simples, podendo ser realizado por pessoas sem um alto nível de conhecimento técnico.
Aplicação de Backup/Restore com Firebird
Tarefas como Backup/Restore são comuns. Principalmente no caso do Backup, já que é recomendado como uma forma de prevenção de possíveis problemas, tornando assim o seu ambiente menos suscetível a erros. Como já abordado em diversos artigos meus, a criação de aplicativos para a realização de tarefas rotineiras pode poupar grandes dores de cabeça. Embora através de uma busca rápida pelo Google seja possível obter inúmeros aplicativos como este, nada melhor do que criar sua própria ferramenta e adaptá-la conforme a necessidade. Sendo assim, neste artigo veremos como criar uma ferramenta para automatizar estes processos.
O Firebird desde seu nascimento, conta com alguns utilitários de linha de comando que podem (e devem) ser utilizados para manutenção e obtenção de estatísticas do banco de dados. Através destes, é possível realizar tarefas como Backup/Restore, verificações de índices, monitoramento de transações, correção do banco de dados, reindexação, limpeza do coletor de lixo (Garbage Collector – ver Nota do DevMan 1), além de outras tantas tarefas, como o Trace do banco (ver Nota do DevMan 2).
O Garbage Collector é um recurso bastante conhecido em programação. Neste caso, ele é responsável por fazer o gerenciamento de objetos que não foram destruídos, encarregando de gerenciá-los na memória e evitando assim os famosos Memory Leaks. Assim como no conceito da programação, o Garbage Collector está presente em bancos de dados. No Firebird não é diferente. Por padrão, o Firebird automaticamente gerencia os registros previamente deletados do banco de dados, de qualquer modo, realizar os processos de Backup/Restore do banco de dados realizam uma completa limpeza no banco de dados, fazendo com que o banco inclusive reduza drasticamente em algumas situações.
Embora exista essa grande quantidade de utilitários, todos são baseados em uma interface de comandos o que claramente pode proporcionar alguns pontos um tanto quanto desagradáveis. Isto porque a interface de comandos geralmente não é amigável, o que dificulta a visualização das informações, análise dos resultados e é claro, requer um conhecimento/domínio maior sobre os comandos, parâmetros e etc.
A maior justificativa para a criação deste tipo de aplicação é fazer com que o próprio usuário ou um suporte técnico esteja apto a fazer o backup ou restauração do banco de dados de forma simples e ágil, o que traz como benefício uma redução no tempo gasto para este tipo de tarefa. Vale lembrar que este tipo de recurso pode ser facilmente incorporado ao seu sistema, além de permitir adicionar uma gama grande de outros recursos como backup agendado, compactação dos arquivos e envio por FTP por exemplo.
O recurso de Trace nada mais é do que o monitoramento completo das atividades do servidor de banco de dados. Neste caso é possível realizar uma completa auditoria utilizando esta ferramenta, mapeando os detalhes de cada conexão ativa. Veja mais detalhes na sessão Saiba Mais ao final deste artigo.
O principal utilitário usado para a elaboração do nosso aplicativo será o gbak. O gbak está disponível desde a primeira versão do Firebird (geralmente dentro da pasta bin da instalação padrão). Através dele é possível utilizar passagem de parâmetros para definir as melhores maneiras de realizar tanto o Backup quanto o Restore do banco de dados, possuindo uma grande variedade de parâmetros configuráveis. O processo de Backup é dado basicamente pela chamada do gbak passando como parâmetro o local do banco de dados, usuário e senha e o local dos arquivos a serem gerados, que possuirão a extensão .fbk. O Restore é realizado praticamente do mesmo modo, porém, invertendo os parâmetros de .fbk e caminho do banco. Veremos isto no decorrer do artigo e abordaremos um pouco sobre os tipos de parâmetros, bem como suas respectivas funcionalidades.
Definindo a aplicação
Como anteriormente dito, o Firebird embora possua inúmeras ferramentas para auxílio de tarefas relativas ao banco de dados, estas não utilizam interfaces gráficas, sendo utilizadas e manipuladas principalmente através de linhas de comando (prompt de comandos). Neste caso, criaremos uma interface gráfica que realizará algumas das tarefas disponíveis vinha linha de comandos. Por se tratar de uma aplicação de baixa complexidade, não utilizaremos bancos de dados para realizar a persistência das configurações, que neste caso serão feitas por meio de arquivos xml. Vale apena aqui fazer uma breve comparação dos tipos de arquivo normalmente utilizados em criações de aplicações, o que pode justificar melhor a escolha do formato .xml.
Geralmente, quando há a necessidade de criar arquivos de configurações, as maneiras mais comuns são:
- Arquivos de extensão .ini
- Arquivos de registro .reg
- Arquivos xml/binários do ClientDataSet
Arquivos de extensão .ini são demasiadamente utilizados em aplicações por ser facilmente criados, configurados e manipulados por qualquer pessoa. Comumente suas configurações são separadas em forma de sessões/configurações da sessão.
Exemplo:
[BANCO DE DADOS]
Caminho = C:\DB.fdb
Uma das grandes vantagens como se pode notar, é sua simplicidade. Já como desvantagem, observa-se que este tipo de arquivo é muito suscetível a erros. O Delphi disponibiliza a unit IniFiles para a total manipulação deste tipo de arquivo.
Por outro lado, arquivos de registro (.reg) são utilizados para armazenamento de configurações no registro do Windows. Este é um detalhe importante, pois este tipo de implementação apenas é funcional nesta plataforma. Seu manuseamento é realizado pelo Delphi através da unit Registry.
Por último, temos os arquivos de configuração xml/binário. As vantagens destes tipos de arquivo tratam da facilidade de manipulação e utilização como fonte de dados, tornando assim a forma de manuseio semelhante às fontes de dados. Tanto o arquivo xml quanto o binário são extremamente leves de serem utilizados (mesmo que o arquivo binário neste quesito leve vantagem). Estes arquivos são gerados facilmente pelo ClientDataSet através do método SaveToFile, configurando os parâmetros dfXML e dfBinary ou diretamente na extensão do arquivo a ser gerado. Outros fatores a serem considerados são a facilidade para a criação dos campos que farão parte das configurações utilizadas e também a redução considerável dos erros, já que a manipulação de arquivos xml podem ser realizadas por qualquer tipo de editor. Esta é uma vantagem em relação ao arquivo binário, pois este possui uma dificuldade de manipulação maior, o que de certa forma pode proporcionar um aumento das questões de segurança.
...Confira outros conteúdos:
Instalando o ACBr
Mapeamento Objeto-Relacional com TMS...
Introdução aos componentes JEDI
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.