How to backup SQL database to BAK file?

Backup de Base de Datos SQL Server a .bak

Valoración: 4.7 (7030 votos)

En el mundo de las bases de datos, la seguridad y la disponibilidad de la información son primordiales. Perder datos debido a fallos de hardware, errores humanos, corrupción de datos o desastres naturales puede tener consecuencias catastróficas para cualquier organización. Por ello, realizar copias de seguridad, o backup, de manera regular y confiable es una tarea fundamental para cualquier administrador de bases de datos SQL Server. El formato de archivo estándar para estas copias de seguridad en SQL Server es el archivo con extensión .bak.

Este artículo te guiará a través de los métodos más comunes para crear un archivo .bak de tu base de datos SQL Server, explicando por qué es crucial hacerlo y cómo puedes abordarlo tanto desde la interfaz gráfica de SQL Server Management Studio (SSMS) como mediante comandos Transact-SQL (T-SQL).

How to backup SQL database to BAK file?
1Open the SQL Server Management Studio (SSMS).2Select the database instance to back up in the left navigation pane.3Right-click > Tasks > Backup.4For Destination, select Disk. The destination file should have the extension *. BAK.
Índice de Contenido

¿Por Qué es Vital Realizar Backups?

La importancia de tener copias de seguridad actualizadas y funcionales no puede ser subestimada. Un backup es tu póliza de seguro contra una amplia gama de problemas:

  • Recuperación ante desastres: Permite restaurar la base de datos a un estado funcional después de un fallo grave del sistema o un desastre natural.
  • Recuperación de errores humanos: Si alguien elimina o modifica datos accidentalmente, puedes restaurar la base de datos a un punto anterior al error.
  • Corrupción de datos: Los fallos de software o hardware pueden corromper los datos de tu base de datos. Un backup te permite recuperarte de esta situación.
  • Migraciones y actualizaciones: Antes de realizar cambios mayores en la estructura de la base de datos o actualizar el servidor, un backup proporciona un punto de restauración seguro en caso de que algo salga mal.
  • Cumplimiento normativo: Muchas regulaciones requieren que las empresas mantengan copias de seguridad de sus datos durante un cierto período.

El archivo .bak es simplemente el contenedor que SQL Server utiliza para almacenar esta copia de seguridad. Contiene toda la información necesaria (datos, esquema, registro de transacciones) para reconstruir la base de datos en un momento dado.

Método 1: Usando SQL Server Management Studio (SSMS)

SQL Server Management Studio (SSMS) es la herramienta gráfica más común para administrar instancias de SQL Server. Proporciona una interfaz intuitiva para realizar diversas tareas, incluido el backup de bases de datos.

Pasos para Crear un Backup .bak con SSMS:

  1. Conectar a la Instancia de SQL Server: Abre SSMS y conéctate a la instancia de SQL Server que aloja la base de datos que deseas respaldar.
  2. Expandir el nodo 'Databases': En el Explorador de Objetos, expande el nodo 'Databases' para ver la lista de bases de datos disponibles.
  3. Seleccionar la Base de Datos: Haz clic derecho sobre la base de datos específica de la que quieres hacer el backup.
  4. Navegar a la Opción de Backup: En el menú contextual que aparece, selecciona 'Tasks' (Tareas) y luego 'Back Up...' (Realizar copia de seguridad...).
  5. Configurar el Backup: Se abrirá la ventana 'Back Up Database'. Aquí es donde configuras los detalles de tu backup.
    • General:
      • Database: Verifica que la base de datos seleccionada sea la correcta.
      • Backup type: Elige el tipo de backup. Los más comunes son 'Full' (Completo), 'Differential' (Diferencial) y 'Transaction Log' (Registro de Transacciones). Para crear un archivo .bak que contenga toda la base de datos en un momento dado, generalmente comienzas con un backup 'Full'.
      • Component: Selecciona 'Database'.
      • Name: Se genera un nombre por defecto para el conjunto de backup. Puedes modificarlo si lo deseas.
      • Description: Opcionalmente, añade una descripción para identificar este backup.
      • Backup set will expire: Puedes establecer una fecha o un número de días después de los cuales el conjunto de backup expirará y podrá ser sobrescrito.
    • Destination:
      • Back up to: Selecciona 'Disk' para guardar el backup en un archivo .bak.
      • Add: Haz clic en 'Add' para especificar la ubicación y el nombre del archivo .bak.
      • File Name: Navega hasta la carpeta donde deseas guardar el archivo, introduce un nombre para el archivo (por ejemplo, `MiBaseDeDatos_Full_20231027.bak`) y haz clic en 'OK'.
      • Remove/Contents: Puedes eliminar destinos existentes o ver el contenido de un archivo .bak existente.
  6. Configurar Opciones Adicionales (Opcional pero Recomendado): En la página 'Options' (Opciones) del cuadro de diálogo 'Back Up Database', puedes configurar ajustes importantes:
    • Overwrite Media:
      • 'Back up to the existing media set' (Respaldar al conjunto de medios existente): Añade el nuevo backup al archivo .bak existente. Útil si estás haciendo múltiples tipos de backup (Full, Diff, Log) al mismo archivo o si quieres mantener un historial dentro del mismo archivo.
      • 'Overwrite all existing backup sets' (Sobrescribir todos los conjuntos de backup existentes): Elimina cualquier backup anterior en el archivo .bak de destino y crea uno nuevo. Ten cuidado con esta opción, ya que borra backups anteriores.
    • Reliability:
      • 'Verify backup when finished' (Verificar backup al finalizar): Altamente recomendado. SQL Server leerá el archivo .bak después de crearlo para asegurarse de que se pueda leer y restaurar correctamente.
      • 'Perform checksum before writing to media' (Realizar suma de verificación antes de escribir en el medio): Ayuda a detectar posibles problemas de lectura o escritura en el disco durante el proceso de backup. Recomendado activarla.
    • Compression:
      • 'Compress backup' (Comprimir backup): Si tu edición de SQL Server lo soporta (Standard, Enterprise, Developer), puedes comprimir el archivo .bak para reducir su tamaño. Esto ahorra espacio en disco y reduce el tiempo de E/S, aunque consume más CPU.
  7. Ejecutar el Backup: Una vez configurado todo, haz clic en 'OK' en el cuadro de diálogo 'Back Up Database'. SSMS mostrará una barra de progreso. Una vez completado, verás un mensaje de éxito. El archivo .bak se habrá creado en la ubicación especificada.

Método 2: Usando Transact-SQL (T-SQL)

Para automatizar backups, realizar copias de seguridad de múltiples bases de datos o tener un control más granular, el uso de comandos T-SQL es la opción preferida. El comando principal para esto es BACKUP DATABASE.

Sintaxis Básica de BACKUP DATABASE:

BACKUP DATABASE [NombreDeLaBaseDeDatos] TO DISK = N'RutaCompletaDelArchivo.bak' [ WITH <opciones> ]; 

Donde [NombreDeLaBaseDeDatos] es el nombre de la base de datos que quieres respaldar y N'RutaCompletaDelArchivo.bak' es la ruta completa y el nombre del archivo .bak de destino. La N antes de la cadena de la ruta indica que es una cadena Unicode, lo cual es una buena práctica, especialmente si la ruta contiene caracteres especiales.

Ejemplos de Comandos T-SQL para Backup:

Backup Completo Básico:

BACKUP DATABASE MiBaseDeDatos TO DISK = N'C:\BackupsSQL\MiBaseDeDatos_Full.bak'; 

Este comando creará un archivo .bak. Si el archivo ya existe, el nuevo backup se añadirá al conjunto de medios existente por defecto (WITH NOINIT implícito).

Backup Completo Sobrescribiendo Archivo Existente:

BACKUP DATABASE MiBaseDeDatos TO DISK = N'C:\BackupsSQL\MiBaseDeDatos_Full.bak' WITH INIT, -- Sobrescribe el contenido existente del archivo FORMAT, -- Crea un nuevo conjunto de medios NAME = N'Backup Completo de MiBaseDeDatos', -- Nombre para el conjunto de backup DESCRIPTION = N'Copia de seguridad completa manual'; -- Descripción 

Usar WITH INIT es común si quieres que cada backup sobrescriba el archivo anterior (por ejemplo, en un proceso de automatización diario donde solo necesitas el último backup).

Backup Completo con Verificación y Compresión:

BACKUP DATABASE MiBaseDeDatos TO DISK = N'C:\BackupsSQL\MiBaseDeDatos_Full.bak' WITH INIT, COMPRESSION, -- Habilita la compresión (si está disponible) STATS = 10, -- Muestra el progreso cada 10% CHECKSUM, -- Realiza sumas de verificación VERIFYONLY; -- Verifica el backup una vez finalizado 

Estas opciones son altamente recomendables para asegurar la integridad del backup y reducir el espacio en disco.

Backup del Registro de Transacciones (Transaction Log):

BACKUP LOG MiBaseDeDatos TO DISK = N'C:\BackupsSQL\MiBaseDeDatos_Log.trn' -- Nota: se usa extensión .trn típicamente WITH NOINIT, -- Añadir al archivo existente (o crear uno nuevo si no existe) STATS = 1; 

Los backups del registro de transacciones (que también se almacenan en archivos .bak, aunque a menudo se les da la extensión .trn por convención) son esenciales para poder restaurar la base de datos a un punto en el tiempo específico y para mantener el tamaño del archivo de log bajo control en bases de datos con modelos de recuperación Full o Bulk-Logged.

SSMS vs. T-SQL: ¿Cuál Usar?

CaracterísticaSQL Server Management Studio (SSMS)Transact-SQL (T-SQL)
Facilidad de UsoAlta (Interfaz gráfica)Media/Alta (Requiere conocimiento de comandos)
Tareas PuntualesExcelente para backups manuales o esporádicosBueno, pero más verboso para tareas únicas
AutomatizaciónLimitada directamente (requiere SQL Agent Jobs que usan T-SQL)Excelente ( scripts, SQL Agent Jobs)
Múltiples Bases de DatosRequiere repetir pasos para cada DBFácilmente escalable con scripts
Opciones AvanzadasAlgunas opciones accesibles via GUIAcceso completo a todas las opciones y parámetros
Informes/RegistroProporciona feedback visual en la interfazDebe manejar el registro de errores y resultados mediante scripts

En general, SSMS es ideal para principiantes o para realizar backup manuales rápidos. T-SQL es indispensable para la automatización, la gestión de grandes entornos y para tareas de backup más complejas o personalizadas.

Buenas Prácticas para Backups

  • Verifica tus Backups: Siempre usa la opción VERIFYONLY en T-SQL o la opción 'Verify backup when finished' en SSMS. Un backup que no se puede restaurar es inútil.
  • Prueba la Restauración: Regularmente, restaura tus backup en un entorno de prueba. Esta es la única forma de estar completamente seguro de que tus copias de seguridad funcionan.
  • Almacenamiento Seguro: Guarda tus archivos .bak en una ubicación diferente a la de los archivos de la base de datos original. Considera almacenamiento en red, NAS, SAN o almacenamiento en la nube.
  • Almacenamiento Fuera de Sitio: Para protección contra desastres mayores (incendios, inundaciones), considera enviar copias de tus backup a una ubicación geográfica diferente.
  • Automatiza: Utiliza el Agente SQL Server para programar tus tareas de backup con T-SQL. Esto asegura que se realicen de forma regular y sin intervención manual.
  • Monitorea: Configura alertas para ser notificado si una tarea de backup falla.
  • Comprime: Si tu edición lo permite, usa compresión para ahorrar espacio.
  • Planifica la Retención: Define cuánto tiempo necesitas mantener tus backup y configura políticas de retención o scripts de limpieza para eliminar archivos antiguos.

Preguntas Frecuentes sobre Backups .bak

¿Qué es exactamente un archivo .bak?
Es el formato de archivo propietario de Microsoft SQL Server para almacenar copias de seguridad de bases de datos. Contiene todos los datos, el esquema y, dependiendo del tipo de backup (completo, diferencial, log), partes o la totalidad del registro de transacciones necesarios para restaurar la base de datos a un punto en el tiempo.

¿Puedo abrir o ver el contenido de un archivo .bak directamente?
No, no puedes abrir un archivo .bak con un editor de texto o una herramienta de base de datos convencional. La única forma de acceder a los datos dentro de un archivo .bak es utilizando SQL Server Management Studio o comandos T-SQL para restaurar el backup en una instancia de SQL Server.

¿Puedo restaurar un archivo .bak de una versión de SQL Server en otra versión?
Generalmente, puedes restaurar un backup de una versión anterior de SQL Server en una versión más nueva. Sin embargo, no puedes restaurar un backup creado en una versión más nueva (por ejemplo, SQL Server 2019) en una versión más antigua (por ejemplo, SQL Server 2016).

¿Cómo restauro una base de datos desde un archivo .bak?
El proceso de restauración es el inverso al de backup. En SSMS, haces clic derecho en 'Databases', seleccionas 'Restore Database...' (Restaurar base de datos...), eliges 'Device' (Dispositivo) como origen y seleccionas tu archivo .bak. Con T-SQL, usas el comando RESTORE DATABASE.

¿Con qué frecuencia debo hacer backups?
La frecuencia depende de la criticidad de tus datos y de cuánta pérdida de datos puedes permitirte (tu Objetivo de Punto de Recuperación o RPO). Para bases de datos con cambios frecuentes, necesitarás backups de log muy frecuentes (cada 15-30 minutos o incluso menos) combinados con backups completos diarios y diferenciales cada pocas horas. Para bases de datos menos dinámicas, backups completos diarios podrían ser suficientes.

Conclusión

Crear archivos .bak es una parte esencial de la administración de SQL Server para proteger tu información. Ya sea que prefieras la interfaz gráfica de SSMS para tareas manuales o la potencia y automatización de T-SQL para procesos programados, dominar ambas técnicas te permitirá asegurar que tus datos estén protegidos y disponibles para la restauración en caso de cualquier eventualidad. Implementa una estrategia de backup robusta y, lo más importante, asegúrate de verificar y probar tus copias de seguridad regularmente.

Si quieres conocer otros artículos parecidos a Backup de Base de Datos SQL Server a .bak puedes visitar la categoría Bases de datos.

Ivan

Soy un entusiasta de la tecnología con especialización en bases de datos, particularmente en MySQL. A través de mis tutoriales detallados, busco desmitificar los conceptos complejos y proporcionar soluciones prácticas a los desafíos cotidianos relacionados con la gestión de datos

Aprende mas sobre MySQL

Subir