6

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

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

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

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

它既简单又免费……这行得通吗?

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

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

4

3 回答 3

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
于 2010-05-24T16:55:07.640 回答
1

这可以使用 SQL 编写脚本并安排为服务器上的作业,每小时执行一次。既然你有一个备份副本,我假设那是原始的,那么你需要做的就是使数据库脱机,从备份中恢复,使数据库重新联机。所有这些都可以编写脚本。你需要脚本吗?

于 2010-05-24T16:50:42.643 回答
0

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

于 2010-05-24T17:41:52.677 回答