Le moyen le plus simple est en fait un script.
Exécutez ceci en production :
USE MASTER;
BACKUP DATABASE [MyDatabase]
TO DISK = 'C:\temp\MyDatabase1.bak' -- some writeable folder.
WITH COPY_ONLY
Cette seule commande effectue une copie de sauvegarde complète de la base de données sur un seul fichier, sans interférer avec la disponibilité de la production ou le calendrier de sauvegarde, etc.
Pour restaurer, exécutez simplement ceci sur votre dev ou testez SQL Server :
USE MASTER;
RESTORE DATABASE [MyDatabase]
FROM DISK = 'C:\temp\MyDatabase1.bak'
WITH
MOVE 'MyDatabase' TO 'C:\Sql\MyDatabase.mdf', -- or wherever these live on target
MOVE 'MyDatabase_log' TO 'C:\Sql\MyDatabase_log.ldf',
REPLACE, RECOVERY
Enregistrez ensuite ces scripts sur chaque serveur. Commodité en un clic.
Modifier :
si vous obtenez une erreur lors de la restauration indiquant que les noms logiques ne correspondent pas, vous pouvez les obtenir comme ceci :
RESTORE FILELISTONLY
FROM disk = 'C:\temp\MyDatabaseName1.bak'
Si vous utilisez des connexions SQL Server (et non l'authentification Windows), vous pouvez l'exécuter après chaque restauration (sur la machine de développement/test) :
use MyDatabaseName;
sp_change_users_login 'Auto_Fix', 'userloginname', null, 'userpassword';