2010-09-15 39 views
0

我有一個SQL服務器,它有我寫的測試pp。這件事正在引起人們的注意,我擔心如果SQL服務器被破壞或有人做某事愚蠢的話,會丟失數據(以及用戶輸入數據的時間)。SQL備份或複製?

我想到了什麼選擇,我會做一個夜間備份作爲維護計劃,以及我可以做什麼,只要將數據庫複製到另一個SQL服務器框。

有什麼優點和缺點?這裏最好的做法是什麼?

回答

0

如果您只需要保留數據庫的結構和內容,那麼數據庫備份是最好的。

如果您需要使用數據庫的副本,請考慮複製。複製需要更多的工作來維護,如果僅出於備份原因,複製不提供簡單的恢復功能。

+0

任何關於如何獲得日常工作以每天兩次備份數據庫及其所有數據的字眼? – kacalapy 2010-09-15 18:49:16

+0

您可以創建啓動備份的SQL Server計劃作業。有幾種方法可以安排這項工作每天兩次。例如,您可以計劃每12小時運行一次並設置首次運行的時間。 – bobs 2010-09-15 19:21:46

0
  1. 我想你應該結合完整的 備份+轉換日誌備份。
  2. 這種問題應該是 在serverfault.com上 - 實際上 有一個類似的問題 here
0

每日完整備份是最好的。如果數據庫大小很小,則不需要保留副本,因爲恢復時間較短。如果它的大型數據庫可以考慮使用logshipping或鏡像。 對於這些,您需要使數據庫處於完全恢復模式,並且必須定期設置事務日誌備份。 只有當您只關注少數表而不關注整個數據庫時,複製纔有用,並且在他的情況下它將成爲事務複製。 維護計劃嚮導有助於設置定期完整備份以及事務日誌備份。

0

您可以嘗試Web Deploy tool,這對於很多任務來說是免費且強大的。

您只需使用DbFullSql提供程序並指定源和目標文件的連接字符串即可。 Web部署將使用SMO腳本數據庫到文件:

備份數據庫架構和數據:
>msdeploy.exe -verb:sync -source:DbFullSql="Server=.\SQLExpress;Database=MyDatabase;Integrated Security=true" -dest:dbfullsql="d:\DbBackup.sql"

備份只是數據(設置ScriptData屬性,如在此article):
>msdeploy.exe -verb:sync -source:DbFullSql="Server=.\SQLExpress;Database=MyDatabase;Integrated Security=true",ScriptSchema=false,ScriptData=true,ScriptDrops=false -dest:dbfullsql="d:\DbBackup.sql"