Cómo clonar una base de datos SQL Server con todo y datos con un simple query
Clona tu base de datos con datos y todo con un simple query, sin usar asistentes 😉

Pasa muchas veces que estamos programando y simplemente queremos clonar una base de datos existente sin complicarnos demasiado ni usar herramientas de terceros.

En este breve artículo te explicaré cómo hacerlo para bases de datos SQL Server.

Caso práctico

Tengo la base de datos original llamada quickstoredb y quiero crear su clon quickstoredbx.

Scripts

Primero sacaremos un backup completo a la base de datos original quickstoredb.

USE master;
BACKUP DATABASE quickstoredb --base de datos original ("quickstoredb")
TO DISK = 'D:\quickstoredb.bak'
WITH FORMAT, INIT, NAME = 'Backup Completo de quickstoredb';

Verás que se ha generado un archivo bak.

Después de ejecutar ese script, tendrás que crear la base de datos clon quickstoredbx a partir del backup generado en el paso anterior:

USE master;
RESTORE DATABASE quickstoredbx --base de datos clonada ("quickstoredbx")
FROM DISK = 'D:\quickstoredb.bak' WITH --referencias a tu archivo bak
MOVE 'quickstoredb' TO 'C:\...\DATA\quickstoredbx.mdf', --aquí pon tu ruta de los archivos de bases de datos
MOVE 'quickstoredb_log' TO 'C:\...\DATA\quickstoredbx_log.ldf',
REPLACE, RECOVERY;

Listo, eso es todo.

Como te darás cuenta ambas consultas las ejecuté en la base de datos MASTER.

Una base de datos tiene dos archivos el mdf que es para los datos y el ldf que es para los logs. Estos se guardan en tu disco duro local y están en una ruta masomenos así: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\ para el caso de SQL Server 2022

Ahora refresca la lista de bases de datos y allí tendrás a tu base de datos clonada:

Y además la base de datos clonada es completamente independiente porque sus archivos son independientes de la original:

Si esta entrada te ha gustado dev, compártela! 🐿️

Créditos de imagen de portada: Basada en Foto de Josie Weiss en Unsplash

Deja una respuesta

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