Backup SQL Server: ¿Cómo respaldar y restaurar una base de datos en SQL Server?
by Juan Carlos García
17-Oct-2024
(3)
Suscribirme al canal:
Hola amigo / amiga, bienvenido a este nuevo post donde revisaremos y aprenderemos a respaldar y restaurar una base de datos, ya que, crear copias de seguridad es una excelente estrategia para proteger nuestra información contenida en una base de datos, y así, poder recuperar dicha información en caso de imprevistos y minimizar la perdida de datos.
El objetivo es que al finalizar comprendas el uso y ventajas de crear Backup (respaldos) de bases de datos en SQL Server, y aprendas como puedes volver a restaurar o poner en línea dichos respaldos, pero, para no confundirte más, comencemos con este tema.
- No olvides repasar el curso de base de datos para comprender todo a la perfección: Curso gratuito de base de datos desde cero.
¡No te puedes perder las nuevas clases 🧐!
Modelos de Base de Datos
Lista de los principales tipos y modelos de base de datos que existen
(14)
Normalización de base de datos
Normalización de base de datos: descripción y características de las 5 formas normales.
(12)
Modelo entidad relación
Modelo entidad relación: simbología y características del diagrama entidad relación.
(9)
Servidor de Base de Datos
Servidores de Base de Datos: ¿Qué son? Tipos, características e instalación.
(5)
Backup y restaurar SQL Server
Backup SQL Server: ¿Cómo respaldar y restaurar una base de datos en SQL Server?
(3)
🧐 Autoevaluación: Backup y restaurar SQL Server
¿Cuáles son los principales tipos de respaldo de base de datos en SQL Server?
¿Qué son el respaldo y la recuperación en base de datos?
Tabla de contenido
- 1 ¿Qué es Backup o respaldo de una base de datos en SQL Server?
- 2 Políticas para crear copias de seguridad
- 3 Tipos de respaldos (backup) de base de datos en SQL Server
- 4 Limitaciones y restricciones
- 5 Full backup: ¿Cómo crear una copia de seguridad completa en SQL Server?
- 6 ¿Qué es un full backup o copia de seguridad completa en SQL Server?
- 7 Consideraciones importantes de un full backup
- 8 ¿Cómo crear un full backup o copia de seguridad completa en SQL Server Management Studio?
- 9 Differential backup: copia de seguridad diferencial
- 10 ¿Qué es un Differential backup o copia de seguridad diferencial en SQL Server?
- 11 Consideraciones importantes de un differential backup o copia de seguridad diferencial
- 12 ¿Cómo crear un Differential backup o copia de seguridad diferencial en SQL Server Management Studio?
- 13 Restauración de una base de datos en SQL Server
- 14 ¿Cómo restaurar una copia de seguridad completa en SQL Server Management Studio?
- 15 ¿Cómo restaurar una copia de seguridad diferencial en SQL Server Management Studio?
- 16 Conclusión: respaldar y restaurar base de datos en SQL Server
Gracias por tu calificación
(3)
Para comprender esta clase a la perfección, te recomiendo que des un repaso a estos vídeos, no olvides en suscribirte a mi canal de YouTube:
¿Qué es Backup o respaldo de una base de datos en SQL Server?
Crear un Backup o respaldar una base de datos en SQL Server significa crear una copia de seguridad de datos o información importante y vulnerable, con la finalidad de poder recuperarla posteriormente.
La perdida de información es un tema muy importante y critico en la vida profesional de cualquier administrador o diseñador de bases de datos, es un desastre que debemos evitar y crear medidas que nos protejan ante dichas situaciones, ya sea, por que se ejecuto una consulta errónea, fallas de servidor, la base de datos se corrompió y esta fuera de línea, etc.
Políticas para crear copias de seguridad
Antes de crear tus copias de seguridad debes establecer ciertas políticas que te ayuden a ti y al equipo de trabajo ¿Cuándo y cómo deben crear y almacenar estas copias de seguridad? Por ejemplo, los siguientes punto te pueden darte una idea de como establecer tus política:
- Tipos de respaldo: completo o diferencial (Más adelante veremos estos dos tipos).
- ¿Cada cuando se generarán estos respaldos? Decidir el periodo de respaldos es vital, por ejemplo: diario, semanal, mensual; existen negocios que incluso los respaldos se llevan cada hora.
- ¿Dónde almacenaremos los respaldos? Podemos optar por un servicio de almacenamiento en la nube como S3 de Amazon o almacenar los respaldos en discos duros físicos y locales que estarán a nuestro resguardo.
- Una excelente opción en la nube son los espacios en Digital Oceans, es similar al servicio de S3 de Amazon, te dejo el link para que puedes revisar sus servicios.
- Espacio disponible: el espacio en disco dependerá de tu aplicación y el tipo de respaldo que establezcas, pero ten en cuenta que el espacio en disco de los respaldos, puede llegar a alcanzar un costo considerable.
- ¿Cuánto tiempo almacenaremos los respaldos? Esto es importante, muchas empresas almacenan respaldos siempre, algunas otras cuatro años, etc. todo depende de la legislación que aplique a tu negocio, pero en promedio, cuatro años suele ser una buena opción.
- Automatización de procesos, un equipo de administración de base de datos experimentado, puede crear procesos automatizados que creen los respaldos en los momentos correctos y, estos archivos, se han movidos en automático a los diferentes lugares de almacenamiento de largo plazo.
Realmente existen muchos puntos de análisis para crear una política de respaldo eficaz, lo mencionado aquí son puntos generales que pueden ayudarte a comenzar e ir afinando con la experiencia, recuerda que esto solo es educativo y no representan una recomendación.
Tipos de respaldos (backup) de base de datos en SQL Server
En SQL Server tenemos dos tipos de backup o respaldos:
- Full backup (Completo).
- Differential backup (Diferencial).
En esencia tenemos respaldos completos y diferenciales, incluso, podemos cifrar nuestros respaldos y bases de datos, pero en este post, nos vamos a centrar en la base de datos “ewebikdb” que es la que hemos construido para este curso y, haremos, un ejemplo de como podemos crear estos dos tipos de respaldos y después como podemos restaurarlos para recuperar nuestra información.
Limitaciones y restricciones
Antes de pasar a revisar los respaldos que llevaremos a cabo, es importante que tengas en cuenta las siguientes restricciones:
- Una instrucción de BACKUP no es permitida en un bloque de transacción explicita o implícita, no hemos visto las transacciones, pero rápidamente se puede comprender como una unidad de trabajo o ejecución de un lote de instrucciones, donde:
- Si el proceso se lleva a cabo con éxito, las modificaciones se ejecutan y se vuelven permanentes.
- Si el proceso resulta en un error, las modificaciones se revierten y no se convierten en cambios permanentes.
- Las copias de seguridad no pueden ser restauradas en versiones de SQL Server, anteriores a la versión en la que fue creada.
Gracias por tu calificación
(3)
Gracias por tu calificación
(3)
Full backup: ¿Cómo crear una copia de seguridad completa en SQL Server?
La primera forma en que podemos respaldar nuestros datos es crear un Full backup o copia de seguridad completa, esto es una excelente opción para respaldar por primera vez nuestros datos y, desde SQL Server Management Studio, suele ser muy sencillo de hacer.
¿Qué es un full backup o copia de seguridad completa en SQL Server?
Un full backup o copia de seguridad completa es un archivo donde almacenamos todos la información de nuestra base de datos, sin importar si existen respaldos anteriores.
Consideraciones importantes de un full backup
Cuando creamos una copia de seguridad completa debemos considerar lo siguiente:
- Crecimiento de la base de datos, si la base de datos crece, las copias de seguridad completas tardarán mas tiempo en llevarse a cabo y también necesitarán más espacio de almacenamiento.
- Permisos, para poder llevar acabo una copia de seguridad el usuario debe pertenecer al rol:
- sysadmin: proporciona control total sobre la instancia de SQL Server.
- db_owner: permite a los miembros realizar todo tipo de tareas de configuración y mantenimiento sobre las bases de datos.
- db_backupoperator: permite a los usuarios de este rol crear copias de seguridad de la base de datos.
¿Cómo crear un full backup o copia de seguridad completa en SQL Server Management Studio?
En este punto ya tenemos bastante información y recomendaciones para crear un respaldo de nuestra base de datos, ahora, hagamos un ejemplo de como podemos crear este respaldo completo desde el manejador de base de datos SQL Server Management Studio. Así que vayamos paso a paso:
- Primero debes iniciar sesión en SQL Server Management Studio, en mi caso iniciaré sesión con Windows authentication lo que me da un rol de sysadmin.
- Una vez que ya hayamos iniciado sesión, nos posicionamos en la parte izquierda de SQL Server Management Studio, en el explorado de objetos o Object Explore.
- En el explorador de objetos, expandimos el apartado de Bases de datos o Databases.
- Aquí se encuentra la base de datos “ewebikdb” que creamos en nuestro curso de lenguaje SQL, el cual te invito a revisar para aprender todo lo básico de SQL.
- Ya que tienes plenamente identificada la base de datos que deseas respaldar, en mi caso “ewebikdb”, vas a dar clic derecho sobre la base de datos, selecciona el submenú “Tasks (tareas)” y después en “Back up (Respaldo)”.
- Al dar clic en Back Up, se abrirá una pantalla donde podrás crear tu respaldo y, para ello, debes ingresar las siguientes opciones:
- Database: debe tener el nombre de nuestra base de datos “ewebikdb”.
- Backup type: debe tener la opción full, que indica una copia de seguridad completa.
- En backup component: debe esta seleccionada la opción “Database”.
- En el apartado "Destination" indicamos donde queremos almacenar nuestro respaldo, y para este ejemplo, lo almacenaremos en un disco duro local, así que seleccionaremos en “Back up to” la opción “Disk”, a continuación vemos la ruta donde almacenaremos el respaldo, por defecto viene la carpeta MSSQL: C:\Program Files\Microsoft SQL Server \MSSQL15.SQLEXPRESS \MSSQL \Backup\ewebikdb.bak
- Todo respaldo debe terminar en .bak como en este caso “ewebikdb.bak”.
- Como puedes ver en la imagen anterior a la derecha tenemos los botones:
- Add: nos permite agregar una ruta personalizada donde almacenaremos nuestro respaldo.
- Remove: elimina una ruta que hayamos seleccionado previamente.
- Primero con “Remove” elimino la ruta por defecto.
- Ahora, en mi caso voy a guardar el respaldo en una ruta personalizada en la capeta “C:\db\respaldo”, solo da clic en “Add" y en la siguiente pantalla da clic en el botón que tiene 3 puntos y se abrirá una tercera pantalla donde puedes especificar la ruta, tal como se ve en la siguiente imagen.
- Ahora simplemente da ok en estas últimas dos ventanas.
- Una vez que tengamos todo esto listo, debemos dar OK para comenzar con la creación de nuestro respaldo, esto puede tardar bastante dependiendo del tamaño de nuestra base de datos, pero en esencia veremos algo similar a la siguiente imagen cuando se termine de crear nuestro respaldo.
- Si llegara a tardar bastante, en la parte inferior izquierda, hay un indicador de progreso, que te va indicando el porcentaje de avance.
- Y listo, con ello hemos creado un respaldo full o completo de nuestra base de datos, la cual, más adelante de este post, te enseñare como puedes restaurarla para recuperar la información.
Gracias por tu calificación
(3)
Gracias por tu calificación
(3)
Differential backup: copia de seguridad diferencial
Ahora pasemos a crear un respaldo diferencial, esto tiene ventajas, ya que, tardan menos tiempo en crearse que un respaldo full y, también, pesan menos.
¿Qué es un Differential backup o copia de seguridad diferencial en SQL Server?
Un differential backup o copia de seguridad diferencial es un archivo donde almacenamos parte de los datos y requiere una copia o respaldo de seguridad completo previamente.
Consideraciones importantes de un differential backup o copia de seguridad diferencial
- Para crear una copia de seguridad diferencial, se debe crear una copia de seguridad completa previamente.
- Si la copia de seguridad diferencial incrementa su tamaño, también se incrementará el tiempo de restauración de la base de datos.
- Si el tamaño de los respaldos diferenciales aumenta considerablemente, se recomienda volver hacer un respaldo completo, y después, crear nuevos respaldos diferenciales.
¿Cómo crear un Differential backup o copia de seguridad diferencial en SQL Server Management Studio?
Para crear un respaldo diferencial en SQL Server Management Studio, es prácticamente igual a crear un respaldo completo, solo que cambiamos la opción full a differential, por ejemplo:
- Primero en la opción Backup type establecemos la opción Differential.
- En Destination removemos la ruta actual y con el botón Add agregamos una nueva ruta, que en este caso será la misma carpeta donde guardamos el respaldo completo, pero, el respaldo diferencial lo nombraremos “ewebikdb_diff_220301.bak”.
- Acostumbro a los respaldos diferenciales agregarles la palabra “diff” para distinguirlos y la fecha en que fue creado, tú puedes establecer tu propia nomenclatura.
- Ahora simplemente das clic en OK en las diferentes pantallas para comenzar a crear la copia de seguridad diferencial y esperas a que termine el proceso.
- Y listo, ya tienes una copia de seguridad diferencial, puedes crear los respaldos diferenciales que necesites, solo recuerda que primero necesitas crear una copia de seguridad completa.
Gracias por tu calificación
(3)
Gracias por tu calificación
(3)
Restauración de una base de datos en SQL Server
Excelente, ya sabes como crear tus respaldos o copias de seguridad de tus bases de datos, ahora aprenderás a restaurar la base de datos y volver a recuperar tus datos, veremos dos casos específicos:
- Restaurar una copia de seguridad completa
- Restaurar una copia de seguridad diferencial
Y vamos a tomar los respaldos que creamos en el apartado anterior, así que iniciemos con el primer caso.
¿Cómo restaurar una copia de seguridad completa en SQL Server Management Studio?
Es buena practica que una vez que se crea un respaldo, este sea restaurado en otro servidor para comprobar que se creo correctamente, así que si tienes esta posibilidad, te recomiendo que lo hagas.
Buen, para nuestro ejemplo, vamos a restaurar la copia de seguridad completa que creamos previamente, y le voy a cambiar el nombre, ya que, la voy a restaurar en la misma instancia de SQL Server, y ya existe una base de datos “ewebikdb”, lo hago así por que posiblemente ocupe ese base de datos mas adelante, pero, tú puedes dejar el mismo nombre si la restauras en otro servidor o eliminaste la base de datos.
- Primero en el explorador de objetos da clic derecho en Databases y da clic en el submenú Restore Database.
- En la pantalla que se abre (Restore Database), en la sección de Source selecciona la opción Device.
- Ahora en el botón que tiene 3 puntos, da clic y en la nueva pantalla "Select backup device" da clic en Add para elegir la ruta donde se encuentra la copia de seguridad completa que deseas restaurar y posteriormente da clic en OK en ambas ventanas.
- Bien, con esto has seleccionado la copia de seguridad que deseas restaurar, en este punto, puedes personalizar la carpeta donde deseas almacenar la base de datos una vez que esta se restaure, solo debes posicionarte en el menú izquierdo en Select a page y dar clic en Files.
- En esta ventana podrás establecer la carpeta y ruta de donde quieres almacenar los archivos de la base de datos, en mi caso los dejaré como están, ya que están en una ruta personalizada, tu puedes hacer los cambios que necesites.
- Ahora regresa a la opción General del menú Select a page.
- En la sección Destination en la opción Database, viene el nombre con el que se restaurara la base de datos, en mi caso cambiare “ewebikdb” a “ewebikdb_r”, tu puedes poner el nombre que desees o dejar el que ya tienes.
- El siguiente apartado es Restore plan o plan de restauración, en esta sección visualizamos la información del respaldo que deseamos restaurar, por ejemplo en este caso podemos visualizar algunas columnas en la tabla de abajo, como:
- Name: nombre de la base de datos, en este caso es ewebikdb.
- Type: tipo de copia de seguridad, en este caso es Full.
- Ahora simplemente le das clic en OK y esperas a que termine la restauración.
Gracias por tu calificación
(3)
Gracias por tu calificación
(3)
¿Cómo restaurar una copia de seguridad diferencial en SQL Server Management Studio?
Excelente, ya has hecho tu primera restauración de una base de datos, pero, que pasa si lo que deseas es restaurar una copia de seguridad diferencial, para ello primero restauramos nuestro respaldo completo, pero, en Recovery state debemos seleccionar la opción “RESTORE WITH RECOVERY” y después restauramos el respaldo diferencial, veamos como para que te quede más claro.
- Similar a como lo hicimos en el apartado anterior, damos clic en Databases, submenú Restore Database.
- Ya en la pantalla Restore Database, seleccionamos nuestra copia de seguridad completa.
- En mi caso, nuevamente cambiaré el nombre a “ewebikdb_r”.
- Ahora, en el apartado izquierdo Select a page, vamos a posicionarnos en Options.
- Y en Recovery state debemos seleccionar la opción “RESTORE WITH RECOVERY”.
- Si le damos clic y esperaos a que se restaure, en nuestro explorador de objetos veremos una nueva base de datos con nombre “ewebikdb_r” o el que hayas establecido, pero, en el nombre veremos entre paréntesis la palabra Restoring.
- Bien, ahora debemos dar clic derecho sobre la basa de datos que estas restaurando, después en la opción Tasks, después en Restore y finalmente dar clic en la opción Files and Filegroups.
- Ya debes de estar en la pantalla Restore Files and Filegroups, donde en la sección Source for restore seleccionamos la opción From device.
- Igual que en otras pantallas, das clic en el botón de los 3 puntos, y en la nueva pantalla Select backup devices da clic en el botón Add y en la siguiente pantalla Locate Backup File, seleccionas el archivo de la copia de seguridad diferencial que deseas restaurar.
- Una vez que hayas seleccionado tu archivo de respaldo diferencial, en el apartado Select the backup sets to restore, puedes visualizar el nombre de tu archivo de respaldo diferencial y el type o tipo Diferential.
- Selecciona el checkbox del respaldo diferencial y si todo esta correcto, basta con dar en OK y esperar que termine de restaurar.
- En el explorador de objetos puedes ver que la nueva base de datos ya no tiene entre paréntesis la palabra “Restoring”, de tenerlo, puedes dar clic derecho y luego en Refresh, con eso ya debería estar lista tu base de datos.
Conclusión: respaldar y restaurar base de datos en SQL Server
Excelente, como puedes observar, respaldar y restaurar una base de datos en SQL Server Management Studio, es muy fácil, ya que con unos cuantos clic y paciencia, tendrás tus datos seguros y los podrás recuperar cuando los necesites, solo recuerda lo siguiente:
- Las copias de seguridad completas, puede ser de gran tamaño y tardan mucho en crearse.
- Para crear una copia de seguridad diferencial o parcial, primero se debe crear una copia de seguridad completa.
- Para restaurar una copia de seguridad completa, solo basta con seleccionar el respaldo y restaurar, tal como lo vimos en el ejemplo.
- Para restaurar una copia de seguridad diferencial, primero debes restaurar la copia de seguridad completa pero en modo RESTORE WITH RECOVERY, y después, debes restaurar la copia de seguridad diferencial.
Espero que este post te se útil y te recomiendo que mires el vídeo, ya que, ahí explico todo esto con más detalle, también te invito a suscribirte a mi canal de EWebik, nos vemos en el siguiente post.
Gracias por tu calificación
(3)
🧐 Autoevaluación: Backup y restaurar SQL Server
¿Cuáles son los principales tipos de respaldo de base de datos en SQL Server?
¿Qué son el respaldo y la recuperación en base de datos?
Juan Carlos García
Desarrollador de software / SEO
Durante años he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera página de Google, y hoy quiero compartir contigo lo que se en tecnologías como: Node JS, PHP, C# y Bases de datos.
Si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.