每小时自动恢复数据库的最佳方法

时间:2010-05-24 16:47:22

标签: sql-server database sql-server-2008 database-restore

我有一个演示网站,任何人都可以登录并测试管理界面。

我想每小时刷新SQL 2008数据库中的所有数据并从原始数据中恢复它。

Red Gate Software为此提供了一些很棒的工具,但它们现在超出了我的预算。

我可以简单地制作数据库数据文件的备份副本,然后使用c#控制台应用程序删除它并复制原始文件。然后我可以有一个Windows计划任务来每小时运行.exe。

这很简单而且免费......这会有效吗?

我正在使用SQL Server 2008 R2网络版

我知道Red Gate Software在技术上更好,因为我可以设置它来分析数据库,只更新已更改的记录,而我上面的方法就像一个“大锤”。

3 个答案:

答案 0 :(得分:10)

  
    

这很简单而且自由......这会有用吗?

  

是的,您可以这样做,只需记住在恢复数据库之前将数据库置于单用户模式,否则您的恢复将失败

示例脚本

USE master
GO

ALTER DATABASE YourDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO



RESTORE DATABASE YourDB FROM DISK=N'D:\Backup\Pristine.BAK' WITH  FILE = 1,  
NOUNLOAD,  REPLACE,  STATS = 10
GO

ALTER DATABASE YourDB SET MULTI_USER
GO

答案 1 :(得分:1)

这可以使用SQL编写脚本,并作为服务器上的作业安排,每小时执行一次。由于您有备份副本,我认为,这是原始的,然后您需要做的就是使数据库脱机,从备份还原,使数据库重新联机。所有这些都可以编写脚本。你需要脚本吗?

答案 2 :(得分:0)

您还可以分离数据库,覆盖模板中的数据和日志文件(之前已分离),然后重新附加。