WhatsApp

  
Restaurando una Base de Datos SQL Server desde un Contenedor de Docker

En el mundo del desarrollo y la gestión de bases de datos, la restauración de datos es una tarea esencial. Si ya has seguido nuestra guía anterior sobre cómo crear un contenedor Docker con SQL Server, ahora aprenderás cómo restaurar una base de datos SQL desde una copia de seguridad en ese entorno Docker. Esta habilidad es crucial para mantener la integridad de tus datos y recuperarte de posibles problemas. 


1.  Preparación de la Copia de Seguridad

Antes de realizar una restauración, asegúrate de tener una copia de seguridad (backup) de la base de datos que deseas recuperar. Puedes crear una copia de seguridad utilizando SQL Server Management Studio u otras herramientas de respaldo.


2. Copia de la Copia de Seguridad al Contenedor

En primer lugar, use docker exec para crear una carpeta de copia de seguridad. El siguiente comando crea un directorio /var/opt/mssql/backup dentro del contenedor de SQL Server.

sudo docker exec -it mi-servidor-sql mkdir /var/opt/mssql/backup

Para restaurar la base de datos desde una copia de seguridad, primero debes copiar la copia de seguridad al contenedor Docker que contiene SQL Server. Utiliza el siguiente comando:

sudo docker cp tu_backup.bak mi-servidor-sql:/var/opt/mssql/backup

Este comando copia tu archivo de copia de seguridad (reemplaza tu_backup.bak con el nombre de tu archivo) al directorio de datos del contenedor Docker.

El archivo de copia de seguridad ahora se encuentra dentro del contenedor. Antes de restaurar la copia de seguridad, es importante conocer los nombres de archivo lógicos y los tipos de archivo que hay dentro de la copia de seguridad. Los siguientes comandos de Transact-SQL examinan la copia de seguridad y realizan la restauración con sqlcmd en el contenedor.


3. Examinar la Copia de Seguridad

Para examinar la copia de seguridad y obtener información sobre los archivos lógicos y los tipos de archivo, puedes utilizar los siguientes comandos de Transact-SQL dentro del contenedor:

sudo docker exec -it mi-servidor-sql /opt/mssql-tools/bin/sqlcmd -S localhost \
-U SA -P '<TuContraseñaSegura>' \
-Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/tu_backup.bak"' \
| tr -s ' ' | cut -d ' ' -f 1-2

Estos comandos te proporcionarán una visión general de los archivos presentes en la copia de seguridad. Asegúrate de tomar nota de los nombres de archivo lógicos y los tipos de archivo, ya que los necesitarás en el siguiente paso.



4. Restauración con sqlcmd en el Contenedor

Una vez que hayas obtenido la información necesaria sobre los archivos lógicos y los tipos de archivo, estás listo para realizar la restauración. Puedes utilizar el comando RESTORE DATABASE dentro del contenedor para llevar a cabo la restauración. Especifique nuevas rutas de acceso para cada uno de los archivos del paso anterior.

sudo docker exec -it mi-servidor-sql /opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA -P '<TuContraseñaSegura>' \
-Q 'RESTORE DATABASE TuBaseDeDatos FROM DISK = "/var/opt/mssql/backup/tu_backup.bak" WITH MOVE "NombreArchivoLogico" TO "/var/opt/mssql/data/NuevoNombreArchivoLogico.mdf", MOVE "NombreArchivoLogicoLog" TO "/var/opt/mssql/data/NuevoNombreArchivoLogicoLog.ldf"'

Asegúrate de reemplazar TuBaseDeDatos con el nombre de tu base de datos, NombreArchivoLogico y NombreArchivoLogicoLog con los nombres de archivo lógicos que obtuviste en el paso anterior, y TuContraseñaSegura con la contraseña de SA.

Al ejecutar el comando deberías ver una salida en la terminal diciendo que la base fue restaurada con éxito.

RESTORE DATABASE successfully processed 2186169 pages in 298.672 seconds (57.184 MB/sec).

Con estos pasos, estarás listo para restaurar una base de datos SQL desde una copia de seguridad en tu contenedor Docker de SQL Server. Asegúrate de verificar que la restauración se haya realizado correctamente antes de continuar con tus operaciones.




Brian Ramírez 15 septiembre, 2023
Compartir
Categorías


Iniciar sesión dejar un comentario

  
Paso a Paso: Creando Tu Primer Proyecto con Bootstrap
¿Cómo comenzar un proyecto implementando Bootstrap?