如何创建生产SQL数据库的副本?

时间:2011-08-29 12:03:48

标签: sql sql-server-2008-r2

我正在寻找最佳实践,有效的方法。我需要每月将我的生产数据库复制一次到开发中。所以我想尽可能自动化这个过程。

数据库大小约20GB,带日志文件(完全恢复模式)。

如果我需要提供更多详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:4)

希望您无论如何都要定期备份数据库 所以你基本上只需要采用最新的备份并将其恢复到不同的服务器上(并且可能使用不同的数据库名称)。

在我的工作场所,我们正在使用MS SQL Server,我们也在这样做:
我们的主数据库每晚9点备份(完整备份) 每天晚上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