Надеюсь, вы все равно регулярно создаете резервные копии своей базы данных.
Так что вам просто нужно взять самую новую резервную копию и восстановить ее на другом сервере (и, возможно, с другим именем базы данных).
На моем рабочем месте мы используем MS SQL Server, и мы также делаем это:
Наша основная база данных резервируется каждый вечер в 21:00 (полное резервное копирование).
Каждый день в 11пополудни, задание агента SQL Server на другом сервере берет новейшую резервную копию из папки резервных копий и восстанавливает ее как OurMainDatabase_Yesterday
.
Вот пример сценария для MS SQL Server:
ALTER DATABASE OurMainDatabase_Yesterday SET SINGLE_USER WITH ROLLBACK IMMEDIATE
USE master
EXEC sp_detach_db 'OurMainDatabase_Yesterday', 'true'
-- use today's backup from the main server
declare @BackupPath as nvarchar(500)
set @BackupPath = '\\MainServer\backup\OurMainDatabase\OurMainDatabase_backup_'
+ convert(varchar(10),getdate(),112) + '2100.BAK'
RESTORE DATABASE OurMainDatabase_Yesterday
FROM DISK = @BackupPath
WITH MOVE 'OurMainDatabase_Data'
TO 'F:\Data\OurMainDatabase_Yesterday_Data.mdf',
MOVE 'OurMainDatabase_Log'
TO 'G:\Logs\OurMainDatabase_Yesterday_Log.ldf',
REPLACE
ALTER DATABASE OurMainDatabase_Yesterday SET MULTI_USER