Home > Backup de dados corporativos > Ferramentas de Backup de Dados Corporativos > Melhor software e ferramentas de backup do SQL Server

Ferramentas do Software de Backup para SQL Server da Bacula

Faça backups e restaurações de maneira rápida e conveniente com nossas ferramentas de backup para MS SQL Server.

Entre sua vasta gama de recursos, o Bacula Enterprise também faz backup de seus dados do Windows com uma combinação impressionante de facilidade e funcionalidade.

Isso inclui a capacidade de fazer backups de maneira rápida e conveniente usando nossa ferramenta de backup para MS SQL. Agora, você pode fazer backup de grandes quantidades de dados específicos baseados no Windows em seu SQL Server a um custo muito menor do que o da concorrência, além de poder fazer restaurações Point In Time.

Escolha o Bacula para evitar o uso de múltiplas soluções de backup, ou ter proteção inadequada contra ransomwares.

 

sql server backup tool

Mais opções: O software mais sofisticado de backup para SQL

O software de backup para SQL do Bacula oferece um desempenho excepcional através de uma arquitetura moderna altamente confiável e disponibiliza à você as seguintes funcionalidades para SQL Server:

  • Backups completos, incrementais e diferenciais do SQL Server
  • Backup do SQL a nível de banco de dados
  • Recuperação point in time (PITR)
  • Capacidade de incluir/excluir bancos de dados da tarefa de backup
  • Suporte para backups de “Apenas Cópia”
  • Restauração de arquivos de backup do MS SQL para disco
  • Enviar fluxo de backup diretamente para o Storage Daemon
  • Comando checksum e opção de restauração para pedir ao SQL Server para verificar o checksum dos dados
#
Ferramentas de backup do SQL Server – independente do motor do SAV

O software de backup para MS SQL do Bacula não usa snapshots do VSS para fazer o backup, portanto é possível especificar “Enable VSS = no” no FileSet do Bacula. Essa solução de backup para MS SQL Server alcança capacidades avançadas de backup e restauração através da API da Microsoft para SQL Server. Portanto, nós também suportamos os mecanismos de segurança e tipos de autenticação que vêm com o Microsoft SQL Server.

#
Criptografia e Compressão do Backup para SQL Server

Com a capacidade de compressão de backup para SQL Server do Bacula Enterprise, você pode aproveitar uma compressão extremamente eficiente e, portanto, fazer backups com muito menos utilização da largura de banda. As tecnologias de segurança do Bacula incluem criptografia EFS ou TLS que lhe permite enviar backups do MS SQL de forma segura do File ao Storage Daemon.

#
Backup do Log de Transação e PITR

O Bacula Enterprise permite que você restaure um conjunto de dados do MS SQL ou uma configuração particular de um ponto no passado muito preciso. Com modelos de recuperação full ou bulk-logged, você poderá fazer o PITR ou usar as informações do LSN para restabelecer o estado exato que deseja. Você poderá restabelecer exatamente o estado exigido do banco de dados em um momento muito específico, até mesmo até um segundo exato. A partir de um backup do log de transações, uma restauração comporá o estado do banco de dados a partir de uma variedade de tipos de backup do SQL Server escolhidos.

 

#
Automação do Backup

Com a capacidade de agendamento e os recursos de script do Bacula Enterprise, você pode implementar a automação de backups do SQL Server e reduzir o tempo para administrar seus backups. As tarefas de backup para seu SQL Server podem ser lançadas usando lógica de programação e programação de scripts.

Opções de Backup para SQL

Backup completo

O backup completo salva os arquivos do banco de dados e o log de transações para proporcionar proteção completa contra falhas da mídia. Se um ou mais arquivos de dados forem danificados, a recuperação da mídia pode restaurar todas as transações comprometidas. Nesse caso, as transações em processo são revertidas. Os bancos de dados master e mbdb são sempre copiados nesse modo.

Backup diferencial

Um backup diferencial é baseado no backup completo mais recente e anterior do banco de dados. Um backup diferencial captura apenas os dados que mudaram desde esse backup completo. Ao usar o recurso de backup diferencial, a cadeia de backups torna-se muito crítica. Se, por alguma razão, o backup completo usado como referência pelo MS SQL não estiver disponível, os dados diferenciais não poderão ser usados. O backup para SQL e as ferramentas de restauração do Bacula usam técnicas diferentes para evitar esse problema, portanto, se um problema for detectado, o backup diferencial do banco de dados poderá ser automaticamente atualizado para um backup completo.

Backup do log de transações

O recurso “Transaction Log Backup”, ou Backup do log de transações, do MS SQL é implementado como o nível “Incremental” com o Bacula. No caso, o banco de dados deve ser configurado com o modelo de recuperação completa ou em bloco. Se o banco de dados usar o modelo de recuperação simple, o arquivo do log de transações será truncado após cada ponto de verificação e seu backup não permitirá a recuperação point in time. A restauração completa será possível, mas não a restauração para um ponto específico no tempo.

Configuração do banco de dados MS SQL

Deve ser feito backup do banco de dados master. Se ele for danificado de alguma forma, por exemplo, devido a falha de mídia, uma instância do MS SQL pode não conseguir ser iniciada. Nesse caso, é necessário reconstruir o master, e depois restaurar o banco de dados a partir de um backup. Somente backups completos do master podem ser criados.

Restauração do SQL Server

Você pode usar todas as maneiras regulares para iniciar uma restauração. No entanto, você deve se certificar de que, se restaurar os dados diferenciais, o backup anterior completo também seja restaurado. Isso acontece automaticamente se você iniciar a restauração, no bconsole, usando as opções de restauração 5 ou 12. Na árvore de arquivos gerada, você deve marcar ou bancos de dados completos ou instâncias de bancos de dados.

Opções de restauração

O Bacula Enterprise é feito para dar ao usuário muitas opções no processo de recuperação de dados, e restaurar os dados de uma variedade de maneiras diferentes. Algumas dessas opções são comumente usadas durante a restauração, como:

  • o parâmetro Where: Assim como os recursos usuais do Bacula Enterprise, esse parâmetro permite ao administrador restaurar os dados para um lugar específico.
  • o parâmetro Replace: Ele é usado para definir como o Bacula deve se comportar com os dados existentes ao restaurar.

Além disso, o próprio plugin de backup do SQL Server traz mais opções de restauração que são mais abrangentes, como por exemplo:

  • Instance: Como o MS SQL trata de várias instâncias, o plugin MS SQL do Bacula Enterprise permite que você escolha qual delas deve ser restaurada. Uma incrível granularidade é o segredo aqui. Esse parâmetro é opcional e se não for definido, o restore usará o valor de backup e restauração do MS SQL definido no momento do backup. Por padrão, o nome da instância é “MSSQLSERVER”.
  • Database. Essa opção especifica o nome dos bancos de dados a serem restaurados, e usa o valor de backup e restauração do MS SQL estabelecido no momento do backup. Esse parâmetro é opcional. Por padrão, o plugin usará a opção Where para determinar o nome do novo banco de dados. Se ambos Where e Database forem definidos para um nome válido de banco de dados, o Database será usado.
  • User. Este é o nome de usuário usado para se conectar com a instância do MS SQL. Esse parâmetro é opcional, e se não for definido, o restore usará o valor definido no momento do backup.
  • Password. A senha usada para conectar com a instância do MS SQL. Esse parâmetro é opcional e se não for definido, o restore usará o valor definido no momento do backup.
  • Domain. Isso é para o domínio usado para se conectar com a instância do MS SQL. Esse parâmetro é opcional e, se não for definido, o restore usará o valor definido no momento do backup.
  • Recovery. Isso especifica se o banco de dados usará as opções RECOVERY ou NORECOVERY durante a restauração. Por padrão, o banco de dados restaurado será recuperado.
  • Stop_before_mark. Para usar a cláusula WITH STOPBEFOREMARK = <point> cláusula para especificar que o registro de registro que está imediatamente antes da marca é o ponto de recuperação. O ponto pode ser uma data/hora, um número LSN ou um mark_name.
  • Stop_at_mark. Para usar a cláusula WITH STOPATMARK = <point> para especificar que a transação marcada é o ponto de recuperação. O STOPATMARK realiza um roll foward até a marca e inclui a transação marcada nele. O ponto pode ser uma data/hora, um número LSN ou um mark_name.
  • Stop_at=<datetime>. Para usar a cláusula WITH STOPAT = <datetime> para especificar que a hora da data é o ponto de recuperação.
  • Restrict_user. Para usar a cláusula WITH RESTRICT_USER para restringir o acesso ao banco de dados restaurado. O padrão é não.

No BWeb Management Suite da Bacula System, as Opções de Plugin estão disponíveis na aba restore.

Restore options tab when using BWeb Management Suite

Restauração point in time do SQL Server

Esse tópico é relevante apenas para bancos de dados SQL Server que usam os modelos de recuperação full ou bulk-logged. No modelo de recuperação bulk-logged, se um backup de log tiver mudanças bulk-logged, a recuperação point in time não é possível até certo ponto dentro desse backup. O banco de dados deve ser recuperado para o final do backup do log de transações.

É possível fazer a recuperação point in time de um banco de dados MS SQL diretamente do Plugin MS SQL. Também é possível restaurar arquivos localmente e fazer a operação a partir do Console de Gerenciamento do Microsoft SQL Server para ter mais opções.

Informações LSN

Os LSNs são usados internamente durante uma sequência RESTORE para rastrear o ponto no tempo para o qual os dados foram restaurados. Quando um backup é restaurado, os dados são recuperados para o LSN correspondente ao ponto no tempo em que o backup foi feito.

O LSN de um registro de log no qual ocorreu um determinado evento de backup e restauração é visualizado usando um ou mais dos seguintes itens:

  • Saída da tarefa de backup do Bacula
  • Nomes dos arquivos de log
  • Tabela msdb.backupset
  • Tabela msdb.backupfile

Durante uma tarefa de backup com o módulo MS SQL, as seguintes informações sobre os números LSN serão mostradas na saída da tarefa:

 

win-fd JobId 3: LSN for “db29187”: First: 42000146037, Last: 44000172001

O primeiro número LSN corresponde ao último LSN do último backup dos logs de transação. Pode ser o primeiro backup full, ou o último backup transacional (Incremental). O último número LSN corresponde à última transação registrada no log.

No backup do log de transações (Incremental), o nome do arquivo associado a esse banco de dados será:

 

/@mssql/MSSQLSERVER/db29187/log-42000162001.trn

O número no nome, que aqui é 42000162001, corresponde ao último LSN da tarefa anterior (Full ou Incremental).

No exemplo mostrado na Fig. 2, se o administrador precisar restaurar o banco de dados no estado que corresponde ao LSN 14, isso pode ser feito com as seguintes ações:

  • Use a opção 5 do menu restore
  • Procure no diretório do banco de dados “/@mssql/db29187”
  • Selecione o último arquivo de backup full “data.bak” (LSN: 10)
  • Selecione o backup incremental “log-10.trn”
  • Especifique a opção stop_at_mark para “lsn:14”
  • Execute a tarefa de restauração

ou se o último backup full do SQL não estiver disponível, mas o anterior estiver:

  • Use a opção 3 do menu restore, selecione as jobids relevantes
  • Procure no diretório do banco de dados “/@mssql/db29187”
  • Selecione o arquivo de backup full “data.bak” (LSN: 2)
  • Selecione os backups incrementais “log-2.trn”, “log-3.trn”, “log-10.trn”
  • Especifique a opção stop_at_mark para “lsn:14”.
  • Execute a tarefa de restauração

Visão Geral dos Cenários de Restauração do SQL

Descrição Onde Banco de dados Exemplo
Restaura os arquivos em disco Caminho where=c:/tmp
Restaura o banco de dados original where=/
Restaura com um novo nome Nome where=newdb
Restaura com um novo nome Nome database=newdb
Restaura com um novo nome e realocação de arquivos Caminho Nome where=c:/tmp
database=newdb

Cenários de Restauração

Restauração com o mesmo nome

Para restaurar um banco de dados com o mesmo nome, o parâmetro where deve estar vazio ou com “/” e a flag replace= deve ser definida para always, ou o banco de dados original deve ser descartado primeiro.

 

* restore where=/ replace=always

Using Catalog “MyCatalog”
Run Restore job
JobName: RestoreFiles
Bootstrap: /opt/bacula/working/127.0.0.1-dir.restore.1.bsr
Where: /
Replace: Always
FileSet: Full Set
Backup Client: win2008-fd
Restore Client: win2008-fd
Storage: File
When: 2015-12-14 09:53:36
Catalog: MyCatalog
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no):

Restauração do banco de dados SQL com um novo nome

Para restaurar um banco de dados com um novo nome, talvez seja necessário deslocar os arquivos do banco de dados em disco. Vai depender se o banco de dados original ainda estiver presente.

Se o banco de dados original não estiver mais disponível, o parâmetro where ou o “Plugin Options” pode conter o novo nome do banco de dados, e o plugin tratará automaticamente da criação com o novo nome.

Se o banco de dados original ainda for necessário, o parâmetro where deve ser usado para realocar os arquivos em disco, e o novo nome do banco de dados deve ser definido com o menu “Plugin Options”. O layout.dat deve ser selecionado na árvore de restauração.

* restore where=c:/tmp replace=always

Using Catalog “MyCatalog”
Run Restore job
JobName: RestoreFiles
Bootstrap: /opt/bacula/working/127.0.0.1-dir.restore.1.bsr
Where: c:/tmp
Replace: Always
FileSet: Full Set
Backup Client: win2008-fd
Restore Client: win2008-fd
Storage: File
When: 2015-12-14 09:53:36
Catalog: MyCatalog
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): mod <—————–
Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Restore Client
6: When
7: Priority
8: Bootstrap
9: Where
10: File Relocation
11: Replace
12: JobId
13: Plugin Options
Select parameter to modify (1-13): 13 <—————–
Automatically selected : mssql: database=db29187
Plugin Restore Options
instance: *None*
database: *None*
username: *None*
password: *None*
domain: *None*
recovery: *None* (yes)
stop_before_mark: *None*
stop_at_mark: *None*
stop_at: *None*
Use above plugin configuration? (yes/mod/no): mod <——————
You have the following choices:
1: instance (Instance used to restore)
2: database (New database name)
3: username (Username used for restore)
4: password (Password used for restore)
5: domain (Domain name of user (default to local))
6: recovery (Start Recovery)
7: stop_before_mark (Stop the recovery before a mark (STOPBEFOREMARK).
8: stop_at_mark (Stop the recovery at a mark (STOPATMARK).
9: stop_at (Stop at (STOPAT). {datetime})
Select parameter to modify (1-9): 2 <——————
Please enter a value for database: newdb <——————
Use above plugin configuration? (yes/mod/no): yes <——————
Using Catalog “MyCatalog”
Run Restore job
JobName: RestoreFiles
Bootstrap: /opt/bacula/working/127.0.0.1-dir.restore.1.bsr
Where: c:/tmp
Replace: Always
FileSet: Full Set
Backup Client: win2008-fd
Restore Client: win2008-fd
Storage: File
When: 2015-12-14 09:53:36
Catalog: MyCatalog
Priority: 10
Plugin Options: User Specified
OK to run? (yes/mod/no): yes <—————–

Restauração do SQL para disco local

Ao especificar where=c:/path/, os arquivos serão restaurados para o sistema de arquivos local e o administrador MS SQL poderá usar um TSQL ou o Console de Gerenciamento do Microsoft SQL Server para restaurar o banco de dados. Os comandos SQL necessários para fazer isso são impressos na saída da tarefa, como mostra o próximo exemplo.

* restore where=c:/tmp
First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.
To select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Select item: (1-13): 5
Automatically selected Client: win2008-fd
+——-+——-+———-+———-+———————+—————+
| jobid | level | jobfiles | jobbytes | starttime | volumename |
+——-+——-+———-+———-+———————+—————+
| 1 | F | 3 | 65,771 | 2015-12-14 09:52:31 | TestVolume001 |
| 2 | I | 2 | 65,771 | 2015-12-14 09:52:42 | TestVolume001 |
| 3 | I | 2 | 65,771 | 2015-12-14 09:52:52 | TestVolume001 |
+——-+——-+———-+———-+———————+—————+
You have selected the following JobIds: 1,2,3
Building directory tree for JobId(s) 1,2,3 …
6 files inserted into the tree.
You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the “all” keyword on the command line.
Enter “done” to leave this mode.
cwd is: /
$ cd @mssql
cwd is: /@mssql/
$ cd MSSQLSERVER
cwd is: /@mssql/MSSQLSERVER/
$ m db1684
6 files marked.
$ done
Bootstrap records written to /opt/bacula/working/127.0.0.1-dir.restore.1.bsr
The Job will require the following (*=>InChanger):
Volume(s) Storage(s) SD Device(s)
===========================================================================
TestVolume001 File FileStorage
Volumes marked with “*” are in the Autochanger.
2 files selected to be restored.
Using Catalog “MyCatalog”
Run Restore job
JobName: RestoreFiles
Bootstrap: /opt/bacula/working/127.0.0.1-dir.restore.1.bsr
Where: /tmp
Replace: Always
FileSet: Full Set
Backup Client: win2008-fd
Restore Client: win2008-fd
Storage: File
When: 2015-12-14 09:53:36
Catalog: MyCatalog
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): yes
Job queued. JobId=6
wait
You have messages.
* messages
$ done
17:18 dir JobId 6: Start Restore Job RestoreFiles.2015-12-14_17.18.18_14
17:18 dir JobId 6: Using Device “FileStorage” to read.
17:18 sd JobId 6: Ready to read from volume “TestVolume001” on file device “FileStorage” (/tmp/regress/tmp).
17:18 sd JobId 6: Forward spacing Volume “TestVolume001” to file:block 0:224.
17:18 fd JobId 6: RESTORE DATABASE [db1684] FROM DISK=’c:/tmp/@mssql/MSSQLSERVER/db1684/data.bak’
WITH BLOCKSIZE=65536, BUFFERCOUNT=10, MAXTRANSFERSIZE=65536, NORECOVERY , REPLACE
17:18 fd JobId 6: RESTORE DATABASE [db1684]
FROM DISK=’c:/tmp/@mssql/MSSQLSERVER/db1684/log-34000000014400001.bak’
WITH BLOCKSIZE=65536, BUFFERCOUNT=10, MAXTRANSFERSIZE=65536, NORECOVERY
17:18 fd JobId 6: RESTORE DATABASE [db1684]
FROM DISK=’c:/tmp/@mssql/MSSQLSERVER/db1684/log-34000000018400001.bak’
WITH BLOCKSIZE=65536, BUFFERCOUNT=10, MAXTRANSFERSIZE=65536, NORECOVERY
17:18 fd JobId 6: RESTORE DATABASE [db1684]
FROM DISK=’c:/tmp/@mssql/MSSQLSERVER/db1684/log-34000000029100001.bak’
WITH BLOCKSIZE=65536, BUFFERCOUNT=10, MAXTRANSFERSIZE=65536, NORECOVERY
17:18 sd JobId 6: End of Volume at file 0 on device “FileStorage” (/tmp/regress/tmp), Volume “TestVolume001”
17:18 fd JobId 6: RESTORE DATABASE [db1684]
FROM DISK=’c:/tmp/@mssql/MSSQLSERVER/db1684/log-36000000017200001.bak’
WITH BLOCKSIZE=65536, BUFFERCOUNT=10, MAXTRANSFERSIZE=65536, NORECOVERY
17:18 sd JobId 6: Elapsed time=00:00:01, Transfer rate=9.372 M Bytes/second
17:18 fd JobId 6: RESTORE DATABASE [db1684]
17:18 dir JobId 6: Bacula dir 8.4.8 (22Feb16):
Build OS: x86_64-unknown-linux-gnu archlinux
JobId: 6
Job: RestoreFiles.2015-12-11_17.18.18_14
Restore Client: win2008-fd
Start time: 14-Dec-2015 17:18:20
End time: 14-Dec-2015 17:18:22
Files Expected: 6
Files Restored: 6
Bytes Restored: 9,371,785
Rate: 4685.9 KB/s
FD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Restore OK

Restauração do banco de dados “master”

As instruções sobre como restaurar o banco de dados “master” estão detalhadas neste artigo: https://technet.microsoft.com/en-us/library/aa213839%28v=sql.80%29.aspx

Banco de dados em estado de restauração

No final de uma restauração, se a plugin option de recuperação foi definida para no, o banco de dados restaurado ficará estado de “restauração”. Para terminar o processo, a recuperação precisa ser executada. Isso pode ser feito com o seguinte comando SQL:

RESTORE [yourdatabase] WITH RECOVERY;

Mais informações sobre o backup para SQL: