Home > Sistemas de backup para empresas. Backup en una empresa. > Herramientas de copia de seguridad de datos para empresas > Software de copia de seguridad SQL Server. Backup base de datos SQL Server.

Software de copia de seguridad SQL Server de Bacula

Realice backup de bases de datos MS SQL de forma rápida y cómoda. 

Entre su amplia gama de características, Bacula Enterprise también realiza copias de seguridad de sus datos de Windows con una impresionante combinación de facilidad y funcionalidad.

Esto incluye la posibilidad de realizar copias de seguridad rápidas y cómodas con nuestra herramienta de copia de seguridad de MS SQL. Ahora puede hacer una copia de seguridad precisa de cantidades muy grandes de datos específicos basados en Windows en su servidor SQL a una fracción de los costes de la competencia, y conseguir una restauración de SQL Server a tiempo.

Utilice Bacula para evitar utilizar varias soluciones de copia de seguridad o tener una protección inadecuada de ransomware.

sql server backup tool

Más opciones - Software de copia de seguridad SQL más sofisticado

El software de copia de seguridad SQL de Bacula Systems ofrece un rendimiento excepcional a través de una arquitectura moderna y altamente fiable y le ofrece las siguientes capacidades de la herramienta de copia de seguridad de SQL Server:

  • Copias de seguridad completas, incrementales y diferenciales de SQL Server
  • Copia de seguridad de SQL a nivel de base de datos
  • Recuperación puntual (PITR)
  • Capacidad de incluir/excluir bases de datos del trabajo de copia de seguridad
  • Soporte para copias de seguridad de tipo "copy-only"
  • Restaurar los archivos de copia de seguridad de MS SQL en el sistema de ficheros
  • Enviar el flujo de copias de seguridad directamente al demonio de almacenamiento
  • Comando de complemento de suma de comprobación y opción de restauración para pedir al servidor SQL que verifique la suma de comprobación de los datos
#
Herramientas de copia de seguridad de SQL Server - independientes del motor VSS

El software de copia de seguridad de MS SQL de Bacula no utiliza instantáneas VSS para realizar la copia de seguridad, por lo que es posible especificar " Enable VSS = no" en el FileSet de Bacula. Esta solución de copia de seguridad del servidor MSSQL consigue capacidades avanzadas de copia de seguridad y restauración a través de la API de Microsoft para SQL Server. Por lo tanto, también soportamos los mecanismos de seguridad y los tipos de autenticación que vienen con Microsoft SQL Server.

#
Cifrado y compresión de las copias de seguridad de SQL Server

Con las capacidades de compresión de las copias de seguridad de SQL Server de Bacula Enterprise podrá disfrutar de una copia de seguridad eficiente con compresión y, por tanto, con una utilización mucho menor del ancho de banda de la red. Las tecnologías de seguridad de Bacula incluyen el cifrado EFS o TLS que le permite enviar las copias de seguridad de MS SQL de forma segura desde el File Daemon hasta el Storage Daemon.

#
Copia de seguridad del registro de transacciones y PITR

Bacula Enterprise le permite restaurar un conjunto de datos MSSQL o una configuración concreta desde un momento muy preciso del pasado. Con los modelos de recuperación completa o masiva podrá hacer PITR o utilizar la información LSN para restaurar al estado exacto que desee tener. Puede restaurar exactamente al estado deseado de la base de datos en un momento muy concreto, incluso hasta un segundo exacto. A partir de una copia de seguridad del registro de transacciones, una restauración compondrá el estado de la base de datos a partir de una variedad de tipos de copia de seguridad de SQL Server elegidos.

 

#
Automatización de copias de seguridad

Con las capacidades de programación y las funciones de scripting de Bacula Enterprise podrá implementar la automatización de las copias de seguridad de SQL Server y reducir el tiempo de gestión de sus copias de seguridad. Los trabajos de copia de seguridad para su SQL Server pueden lanzarse utilizando scripts o el programador.

Opciones de software de copia de seguridad SQL

Copia de seguridad completa

La copia de seguridad completa guarda los archivos de la base de datos y el registro de transacciones para proporcionar una protección completa contra los fallos de los medios. Si uno o más archivos de datos se dañan, la recuperación del medio puede restaurar todas las transacciones comprometidas. Las transacciones en proceso se revierten. La base de datos maestra y la base de datos mbdb siempre se respaldan en este modo.

Copia de seguridad diferencial

Una copia de seguridad diferencial se basa en la copia de seguridad completa de la base de datos más reciente, anterior. Una copia de seguridad diferencial captura sólo los datos que han cambiado desde esa copia de seguridad completa. Cuando se utiliza la función de copia de seguridad diferencial, la cadena de copias de seguridad es muy crítica. Si por alguna razón, la copia de seguridad completa utilizada como referencia por MS SQL no está disponible, los datos diferenciales no serán utilizables. Las herramientas de copia de seguridad y restauración de SQL de Bacula utilizan diferentes técnicas para evitar este problema, por lo que si se detecta un problema, la copia de seguridad de la base de datos Diferencial podría actualizarse automáticamente a una copia de seguridad Completa.

Respaldo del registro de transacciones

La función "Transaction Log Backup" de MS SQL se implementa como el nivel "Incremental" con Bacula. La base de datos debe estar configurada con el modelo de recuperación completa o con el modelo de recuperación de registro masivo. Si la base de datos utiliza el modelo de recuperación simple, el archivo del registro de transacciones se truncará después de cada punto de control y la copia de seguridad del registro de transacciones no permitirá la recuperación "Point in Time". La restauración completa será posible, pero no la restauración a un punto en el tiempo.

Configuración de la base de datos MS SQL

Se debe realizar una copia de seguridad de la base de datos maestra. Si la maestra sufre algún tipo de daño, por ejemplo, debido a un fallo de los medios de comunicación, es posible que una instancia de MS SQL no pueda iniciarse. En este caso, es necesario reconstruir el maestro y luego restaurar la base de datos a partir de una copia de seguridad. Sólo se pueden crear copias de seguridad completas de la base de datos del maestro.

Restauración de SQL Server

Puede utilizar todas las formas habituales para iniciar una restauración. Sin embargo, debe asegurarse de que si restaura datos diferenciales, también se restaura la copia de seguridad completa anterior. Esto ocurre automáticamente si inicia la restauración, en bconsole, utilizando las opciones de restauración 5 o 12. En el árbol de archivos generado, debe marcar las bases de datos completas o las instancias de las bases de datos.

Opciones de restauración

Bacula Enterprise está diseñado para dar al usuario muchas opciones en el proceso de recuperación de datos, y restaurar los datos en una variedad de formas diferentes. Algunas de estas opciones se utilizan comúnmente al restaurar como:

  • El Where parámetro: Al igual que las funciones habituales de Bacula Enterprise, el parámetro permite al administrador restaurar los datos en un lugar específico.
  • El parámetro Replace parámetro: Se utiliza para dictar cómo debe comportarse Bacula con los datos existentes al restaurar.

Además de esto, el propio plugin de copia de seguridad de SQL Server aporta más opciones de restauración que son más completas, como:

  • Instance: Como MS SQL maneja varias instancias, el plugin MS SQL de Bacula Enterprise Edition le permite elegir cuál restaurar. La granularidad fina es la clave. Este parámetro es opcional y si no se establece, la restauración utilizará el valor de copia de seguridad y restauración de MS SQL establecido en el momento de la copia de seguridad. Por defecto, el nombre de la instancia es "MSSQLSERVER".
  • Database. Esta opción especifica el nombre de las bases de datos que se van a restaurar, y utiliza el valor de MS SQL Backup and Restore establecido en el momento de la copia de seguridad. Este parámetro es opcional. Por defecto, el complemento utilizará la opción Where para determinar el nombre de la nueva base de datos. Si tanto Where y Database se establecen en un nombre de base de datos válido, Database se utilizará.
  • User. Es el nombre de usuario utilizado para conectarse a la instancia de MS SQL. Este parámetro es opcional, y si no se establece, la restauración utilizará el valor establecido en el momento de la copia de seguridad.
  • Password. La contraseña utilizada para conectarse a la instancia de MS SQL. Este parámetro es opcional y, si no se establece, la restauración utilizará el valor establecido en el momento de la copia de seguridad.
  • Domain. Se trata del dominio utilizado para conectarse a la instancia de MS SQL. Este parámetro es opcional y si no se establece, la restauración utilizará el valor establecido en el momento de la copia de seguridad.
  • Recovery. Especifica si la base de datos utilizará la opción RECOVERY o NORECOVERY durante la restauración. Por defecto, la base de datos restaurada se recuperará.
  • Stop_before_mark. Para utilizar la cláusula WITH STOPBEFOREMARK = <point> para especificar que el registro de bitácora que está inmediatamente antes de la marca es el punto de recuperación. El punto puede ser una fecha-hora, un número LSN o un nombre_de_marca.
  • Stop_at_mark. Para utilizar la cláusula WITH STOPATMARK = <point> para especificar que la transacción marcada es el punto de recuperación. STOPATMARK avanza hasta la marca e incluye la transacción marcada en el avance. El punto puede ser una fecha-hora, un número LSN o un nombre_de_marca.
  • Stop_at=<datetime>. Para utilizar la cláusula WITH STOPAT = <datetime> para especificar que la fecha-hora es el punto de recuperación.
  • Restrict_user. Para utilizar la cláusula WITH RESTRICT_USER para restringir el acceso a la base de datos restaurada. El valor predeterminado es no.

En el BWeb Management Suite de Bacula System, las opciones de los plugins están disponibles en la pestaña de restauración.

Restore options tab when using BWeb Management Suite

Punto en el tiempo de restauración de SQL Server

Este tema sólo es relevante para las bases de datos de SQL Server que utilizan los modelos de recuperación de registro completo o masivo. Bajo el modelo de recuperación de registro masivo, si una copia de seguridad de registro contiene cambios de registro masivo, la recuperación punto en el tiempo no es posible hasta un punto dentro de esa copia de seguridad. La base de datos debe recuperarse hasta el final de la copia de seguridad del registro de transacciones.

Es posible realizar una restauración de punto en el tiempo de una base de datos MS SQL directamente desde el complemento MS SQL. También es posible restaurar los archivos localmente y hacer la operación desde la consola de gestión de Microsoft SQL Server para tener más opciones.

Información sobre el LSN

Los LSN se utilizan internamente durante una secuencia de RESTAURACIÓN para rastrear el punto en el tiempo al que se han restaurado los datos. Cuando se restaura una copia de seguridad, los datos se restauran en el LSN correspondiente al punto en el que se tomó la copia de seguridad.

El LSN de un registro de registro en el que se produjo un determinado evento de copia de seguridad y restauración se puede ver utilizando una o varias de las siguientes opciones:

  • Salida del trabajo de copia de seguridad de Bacula
  • Nombres de archivos de registro
  • Tabla msdb.backupset
  • Tabla msdb.backupfile

Durante un trabajo de copia de seguridad con el módulo MS SQL, se mostrará la siguiente información sobre los números LSN en la salida del trabajo:

 

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

El número del First LSN corresponde al last LSN de la última copia de seguridad de los registros de transacciones. Puede ser la primera copia de seguridad completa o la última copia de seguridad transaccional (incremental). El número Last LSN corresponde a la última transacción registrada en el registro.

Con una copia de seguridad del registro de transacciones (Incremental), el nombre del archivo asociado a esta base de datos en el trabajo Incremental será:

 

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

El número en el nombre, aquí 42000162001 corresponde al last LSN del trabajo anterior (completo o incremental).

sql server full database backupEn el ejemplo mostrado en la Fig 2, si el administrador necesita restaurar la base de datos en el estado que corresponde al LSN 14, puede hacerlo con las siguientes acciones:

  • Utilice la opción 5 del menú de restauración
  • Busque el directorio de la base de datos "/@mssql/db29187"
  • Seleccione el último archivo de copia de seguridad completa "data.bak" (LSN: 10)
  • Seleccione la copia de seguridad incremental "log-10.trn"
  • Especifique la opción stop_at_mark en "lsn:14"
  • Ejecute el trabajo de restauración

o si la última copia de seguridad completa de SQL no está disponible pero sí la anterior.

  • Utilice la opción 3 del menú de restauración, seleccione los jobids correspondientes
  • Busque el directorio de la base de datos "/@mssql/db29187"
  • Seleccione el archivo de copia de seguridad completa "data.bak" (LSN: 2)
  • Seleccione las copias de seguridad incrementales "log-2.trn", "log-3.trn", "log-10.trn"
  • Especifique la opción stop_at_mark en "lsn:14"
  • Ejecute el trabajo de restauración

Descripción de los escenarios de restauración de SQL

Descripción Donde Base de datos Ejemplo
Restaurar archivos en el disco Ruta where=c:/tmp
Restaurar la base de datos original where=/
Restaurar con un nuevo nombre Nombre where=newdb
Restaurar con un nuevo nombre Nombre database=newdb
Restaurar con un nuevo nombre y reubicación de archivos Ruta Nombre where=c:/tmp
database=newdb

Escenarios de restauración

Restaurar con el mismo nombre

Para restaurar una base de datos con el mismo nombre, el parámetro where debe estar vacío o "/" y la opción replace= debe estar establecida en always o la base de datos original debe ser eliminada primero.

 

* 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):


Restaurar la base de datos SQL con un nuevo nombre

Para restaurar una base de datos con un nuevo nombre, puede ser necesario reubicar los archivos de la base de datos en el disco. Depende de si la base de datos original todavía está presente.

Si la base de datos original ya no está disponible, el parámetro where o la base de datos "Opciones del plugin" puede contener el nuevo nombre de la base de datos, y el plugin se encargará automáticamente de la creación de la base de datos con el nuevo nombre.

Si la base de datos original sigue siendo necesaria, el parámetro where se utiliza para reubicar los archivos en el disco, y el nuevo nombre de la base de datos debe establecerse con el menú "Opciones del plugin" con la opción de base de datos. El layout.dat debe ser seleccionado en el árbol de restauración.

 

* 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 <-----------------

Restaurar SQL al disco local

Al especificar where=c:/ruta/, los archivos se restaurarán en el sistema de archivos local y el administrador de MS SQL puede utilizar un TSQL o la consola de gestión de Microsoft SQL Server para restaurar la base de datos. Los comandos SQL necesarios para restaurar la base de datos se imprimen en la salida del trabajo como se muestra en el siguiente ejemplo.

 

* 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

Restaurar la base de datos "maestra"

Las instrucciones sobre cómo restaurar la base de datos "maestra" se detallan en este artículo: https://technet.microsoft.com/en-us/library/aa213839%28v=sql.80%29.aspx

Base de datos en estado de restauración

Al final de una restauración, si la opción de recuperación del plugin se estableció como no, la base de datos restaurada estará en el estado "restaurando". Para finalizar el proceso de restauración, debe ejecutarse el proceso de recuperación. Se puede hacer con el siguiente comando SQL:

 

RESTORE [yourdatabase] WITH RECOVERY;


Más información sobre la copia de seguridad de SQL: