Backup com Bacula


Vamos começar uma série de Posts sobre Backup com Bacula, que muita gente ainda tem dúvida, criada por nosso amigo Rodrigo Ramos. Ele tem usado muito a ferramenta em sua empresa e resolveu compartilhar conosco seu conhecimento adquirido.
Bacula é uma excelente ferramenta livre (licença GPL) de backup em rede. Roda em estrutura cliente/servidor, possui estrutura modular independente( todos os componentes ou módulos, podem sem instalados em locais separados, inclusive em S.O.s diferentes), possui suporte a maioria dos dispositivos storages do mercado, possui baixo requisito de hardware, 100% compatível com esquema GFS, dentre outras vantagens tornando-o uma poderosa e robusta ferramenta para backup em rede.

Descrição do Bacula segundo a Wikipedia:
Bacula é um software de backup de código aberto. Com ele é possível fazer backup remotamente de Linux, Solaris, FreeBSD, NetBSD, Windows, Mac OS X, OpenBSD, HP-UX, Tru64, AIX e IRIX.
No Brasil, o Bacula tem despertado o interesse de diversas grandes empresas, como o SERPRO, que já utiliza a ferramenta, de acordo com o alinhamento estratégico pela utilização de Software Livre.
Principais Características
– Estrutura cliente/servidor (permitindo backup centralizado em uma máquina, por exemplo)
– Estrutura modula independente (director, client, database, administration console).
– GPL – economia de custos com licenças, conhecimento e possibilidade de customizção da ferramenta.
– Inúmeros canais de suportes pela comunidade (mailing lists, foruns, IRC channel, etc.)
– Farta documentação disponível na Internet.
– Portabilidade (módulos para diferentes sistemas operacionais – Windows, Linux, MAC, etc. – são compatíveis).
– Infinidade de recursos para a customização de backups.
– Funcionalidade que permite a execução de scripts (ou executáveis) antes/depois do início de jobs (backup/restore), tanto no cliente quanto servidor Bacula.
– Existência de ferramenta de operação via linha de comando ou GUI (inclusive, com diferentes interfaces web desenvolvidas pela comunidades. Destaque: bacula-web – ferramenta de visibilidade gerencial, com gráficos, etc)
– Suporte a maioria dos dispositivos de storage do mercado (inclusive mídias ópticas).
– Funcionalidade customizável para o envio de mensagens de log dos trabalhos de backup/restore ou ainda instruções para o operador de backup (diferentes perfis).
– 100% compatível com o esquema GFS.
– Única ferramenta de backup multi-banco-de-dados.


Mas chega de papo e vamos dar inicio a instalação do bacula por compilação de pacotes para termos independência de versão do Linux.
Entre no diretório onde vai baixar o o código fonte:
root# cd /usr/src
Crie o diretório pra baixar o código fonte e faça o download do mesmo:
root# mkdir install
root# cd install/
root# wget http://sourceforge.net/projects/bacula/files/latest/download?source=files

Descompacte e entre no diretório:
root# tar –xzvf bacula-5.2.2.tar.gz
root# cd bacula-5.2.2

Instale as dependências do Banco de dados para poder compilar o Bacula:
root# yum install mysql-server mysql-devel mysql
Pode ser necessário instalar os pacotes gcc-c++ e gcc, se for o caso é so digitar: yum install gcc-c++ gcc
Vamos configurar o código fonte com o suporte ao banco e compilá-lo:
root# ./configure –with-mysql
root# make
root# make install

Entramos no diretório criado depois da instalação:
root# cd /etc/bacula
O Bacula possui um script para iniciar todos os módulos de forma e ordem correta:
root# ./bacula start
Se estiver tudo certo voce verá a seguinte mensagem:

Agora só resta configurar o MySQL, o que é tarefa fácil, já que o bacula tem pronto todos os scripts para criação do banco:
root# service mysqld start
Cria o banco de dados Bacula:
root# /etc/bacula/create_mysql_database
Cria as tabelas do banco:
root# /etc/bacula/make_mysql_tables
Cria o usuário bacula e define os privilégios:
root# /etc/bacula/grant_mysql_privileges
Obs.: todos os scripts podem ser passar usuário e senha do banco caso necessário (ex: create_mysql_database -u root -psuasenha)
Para instalar somente o client, voltamos a pasta que descompactamos o código fonte:
root# cd /usr/src/install/bacula-5.2.2
root# ./configure –enable-client-only
root# make
root# make install

Já temos o nosso bacula instalado, nos próximos posts vou ensinar a configurar os dispositivos do Bacula.
Bio: Analista de Suporte, curioso e apaixonado pela profissão. Estou descobrindo o universo livre e cada dia ficando mais envolvido. Nas horas vagas fico brincando de levantar VMs para testar novos programas sempre em CentOS.
PS: Além de bom amigo e um aluno sempre disposto a aprender.
Espero que tenha ajudado nas dúvidas iniciais e que junto com os próximos artigos que o Rodrigo fará possa fazer com que Backup não seja mais um problema. Não esqueçam de assinar nosso Portal e divulgar para que possamos crescer cada vez mais.

    Comments

    1. É um enorme prazer colaborar com o CooperaTI, um site que tem me ajudando muito no dia a dia como Analista de Suporte.
      Já esta no forno o próximo post e logo envio explicando todos os componentes do Bacula e suas configurações.
      Um grande abraço a todos.

    2. Ótimo post Rodrigo.
      Abraço!

    3. E ae Rodrigo!
      Legal o Post.
      Me tire uma dúvida: o Bacula faz backup para discos locais e para discos externos, ou somente unidades de Fita?

      • Ola Diego,
        Faz backup para discos locais e externos sim, eu particularmente acho mais pratico pq não tem interversão humana e deixa o processo mais automatizado para quem não tem robô de fita.
        Mas pense em redundância e contingencia, nunca deixe seu backup em um único lugar e tenha um espelhamento desse disco para caso de falha do HD. Um dica simples e legal é um rotina GFS em disco e uma segunda rotina periódica em storage online por exemplo.
        Qualquer duvida pode perguntar.
        Abraços.

    4. Olá Rodrigo Ramos, parabéns pelos esclarecimentos e aguardo os complementos.
      Tire uma dúvida o Bácula faz o bkp de banco de dados SQL? se fizer tem alguma rotina que configura tipos como incremental e etc… Se estou falando besteira desculpa pois é uma dúvida que tive agora pensando no meu ambiente de trabalho, onde tenho uma unidade de fita que tem um software de backup o Symantec Backup Exec, o que acho complicado e o custo é alto pelas licenças.
      Abraço pra ti e o grande incentivador Professor Vagner Fonseca.

      • Bom dia Wilson,
        O Bacula faz sim backup de banco de dados, porem a maneira de fazer backup varia de acordo com o SGBD, no MS SQL Server podemos agendar a rotina diretamente pelo bacula-dir e fazer com que somente copie essa pasta, ou podemos realizar dumps através de scripts executados pelo Bacula: Criamos um arquivo.bat no windows com o seguinte comando por exemplo
        C:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe” -E -Q “BACKUP DATABASE mydatabase TO DISK=’C:\bkp\mssql.bak’ WITH FORMAT”
        E dentro do bacula-dir.conf no parâmetro job

        Job {

        ClientRunBeforeJob = C:/arquivo.bat
        Fail Job On Error = Yes

        }

        Quanto ao script .bat alguns links podem te ajudar a entender melhor:
        http://msdn.microsoft.com/en-us/library/aa225964%28SQL.80%29.aspx
        Ja para agendar o backup direto pelo SQL Server e somente copiar a pasta com bacula sugiro esse link:
        http://technet.microsoft.com/pt-br/library/cc966495%28en-us%29.aspx
        Dica: no caso do SQL Server, BD2 e Oracle, o mais fácil é usar o agendamento do próprio SGBD e fazer o backup por lá, e usar o Bacula para copiar essas arquivos.

    5. Simplesmente maravilhoso tutorial e orientação sobre o Bacula.
      O site também esta muito maneiro, continuem assim que o sucesso sera a a consequência do trabalho de vocês!
      Abraco!

    Deixe uma resposta

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    © 2019 All Rights Reserved. Cooperati. 

    Deseja uma consultoria especializada?