En el post anterior aprendimos a sacar un backup a una base de datos SQL Server 2019 que se encuentra en un contenedor de Docker, bueno, pues ahora vamos a aprender c贸mo restaurar el backup.

Precondiciones y asunciones

Este post ha sido construido con las siguientes precondiciones y asunciones:

  • El lector cuenta con una instancia de SQL Server 2019 en un contenedor de Docker.
    • Si no cuentas con una, 隆no te preocupes! puedes aprender hacerlo en este post, creado por m铆, obvio.
  • El contenedor de Docker se encuentra alojado en una m谩quina con Windows 10 o superior.
  • Se tiene conocimiento de contrase帽a del usuario SA.
  • El lector cuenta con un backup con extensi贸n .bak.

Empezamos

Primero vamos a definir unas cuantas variables para que la ejecuci贸n de los comandos clave sea m谩s concreta, para ello abrimos PowerShell y realizamos lo siguiente:

Definir una variable llamada $CONTAINER_NAME para indicar el nombre del contenedor donde se encuentra la instancia de SQL Server 2019, en mi caso se llama infallible_colden, esto lo hacemos con el siguiente comando:

$CONTAINER_NAME = 'infallible_colden'

Cambia la parte resaltada por el nombre de tu contenedor.

Ahora, vamos a definir una variable llamada $DATABASE_NAME para indicar el nombre de la base de datos la cual queremos resturar, en mi caso, es GameLibrary:

$DATABASE_NAME = 'GameLibrary'

Cambia la parte resaltada por el nombre de tu base de datos.

Luego, definimos otra variable llamada $FILE_NAME para indicar c贸mo se llama el archivo con extensi贸n .bak donde se encuentra el backup, en mi caso, pondr茅 GameLibrary.bak:

$FILE_NAME = 'GameLibrary.bak'

Cambia la parte resaltada por el nombre de archivo con tu backup. 隆No olvides la extensi贸n .bak!.

Esta 煤ltima variable llamada $HOST_BACKUP_PATH es para indicar la ruta completa donde se encuentra nuestro backup (archivo .bak) en nuestra m谩quina local, en mi caso se encuentra en D:\backups\GameLibrary.bak:

$HOST_BACKUP_PATH = "D:\backups\GameLibrary.bak"

Cambia la parte resaltada por la ruta del archivo con tu backup.

Restaurar el backup

Ahora que contamos con todas las variables necesarias, ejecutaremos unos 煤ltimos comandos para restaurar el backup.

Primero crearemos una carpeta especial dentro de nuestro contenedor de Docker, donde el SQL Server podr谩 encontrar el backup m谩s f谩cil:

docker exec "${CONTAINER_NAME}" mkdir -p /var/opt/mssql/restores

Ahora, copiaremos el backup dentro del contenedor de Docker en dicha carpeta as铆:

docker cp "${HOST_BACKUP_PATH}" "${CONTAINER_NAME}:/var/opt/mssql/restores/${FILE_NAME}"

Finalmente, restauremos el backup de una vez por todas con este comando:

docker exec -it "${CONTAINER_NAME}" /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [${DATABASE_NAME}] FROM DISK = N'/var/opt/mssql/restores/${FILE_NAME}' WITH FILE = 1, NOUNLOAD, REPLACE, RECOVERY, STATS = 5"

El comando te va a solicitar la contrase帽a para el usuario SA, por favor escr铆bela y dale Enter para continuar:

Ingresar contrase帽a de usuario SA para proceder con backup.

隆y listo!, puedes abrir tu gestor de bases de datos favoritos y comprobar que el backup se haya restaurado, validando que la base de datos GameLibrary se haya creado, que contenga tablas y datos 馃槈

Comprobando que la base de datos haya sido restaurada.

Y bueno, eso es todo por el momento, espero que te haya servido, nos vemos en otra ocasi贸n 馃檪

Enlaces de inter茅s

Te invito a visitar los siguientes enlaces, gran parte de la informaci贸n mostrada en este post ha sido recopilada de estas.

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *

Lo siento, debo validar que eres un humano *Time limit exceeded. Please complete the captcha once again.