2010-05-24 59 views
6

我有一個演示站點,任何人都可以登錄並測試管理界面。每小時自動恢復數據庫的最佳方式

每小時我想刷新SQL 2008數據庫中的所有數據並將其從原始數據恢復。

紅門軟件有一些很棒的工具,但它們超出了我的預算。

我可以簡單地製作數據庫的數據文件的備份副本,然後有一個c#控制檯應用程序刪除它並複製原始。然後我可以有一個Windows時間表任務來運行.exe每小時。

這是簡單和免費的......這項工作?

我使用SQL Server 2008 R2的網絡版

據我瞭解,紅門軟件在技術上更好,因爲我可以將它設置爲分析數據庫,並僅更新更改過的記錄,並我上面的方法就像一個「大錘」。

+0

不確定您的版本是否支持此功能,但您也可以查看快照。您可以創建數據庫的快照並定期恢復。恢復數據庫時,數據庫需要處於單用戶模式。 – flup 2013-02-20 13:01:01

回答

9

這是簡單和免費的......這項工作?

是的,你可以那樣做,只記得把DB在單用戶模式下恢復它,否則你恢復之前,將無法

示例腳本

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 
+0

太棒了,我只是將一個預定的工作設置爲SQL來每小時運行一次。謝謝! – aron 2010-05-24 17:05:45

1

這可以使用SQL腳本化並計劃爲服務器上的作業,每小時執行一次。既然你有一個備份副本,我認爲這是原始的,那麼你所需要做的就是使數據庫脫機,從備份中恢復,使數據庫恢復在線狀態。所有這些都可以編寫腳本。你需要這些腳本嗎?

+0

嗨websch01ar,是的,請發郵件給我。謝謝 aron {at} uswebpro(句號)com – aron 2010-05-24 16:52:50

0

你可以還要分離數據庫,覆蓋模板中的數據和日誌文件(先前分離),然後重新附加。

+0

沒錯,但那不是自動的 – aron 2010-05-26 14:46:53

+0

@aron它可以像恢復一樣自動化。您可以使用預定的SSIS包,使用xp_cmdshell的腳本或帶有sqlcmd的外部Windows命令腳本來執行SQL操作。 – 2010-05-26 15:21:21

相關問題