Inicio > Blog de copias de seguridad y recuperación > ¿Cómo hacer una copia de seguridad de la base de datos SQL? Resumen técnico de Bacula Systems.

¿Cómo hacer una copia de seguridad de la base de datos SQL? Resumen técnico de Bacula Systems.

1 Star2 Stars3 Stars4 Stars5 Stars
(28 votos, media: 5,00 fuera de 5)
Cargando...
Actualizado 2nd septiembre 2022, Rob Morrison

SQL se ha convertido en el estándar del sector para manipular y consultar datos en una base de datos relacional. En consecuencia, un área crítica de cualquier plan de copias de seguridad, incluidas muchas estrategias eficaces de recuperación de desastres, son las copias de seguridad de bases de datos SQL seguras, eficaces y rápidas, y lo que es aún más importante, la recuperación. Para que funcione de forma fiable se necesitan una implementación y unas políticas correctas, y esa parte es el objetivo principal de este artículo. Esta página analiza los principales tipos de copias de seguridad y algunas de las mejores prácticas generales de copia de seguridad. A continuación, lo demuestra en la práctica real, explicando también cómo configurar la copia de seguridad de la base de datos SQL con Bacula.

Tipos de copias de seguridad de bases de datos SQL

  • Copia de seguridad completa

La copia de seguridad «completa» de SQL Server es probablemente el nivel de copia de seguridad más sencillo: la única regla es hacer una copia de seguridad literalmente de todo, desde los datos habituales hasta las tablas del sistema, los objetos, etc. Estas copias de seguridad restaurarán todo su sistema al estado en que se encontraba en el momento de la última copia de seguridad. El truncamiento del registro de transacciones no se realiza mientras se realizan las copias de seguridad completas, pero se aconseja considerar el uso de las copias de seguridad de los registros de transacciones junto con las copias de seguridad completas, para minimizar y ayudar a identificar la cantidad de datos que pueden perderse en un escenario de desastre.

  • Copia de seguridad del registro de transacciones

Esto es algo diferente, ya que el registro de transacciones tiene como objetivo hacer una copia de seguridad de todo lo que ha sucedido, en lo que respecta a la base de datos, desde la última copia de seguridad del registro, completada con el truncamiento. Se utiliza para capturar todas las interacciones dentro de la base de datos, incluyendo tanto DML (lenguaje de manipulación de datos) como DDL (lenguaje de definición de datos). La copia de seguridad del registro de transacciones le permite restaurar su base de datos en casi cualquier momento que necesite, incluso justo antes de un desastre que haya causado la pérdida o corrupción de datos.

  • Grupo de archivos / Copia de seguridad de archivos

Esta es la que mejor funciona con bases de datos de gran tamaño. La diferencia entre esta copia de seguridad y la completa es que la primera almacena todos los datos en archivos / grupos de archivos (en caso de que haya más de uno). Este tipo en particular también requiere que el registro de transacciones esté respaldado y listo para restaurar con éxito todos los datos necesarios de esta copia de seguridad en particular.

  • Copia de seguridad diferencial

Como nivel de copia de seguridad complementario, el objetivo de la copia de seguridad diferencial de SQL Server es mantener toda la secuencia de operaciones de su base de datos sin almacenar los mismos datos varias veces. Un punto de inicio típico de una copia de seguridad diferencial es la última copia de seguridad completa realizada con la base de datos. Aunque sólo es útil cuando se utiliza junto con la copia de seguridad completa, permite potencialmente una gran reducción de la cantidad de datos perdidos si se produce algún tipo de violación o pérdida de datos de forma repentina.

  • Copia de seguridad de sólo lectura

La copia de seguridad de sólo copia podría considerarse una reserva dentro de una reserva, ya que la mayoría de las veces se realiza de forma ad hoc, sin perturbar el proceso de copia de seguridad de la base de datos existente. Es exactamente igual que una copia de seguridad completa, con una diferencia significativa: la copia de seguridad del registro de transacciones ignoraría por completo este tipo de copia de seguridad. Por eso, las copias de seguridad diferenciales y del registro de transacciones no se utilizan con este tipo de copia de seguridad en particular.

Diferentes métodos para crear copias de seguridad de SQL Server

Hay varias formas de realizar copias de seguridad y restauraciones de SQL utilizando una serie de herramientas, desde el software de gestión general incorporado como SSMS (SQL Server Management Studio), o algunas partes específicas del mismo, como SQL Server Agent, o incluso la herramienta de copia de seguridad de SQL más básica: la línea de comandos.

En primer lugar, SSMS es un software relativamente potente que puede realizar una gran cantidad de operaciones relacionadas con el servidor SQL, como la administración, la configuración y la gestión de diferentes componentes del servidor SQL. Entre la gran variedad de capacidades de SSMS también se encuentra la capacidad de realizar copias de seguridad de bases de datos del servidor SQL.

Podemos discernir tres tipos principales de copia de seguridad que se pueden crear con la ayuda de un SQL Server Management Studio – copia de seguridad del servidor SQL y restaurar a la ubicación predeterminada, copia de seguridad de la base de datos SQL a la ubicación personalizada y copias de seguridad a un contenedor de servicio de almacenamiento Azure Blob ya existente.

El primer tipo de copia de seguridad es probablemente el más fácil de realizar:

  1. Empezará por conectarse a la instancia correcta del servidor SQL mediante SSMS.
  2. El siguiente paso es expandir el árbol del servidor en la ventana «Object Explorer».
  3. En la carpeta «Databases» encontrará la base de datos de la que desea crear una copia de seguridad.
  4. Pulsando con el botón derecho del ratón sobre dicha base de datos le aparecerán una serie de opciones, deberá situarse sobre la de «Tasks» y elegir la opción «Back Up…» en la segunda parte del menú.
  5. Dado que la copia de seguridad se realiza en la ubicación predeterminada, no es necesario cambiar nada en la ventana «Back Up Database», por lo que basta con iniciar el proceso de copia de seguridad con el botón «OK».
  6. Una vez finalizado el proceso de copia de seguridad, al hacer clic en «OK» en la ventana de estado podrá finalizar todo el proceso de copia de seguridad.

Tenga en cuenta que se trata de una copia de seguridad completa y que puede tardar bastante tiempo en realizarse, dependiendo del tamaño total del servidor.

Realizar una copia de seguridad de la base de datos SQL con una ruta personalizada es ligeramente diferente del proceso anterior, la única diferencia comienza después de que se hayan realizado los primeros 4 pasos. Así que el proceso continúa con el paso 5:

  1. En la ventana «Back Up Database» tendrá que elegir «disk» en el menú desplegable de la línea «Back up to:».
  2. También tendrá que eliminar todas las rutas de copia de seguridad existentes utilizando el botón «Remove» hasta que no quede nada, y entonces podrá utilizar el botón «Add…» para llegar a la ventana «Select Backup Destination».
  3. Especificar la ruta del archivo de la ubicación de la copia de seguridad de destino y el nombre del archivo es el siguiente paso (también se recomienda utilizar .bak como extensión del archivo de destino para simplificar la clasificación).
  4. Al hacer clic en el botón «OK» en esta ventana y de nuevo en la de «Back Up Database» se iniciaría el proceso de copia de seguridad, y al hacer clic en «OK» una vez más después de eso le permite cerrar el cuadro de estado de la copia de seguridad de SSMS.

Hablando de ubicaciones de almacenamiento personalizadas, también es posible crear una copia de seguridad de la base de datos SQL y guardarla en el contenedor Azure Blob. El proceso es el mismo para los cuatro primeros pasos, y la principal diferencia está, de nuevo, en la ventana «Back Up Database»:

  1. En la línea «Back up to:» seleccione «URL» en lugar de «disk», y haga clic en el botón «Add…».
  2. Haga clic en «New container» si aún no ha registrado un contenedor de almacenamiento de Azure, o elija el existente si ya lo tiene en la lista.
  3. Iniciar sesión en su cuenta de Microsoft es un requisito y puede realizarse en la ventana de diálogo «Connect to a Microsoft Subscription».
  4. En ese mismo cuadro de diálogo tendrá la posibilidad de seleccionar la cuenta de almacenamiento, seleccionar el contenedor blob que servirá de almacenamiento y seleccionar la fecha de caducidad de la política de acceso compartido que está creando. El proceso de creación puede realizarse a través del botón «Create Credential».
  5. Al hacer clic en «OK» se cerrará la ventana «Connect to a Microsoft Subscription» y se volverá al cuadro de diálogo «Select a backup destination»
  6. Modifique el nombre del archivo de copia de seguridad si lo desea y vuelva a hacer clic en el botón «OK» para cerrar esta ventana. La copia de seguridad propiamente dicha puede iniciarse haciendo clic en el botón «OK» una vez más, en la parte inferior de la ventana «Back Up Database».

Mientras que SSMS se ocupa más de realizar las copias de seguridad manualmente, aplicaciones como SQL Server Agent se ocupan más de los trabajos y de la programación específica, lo que es comprensiblemente un poco más complejo que crear cada copia de seguridad por sí mismo.

SQL Server Agent también tiene dos formas diferentes de crear/programar copias de seguridad: utilizando diferentes trabajos y utilizando planes de mantenimiento del servidor.

Para utilizar trabajos como parte del proceso de copia de seguridad y restauración del servidor SQL, hay un patrón específico que debe seguir:

  1. Navegue hasta la carpeta «Jobs» y haga clic con el botón derecho del ratón. En el siguiente menú elija la opción «New Job…».
  2. En el siguiente cuadro de diálogo tendrá la posibilidad de especificar el nombre de su trabajo.
  3. La mayor parte de la personalización del trabajo puede realizarse mediante sentencias SQL. Aquí hay una que crea un nuevo paso de copia de seguridad (en la pestaña «Steps»):

USE CurrencyExchange

GO

BACKUP DATABASE [CurrencyExchange]

TO  DISK = N’G:\DatabaseBackups\CE.bak’

WITH CHECKSUM;

  1. Las sentencias SQL también pueden especificar el tipo de copia de seguridad para el trabajo:

BACKUP DATABASE [CurrencyExchange]

   TO  DISK = N’G:\DatabaseBackups\CE.bak’

   WITH DIFFERENTIAL;

   WITH CHECKSUM; 

GO

  1. …las copias de seguridad del registro de transacciones también pueden realizarse con la siguiente sentencia:

BACKUP LOG [CurrencyExchange]

   TO  DISK = N’F:\TLogBackups\CE.log’;

GO

Hay algunas cosas que mencionar aquí. En primer lugar, el tipo de copia de seguridad especificado anteriormente es diferencial, y un requisito absoluto para este nivel de copia de seguridad es que exista previamente la copia de seguridad «Completa».

El segundo punto tiene que ver con los diferentes tipos de copia de seguridad en general, incluso si sólo se trata de la completa, la diferencial y el registro de transacciones. Al espaciar estas copias de seguridad podrá mantener su base de datos a salvo y lista para la restauración en cualquier momento con poca o ninguna pérdida de datos (si hace, por ejemplo, una copia de seguridad completa cada 24 horas, una diferencial cada 6 horas y el registro de transacciones dos veces por hora).

  1. Después de decidir los ajustes de programación adecuados, puede terminar ese paso haciendo clic en «OK» para añadir un paso y en «OK» de nuevo para crear el trabajo en primer lugar.
  2. En cuanto haya terminado de crear el trabajo, puede empezar a programarlo. En la pestaña «Schedule» haga clic en la opción «New» del diálogo «Job».
  3. La pestaña «Job Schedule» le permite especificar la frecuencia y la fecha de inicio de su trabajo.
  4. Seleccione «OK» para finalizar la configuración de la programación y utilice la opción «Start Job at Step…» para iniciar su nuevo trabajo.

Otra forma de trabajar con el Agente de SQL Server está ligada a las capacidades del Plan de Mantenimiento del Servidor. Esto también puede hacerse de dos maneras diferentes: creando la copia de seguridad programada manualmente o utilizando el asistente del plan de mantenimiento.

Aunque el uso del asistente del plan de mantenimiento es algo más sencillo, empezaremos con la creación manual del plan de copias de seguridad programado:

  1. La carpeta «Maintenance Plan» se encuentra bajo el nodo «Management», si hace clic con el botón derecho podrá elegir la opción «New Maintenance Plan…» para iniciar el proceso.
  2. Seleccione «Back Up Database Task», y haga clic en el plan recién creado para configurarlo.
  3. Las opciones de programación pueden modificarse mediante la categoría «Sub plan scheduling».
  4. Después de finalizar el proceso de configuración puede terminar el proceso haciendo clic en «Save», esto crearía la tarea de copia de seguridad que desee.

El asistente del plan de mantenimiento es bastante más sencillo, pero también es menos personalizable:

  1. Debajo de la opción «New Maintenance Plan…» encontrará la opción «Maintenance Plan Wizard» para poner en marcha el proceso.
  2. La pestaña «Select Plan Properties» le permite cambiar el nombre del trabajo, el horario de este trabajo y algunas otras cosas.
  3. El siguiente paso incluye una serie de opciones que puede marcar o desmarcar si lo desea, incluyendo el tipo de copia de seguridad (completa, diferencial, registro de transacciones), comprobar la integridad de la base de datos, limpiar el historial, y otros.
  4. El último paso configurable tiene que ver con la configuración de la tarea, como la verificación de la integridad de la copia de seguridad, las bases de datos de destino, los subdirectorios para cada base de datos diferente, etc.
  5. Antes de iniciar el proceso de creación, podrá ver un resumen de toda la tarea en una ventana. Después de confirmar todo, haga clic en «Finish», y el proceso de creación comenzaría.

Los planes de mantenimiento pueden parecer muy convenientes, pero también son bastante limitados. Son adecuados para los usuarios menos experimentados, pero la creciente complejidad del servidor probablemente conduciría a una enorme masa de diferentes tareas de copia de seguridad que sería difícil de gestionar.

También existe otra alternativa en lo que respecta a la creación de copias de seguridad del servidor SQL como parte del proceso de copia de seguridad y restauración de SQL: utilizar únicamente la línea de comandos. La secuencia adecuada de comandos le permite extraer una base de datos de debajo de un administrador de Windows:

SqlCmd -E -S MyServerMyInstance –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak’”

Puede cambiar la ubicación de la copia de seguridad (después del «TO DISK=’), y la base de datos de destino se llama «MyDB» en este caso.

Prácticas útiles de copia de seguridad de SQL Server

  • Programas de copias de seguridad SQL

No piense que ha terminado con las copias de seguridad después de haber realizado una copia de seguridad con éxito una vez. Por lo tanto, la capacidad de replicar todas estas tareas de nuevo sin tener que utilizar comandos manuales para cada copia de seguridad es muy importante. Ahí es donde entra la programación. Se utiliza tanto para disminuir su carga de trabajo al no tener que realizar cada copia de seguridad por sí mismo, como para garantizar que sus datos estén a salvo en caso de un escenario de desastre.

Cuando configure sus copias de seguridad programadas de SQL Server, deberá elegir el tiempo deseado entre las copias de seguridad. Tenga en cuenta que tendrá que elegir entre hacer las copias de seguridad con frecuencia y pagar el mayor coste del espacio de almacenamiento adicional pero perder menos datos en caso de desastre, o hacer las copias de seguridad con menos frecuencia, pagando menos por el almacenamiento pero perdiendo más datos en caso de que ocurra algo malo.

No se olvide también de cómo trabaja su empresa con los datos. Por ejemplo, una empresa de TI probablemente querrá que se realicen copias de seguridad de sus datos con la mayor frecuencia posible, pero eso quizá no sea un requisito para otras empresas que no tienen grandes cantidades de datos que cambian todo el tiempo.

  • Pruebas de restauración de copias de seguridad SQL

Las copias de seguridad SQL también deben verificarse de vez en cuando, ya que una copia de seguridad no le sirve de nada si no puede recuperar sus datos a partir de ella. Hay muchos requisitos empresariales diferentes que deben cumplir sus copias de seguridad, y cuanto más a menudo compruebe los datos, menos posibilidades habrá de que algunos se corrompan cuando más los necesite.

En las pruebas de las copias de seguridad se incluyen muchas variables, como las ventanas de pérdida de datos, el umbral de pérdida de datos, el entorno, el plazo de recuperación y otras.

  • Ubicación geográfica

La razón para mantener al menos una copia de seguridad en un lugar distinto a su sitio de trabajo principal es porque un evento que pueda dañar sus bases de datos y servidores principales podría también dañar sus unidades de copia de seguridad y las copias de seguridad en general. Por eso es muy aconsejable utilizar una instalación remota para almacenar al menos una de sus copias de seguridad, ya sea a través de la nube o por cualquier otro medio, como una cinta que se lleve para su almacenamiento fuera de las instalaciones.

Es importante mencionar que sin comandos específicos las copias de seguridad de las bases de datos SQL se guardarían en el almacenamiento por defecto, que podría ser exactamente lo que no quiere hacer. También está el hecho de que el cambio de la ubicación de las copias de seguridad no movería en sí mismo ninguna de las copias de seguridad anteriores allí – el sistema sólo estaría guardando las nuevas copias de seguridad en ese lugar en particular.

Bacula es especialmente hábil a la hora de realizar copias de seguridad de bases de datos: su arquitectura permite utilizar cualquier motor de base de datos SQL, por lo que se pueden realizar copias de seguridad de bases de datos SQL con fiabilidad y rapidez. Como resultado, cuando se trata de velocidad, eficiencia y simplicidad, Bacula es tan potente -o más- que cualquier otra solución de copia de seguridad y recuperación para SQL.

La TI empresarial evoluciona constantemente, aportando nuevas tendencias y nuevas formas de enfocar la prestación de servicios y datos críticos. De la virtualización a la nube, de los contenedores a la infraestructura convergente, una cosa ha permanecido constante. Los servidores de bases de datos siguen siendo un componente clave de la mayoría de las organizaciones, y a menudo contienen la información más crítica para la continuidad de las operaciones. Al final, por muy virtualizada y altamente disponible que esté la infraestructura, poder hacer copias de seguridad de las bases de datos y recuperar los elementos críticos de la base de datos a un punto en el tiempo sigue siendo una parte necesaria de una estrategia eficaz de recuperación de desastres, continuidad del negocio y seguridad.

Bacula Enterprise ofrece la posibilidad de realizar copias de seguridad de muchas bases de datos de misión crítica, como Oracle, MSSQL, SAP HANA, MySQL y Postgresql, al tiempo que ofrece las importantes opciones de recuperación en un momento dado y fuera de línea que se necesitan.

La guía que sigue le mostrará cómo hacer una copia de seguridad de las bases de datos de SQL Server utilizando la interfaz de dispositivos virtuales de Linux de Microsoft.

Configuración de la copia de seguridad de la base de datos SQL con Bacula

1. En la página de configuración de BWeb, haga clic en «Add a new Backup»

backup sql database

2. Esto hace que aparezca el asistente para añadir un nuevo trabajo de copia de seguridad de la base de datos SQL. Primero dé un nombre y una descripción al trabajo. También es posible aquí seleccionar valores predeterminados comunes con otros trabajos de copia de seguridad, llamados JobDefs en Bacula, si es apropiado. Lo ideal es que el nombre del trabajo coincida con el nombre del host junto con un descriptor del servicio del que se está haciendo la copia de seguridad en ese host, para facilitar el análisis de los registros.

sql server backup

3. A continuación, se selecciona el cliente en el que reside la base de datos SQL en la lista desplegable de clientes.

sql backup database

4. Después de elegir el cliente, BWeb preguntará de qué base de datos SQL se va a hacer una copia de seguridad. Esto se conoce como Fileset en Bacula. No existe ninguna plantilla para este tipo concreto de copia de seguridad SQL, por lo que habrá que crearla haciendo clic en el enlace «ahora» de la descripción.

backup sql database

5. El nuevo conjunto de archivos necesitará un nombre, y en este caso el nombre es específico para este trabajo de copia de seguridad. El mismo conjunto de archivos también puede ser compartido entre muchos trabajos de copia de seguridad de bases de datos SQL que compartan los mismos parámetros. Después de dar un nombre al conjunto de archivos, al hacer clic en «Add include list» aparece la siguiente ventana de configuración, en la que se configuran los datos que se van a respaldar.

6. Elija el cliente y BWeb se conectará y mostrará el sistema de archivos disponible para la copia de seguridad. En este ejemplo, más que hacer una copia de seguridad de los archivos, la configuración es de un plugin para hacer una copia de seguridad de una base de datos. Al hacer clic en «Edit Plugins» aparece la lista de plugins.

7. De esta lista se elige el plugin de copia de seguridad de la base de datos SQL, con lo que aparece la pantalla de configuración.

8. En la pantalla de configuración se encuentran las distintas opciones disponibles para el plugin de copia de seguridad de SQL Server. Por defecto, el plugin se autenticará a través de la cuenta de servicio local bajo la cual se ejecuta el demonio de archivos de Bacula en el servidor SQL (véase la captura de pantalla de configuración para una posible forma de permitir que Bacula acceda a las bases de datos), y luego hará una copia de seguridad de todas las bases de datos del servidor. Las opciones de la lista permiten configurar el plugin para utilizar una autenticación alternativa, hacer una copia de seguridad sólo de bases de datos específicas o excluir las bases de datos que coincidan con un patrón, así como otras opciones. Consulte el documento técnico del plugin de copia de seguridad de bases de datos SQL de Bacula Enterprise para obtener más detalles sobre todas las opciones de configuración disponibles. En este ejemplo, se utilizan los valores predeterminados para realizar una copia de seguridad de todas las bases de datos del servidor.

9. Por último, se añade el plugin al fileset y se configuran las opciones finales, como la habilitación de la deduplicación para cualquier trabajo que utilice este fileset. El manual principal de Bacula Enterprise cubre cada una de las opciones de configuración disponibles en detalle, y el Soporte de Sistemas de Bacula puede ayudar a optimizar las opciones del fileset.

10. Después de aplicar los cambios y guardar el conjunto de archivos, se debe elegir un programa de la lista disponible de programas de copia de seguridad configurados, o se puede crear un nuevo programa. Si no se elige ningún horario, el trabajo sólo se ejecutará manualmente.

11. Finalmente, el trabajo está listo para ser guardado. Ahora se puede cambiar, añadir o modificar cualquier opción avanzada. Para el ejemplo aquí, no es necesario hacer ningún cambio adicional y el trabajo puede ser guardado, y luego confirmado y el director debe ser recargado. La recarga de la configuración del director no afecta a los trabajos en ejecución.

12. El nuevo trabajo está listo para funcionar. Una ejecución manual verificará que todo está configurado como se desea.

13. Tras una ejecución manual del trabajo, una revisión del registro del trabajo muestra las bases de datos y los archivos relacionados de los que se ha hecho una copia de seguridad, cualquier error o advertencia, y las estadísticas totales del trabajo y el estado de Bacula. En este caso el trabajo de copia de seguridad de SQL está bien, por lo que la tarea de configuración aquí está completa.

Notas finales sobre cómo hacer la copia de seguridad de la base de datos SQL:

  • Esta es una guía de configuración básica; consulte la documentación y el soporte de Bacula Enterprise para obtener más detalles y opciones de configuración avanzadas
  • Verificar y documentar el proceso de restauración es un paso importante.
  • Las instrucciones de configuración mediante el editor de texto y los archivos de configuración de Bacula están disponibles en la documentación del plugin MSSQL-VDI.
Sobre el autor
Rob Morrison
Rob Morrison es el director de marketing de Bacula Systems. Comenzó su carrera de marketing de TI con Silicon Graphics en Suiza, desempeñando con fuerza varios puestos de gestión de marketing durante casi 10 años. En los siguientes 10 años, Rob también ocupó varios puestos de gestión de marketing en JBoss, Red Hat y Pentaho, asegurando el crecimiento de la cuota de mercado de estas conocidas empresas. Se graduó en la Universidad de Plymouth y tiene una licenciatura en Medios Digitales y Comunicaciones, y completó un programa de estudios en el extranjero.
Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *