SQL Server資料庫的簡單實現方法

iSQlServer發表於2010-02-24

  一、什麼要備份資料庫 ?

  在現實IT世界裡,我們使用的伺服器硬體可能因為使用時間過長,而發生故障;

  Windows系列伺服器有可能藍屏或者感染病毒;SQL Server資料庫也可能因為誤操作或Bug而停止執行。

  如何有效備份SQL Server資料庫,避免故障真正發生時長時間的當機,是每個系統管理員必須面對的任務。

  二、簡單實現Standby Sql Server 資料庫的原理

  我這裡介紹一種不需要多大硬體投入(只需一臺專用或兼用備份伺服器)的Standby SQL Server的簡單配置和使用方法。

  資料庫完全備份和日誌備份檔案通過Msdos下xcopy命令從工作環境複製到備份環境(比在SQL Server裡設定日誌轉移方法要簡單得多),

  備份環境再根據xcopy過來的備份檔案設定作業(執行一些儲存過程)來完成自動恢復操作。

  如果意外發生時,這樣的備份體系當然還需要人為地來干預和恢復(如改變備份機器的IP地址和主機名或更改應用程式的連線資料庫引數等),會丟失一些資料也在所難免。

  下面是我的測試環境Standby SQL Server備份體系圖:

  Standby SQL Server資料庫的簡單實現方法

  三、備份和恢復案例介紹

  首先我們要了解系統所能承受的最長當機時間是多少(假如是1小時),能承受的資料丟失最多是多少(假如是30分鐘),用它來定下備份和恢復的目標:

  工作環境下的某一個SQL Server資料庫(假如是db_test)必須設定成完全故障還原模式;

  然後在資料庫維護計劃裡設定每天凌晨四點做一次完全資料庫備份(每天從0:00開始,每20分鐘做一次資料庫日誌檔案的備份,直到23:59分);

  備份目錄下只保留最近一天內的完全備份和日誌備份檔案;並把此目錄共享。

  備份環境下的伺服器在[控制皮膚]->[任務計劃]裡新增一個每天0:05分開始,每20分鐘執行一次的xcopy區域網上備份目錄下最新檔案的任務,直到23:59分。

  xcopy \\192.168.0.1\db_test_backup\ F:\backup_data\db_test\ /c /y /d /s

  備份伺服器上SQL Server根據複製過來的備份檔案,也每天0:10分開始,每20分鐘執行一次由舊到新,逐一恢復資料庫的作業(呼叫我改寫的過程sp_RestoreDir實現);

  另外還有一個刪除備份伺服器兩天前備份檔案的作業(呼叫我寫的過程p_delete_db_test_backup實現),避免備份硬碟扇區被裝滿。

  過程sp_RestoreDir的原始碼: sp_RestoreDir.sql

  過程p_delete_db_test_backup的原始碼:p_delete_db_test_backup.sql

  四、結束語

  這裡介紹的簡單實現Standby Sql Server 資料庫方法在我的工作環境也是執行良好的。

  它沒有主從伺服器之間明顯的依賴關係,沒有複雜的配置,只要我們定好備份和恢復時間計劃表,就可以簡單實現實時備份資料庫的目的了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-627732/,如需轉載,請註明出處,否則將追究法律責任。

相關文章