我有一个演示网站,任何人都可以登录并测试管理界面。
我想每小时刷新SQL 2008数据库中的所有数据并从原始数据中恢复它。
Red Gate Software为此提供了一些很棒的工具,但它们现在超出了我的预算。
我可以简单地制作数据库数据文件的备份副本,然后使用c#控制台应用程序删除它并复制原始文件。然后我可以有一个Windows计划任务来每小时运行.exe。
这很简单而且免费......这会有效吗?
我正在使用SQL Server 2008 R2网络版
我知道Red Gate Software在技术上更好,因为我可以设置它来分析数据库,只更新已更改的记录,而我上面的方法就像一个“大锤”。
答案 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)
您还可以分离数据库,覆盖模板中的数据和日志文件(之前已分离),然后重新附加。