Uno dei modi più semplici per duplicare un db in un sql server diverso da quello di origine (tipicamente quello di produzione) è utilizzare la metodologia denominata backup/restore.
Molto banalmente consiste nell’effetturare il backup del db dal server di origine creado il relativo file .BAK e succesivamente eseguirne il restore. Tuttavia, quando si svolge queste operazioni è importante fare attenzione ad aluni particolari importanti come la posizione dei file associati al database che potrebbe essere diversa tra il sql server di origine e quello di destinazione.
Per svolgere l’operazione di backup, usando MS Sql server Management, creare un nuova periferica: da Oggetti Server > Periferiche di bakup, clic destro “Nuova periferica di bakup”. In genere viene proposto come directory di destinazione del file .BAK è C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\LOG
Copiare questo file nella stessa cartella del server di destinazione (o volendo anche in una a vostra scelta) e con la stessa procedura creare una periferica di backup nello stesso modo descritto precedentemente.
A questo punto eseguire sul server di destinazione
RESTORE FILELISTONLY
FROM <backup_device>
dove <backup_device> è il nome della periferica di backup (che corrisponde nome del file .BAK, senza l’estensione). Questo statement permette di ottenere il nome del DBName_Data e del DBName_Log da utillzzare nello statement seguente che effettua il restore del DB.
RESTORE DATABASE DBName
FROM DISK = ‘C:\Backup.BAK’
WITH REPLACE, MOVE ‘DBName_Data’ TO ‘C:\MSSQL\DATA\DBName_Data.MDF’,
MOVE ‘DBName_Log’ TO ‘C:\MSSQL\DATA\DBName_Log.LDF’
Notare che esiste la possibilità di impostare manualmente la posizione del file di dati e del file di log assegnati al db che tuttavia è consigliabile impostare rispettivamente su C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\DATA e su C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\LOG