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
