Este Guia Rápido apresenta como usar o recurso Plugin MSSQL VDI do Bacula Enterprise. Ele suporta:
- Backups full e diferenciais
- Backup em nível incremental (log)
- Backup em nível de banco de dados
- Capacidade de incluir / excluir bancos de dados do Jobde backup
- Backups “somente cópia”
- Restaurar arquivos de backup do MSSQL no disco
- Fluxo de fluxo de dados diretamente para o Storage Daemon do Bacula
- PITR
- Backup de Cluster MSSQL
O Plug-in do MSSQL VDI foi testado e é suportado no Windows 2003 R2, Windows 2008 R2, Windows 2012, Windows 2016 e mais recentes, MSSQL 2005, em 2008, 2014 e superior.
Instalação
O pacote de plug-in do MSSQL VDI é normalmente instalado no mesmo host do Windows, onde o Bacula Client também deve ser instalado.
Baixe o instalador do Cliente e Plugin do seu repositório exclusivo de clientes:
bacula-enterprise-win64-10.0.2.exe bacula-enterprise-win64MSSQLPlugin-10.0.2.exe
Prossiga para a configuração usual do Cliente se ainda não estiver configurado, sempre como Administrador.
Após a instalação do Plugin, reinicie o Serviço de Cliente Bacula no Gerenciador de Serviços do Windows (services.msc) para carregar a biblioteca de plugins. Um comando status client do bconsole/bweb exibirá todos os plugins carregados.
Se o banco de dados do SQL Server estiver sendo executado em uma conta que não seja NT AUTHORIZED / SYSTEM, será obrigatório configurar a instância do SQL Server para permitir que a conta do serviço Bacula File Daemon se conecte e realize operações de backup. Por padrão, o serviço Bacula File Daemon é executado na conta NT AUTHORIZED / SYSTEM.
A permissão sysadmin pode ser concedida com o seguinte comando SQL:
ALTER SERVER ROLE [sysadmin] ADD MEMBER [NT AUTHORITYSYSTEM]
Ou como mostrado na Figura 1, pelo MSSQL Studio:
Figura 1. Permissão Usuário Backup Bacula Sysadmin
A Restauração Point In Time (PITR) requer que o banco de dados seja configurado com o modelo de recuperação completa (full recovery model). Se o banco de dados usar o modelo de recuperação simples, a transação arquivo de log será truncada após cada ponto de verificação. Para mais informações, veja https://msdn.microsoft.com/en-us/library/ms189275.aspx.
O recurso MSSQL “Backup de log de transações” é implementado como o nível “Incremental” com o Bacula. O banco de dados deve ser configurado com o modelo de recuperação completo (full recovery model) ou modelo de recuperação em massa (bulk-logged recovery model). Se o banco de dados usar o modelo de recuperação simples, o arquivo de log de transações será truncado após cada ponto de verificação. A restauração completa será possível, mas não a restauração para um ponto no tempo. Para mais informações, veja https://msdn.microsoft.com/en-us/library/ms189275.aspx.
Configuração
Configuração do FileSet
Conforme mostrado na Figura 2, crie um FileSet e continue com o include – Edit Plugin Options. Selecione MSSQL Plugin na caixa de combinação se estiver usando bweb.
Figura 2. FileSet Include, Opções de Plugin de Edição, Configuração MSSQL VDI.
Conforme exibido na Figura 3, se nada for alterado, o plug-in tentará fazer backup de todos os bancos de dados de instâncias de backup do MSSQL (o tempdb é excluído por padrão) e o seguinte é a configuração resultante.
Figura 3. Configuração do MSSQL VDI para Autenticação do Windows (padrão) e Backup de Todos os Bancos de Dados
Um usuário e senha do Windows também podem ser especificados da seguinte forma:
mssql: username=hfaria password=x
É possível selecionar diferentes instâncias ou bancos de dados para fazer o backup com os seguintes parâmetros: instance=, database=, include=, exclude=, domain=. Por exemplo.
mssql: include=test2 include=prod1 include=r7*
Outro exemplo, com instância MSSQL específica, autenticação de usuário do Windows (para MSSQL troque para server), senha, domínio e especificação de nome de host (local).
mssql: instance=MSSQLSERVER authtype=windows hostname=. domain=bacula.com.br user=usr_bacula password=xxx
Uma lista completa das opções de plug-in do MSSQL VDI está disponível no whitepaper de referência.
Como exibido na Figura 4, ainda na configuração FileSet, o MSSQL Plugin não usa snapshots VSS para executar o backup, a menos que alguma pasta de disco esteja presente no conjunto de arquivos, “Enable VSS” deve ser definido como “no” (desmarcado).
Figura 4. FileSet MSSQL VDI com opção VSS Desmarcada
Se você estiver utilizando um cluster Microsoft SQL o método pardão de conexão do backup (Shared Memory) não é suportado. Pode ser também que você deseje utilizar outro método, a exemplo de ODBC.
Crie um novo DSN de Sistema (System DSN) no Servidor Windows Cliente do Backup, lembrando de salvar os nomes DSN e do Driver. Ref.: https://support.microsoft.com/en-us/help/965049/how-to-set-up-a-microsoft-sql-server-odbc-data-source
Neste caso, o FileSet poderia ser configurado assim:
mssql: instance=MSSQLSERVER connection_string="DSN=bacula;Driver={ODBC Driver 13 for SQL Server}"
Configuração do Job
Crie uma nova tarefa de backup, associando-a à máquina MSSQL e ao recém-criado FileSet. Aplique as alterações de configuração do Director.
Execute um trabalho de backup de teste.
Restore
As opções where= e database= de restauração do Bacula definem que tipo de restauração de banco de dados será executada.
Descrição | where | rwhere | database | Exemplo |
---|---|---|---|---|
Restauração do banco original para o MSSQL | Origem | / | ||
Restaurar os arquivos do banco para disco | Caminho | where=c:/tmp | ||
Restaurar o banco com novo nome | DBname | where=newdb | ||
Alternativa restaurar o banco com novo nome | DBname | database=newdb | ||
Restaurar com um novo nome no MSSQL e realocação de arquivos de dados | Caminho | DBname | where=c:/tmp database=newdb | |
Restaurar com um novo nome no MSSQL e realocação de arquivos de dados individuais | Regex | DBname | regexwhere=!CLUSTER!MSSQLSERVER! database=newdb |
Referência
Para obter mais exemplos e detalhes, incluindo procedimentos de backup de grupos de disponibilidade do MSSQL Always On, consulte o white paper MSSQL Backup and Restore – Bacula Enterprise Edition. https://baculasystems.com
Disponível em: PortuguêsEnglish (Inglês)Español (Espanhol)