一、為什麼要備份數據庫?
在現實IT世界裡,我們使用的服務器硬件可能因為使用時間過長,而發生故障;
Windows系列服務器有可能藍屏或者感染病毒;SQL Server數據庫也可能因為誤操作或Bug而停止運行。
如何有效備份SQL Server數據庫,避免故障真正發生時長時間的宕機,是每個系統管理員必須面對的任務。
二、簡單實現Standby Sql Server 數據庫的原理
我這裡介紹一種不需要多大硬件投入(只需一台專用或兼用備份服務器)的Standby SQL Server的簡單配置和使用方法。
數據庫完全備份和日志備份文件通過Msdos下xcopy命令從工作環境復制到備份環境(比在SQL Server裡設置日志轉移方法要簡單得多),備份環境再根據xcopy過來的備份文件設定作業(執行一些存儲過程)來完成自動恢復操作。
如果意外發生時,這樣的備份體系當然還需要人為地來干預和恢復(如改變備份機器的IP地址和主機名或更改應用程序的連接數據庫參數等),會丟失一些數據也在所難免。
下面是我的測試環境Standby SQL Server備份體系圖:
三、備份和恢復案例介紹
首先我們要了解系統所能承受的最長宕機時間是多少(假如是1小時),能承受的數據丟失最多是多少(假如是30分鐘),用它來定下備份和恢復的目標:
工作環境下的某一個SQL Server數據庫(假如是db_test)必須設置成完全故障還原模式;
然後在數據庫維護計劃裡設定每天凌晨四點做一次完全數據庫備份(每天從0:00開始,每20分鐘做一次數據庫日志文件的備份,直到23:59分);
備份目錄下只保留最近一天內的完全備份和日志備份文件;並把此目錄共享。