實(shí)現(xiàn)Standby SQL Server 數(shù)據(jù)庫(kù)的方法
一、什么要備份數(shù)據(jù)庫(kù) ?
在現(xiàn)實(shí)IT世界里,我們使用的服務(wù)器硬件可能因?yàn)槭褂脮r(shí)間過(guò)長(zhǎng),而發(fā)生故障;
Windows系列服務(wù)器有可能藍(lán)屏或者感染病毒;SQL Server數(shù)據(jù)庫(kù)也可能因?yàn)檎`操作或Bug而停止運(yùn)行。
如何有效備份SQL Server數(shù)據(jù)庫(kù),避免故障真正發(fā)生時(shí)長(zhǎng)時(shí)間的宕機(jī),是每個(gè)系統(tǒng)管理員必須面對(duì)的任務(wù)。
二、簡(jiǎn)單實(shí)現(xiàn)Standby Sql Server 數(shù)據(jù)庫(kù)的原理
我這里介紹一種不需要多大硬件投入(只需一臺(tái)專用或兼用備份服務(wù)器)的Standby SQL Server的簡(jiǎn)單配置和使用方法。
數(shù)據(jù)庫(kù)完全備份和日志備份文件通過(guò)Msdos下xcopy命令從工作環(huán)境復(fù)制到備份環(huán)境(比在SQL Server里設(shè)置日志轉(zhuǎn)移方法要簡(jiǎn)單得多),
備份環(huán)境再根據(jù)xcopy過(guò)來(lái)的備份文件設(shè)定作業(yè)(執(zhí)行一些存儲(chǔ)過(guò)程)來(lái)完成自動(dòng)恢復(fù)操作。
如果意外發(fā)生時(shí),這樣的備份體系當(dāng)然還需要人為地來(lái)干預(yù)和恢復(fù)(如改變備份機(jī)器的IP地址和主機(jī)名或更改應(yīng)用程序的連接數(shù)據(jù)庫(kù)參數(shù)等),會(huì)丟失一些數(shù)據(jù)也在所難免。
下面是我的測(cè)試環(huán)境Standby SQL Server備份體系圖:
三、備份和恢復(fù)案例介紹
首先我們要了解系統(tǒng)所能承受的最長(zhǎng)宕機(jī)時(shí)間是多少(假如是1小時(shí)),能承受的數(shù)據(jù)丟失最多是多少(假如是30分鐘),用它來(lái)定下備份和恢復(fù)的目標(biāo):
工作環(huán)境下的某一個(gè)SQL Server數(shù)據(jù)庫(kù)(假如是db_test)必須設(shè)置成完全故障還原模式;
然后在數(shù)據(jù)庫(kù)維護(hù)計(jì)劃里設(shè)定每天凌晨四點(diǎn)做一次完全數(shù)據(jù)庫(kù)備份(每天從0:00開(kāi)始,每20分鐘做一次數(shù)據(jù)庫(kù)日志文件的備份,直到23:59分);
備份目錄下只保留最近一天內(nèi)的完全備份和日志備份文件;并把此目錄共享。
備份環(huán)境下的服務(wù)器在[控制面板]-》[任務(wù)計(jì)劃]里添加一個(gè)每天0:05分開(kāi)始,每20分鐘執(zhí)行一次的xcopy局域網(wǎng)上備份目錄下***文件的任務(wù),直到23:59分。
xcopy \\192.168.0.1\db_test_backup\ F:\backup_data\db_test\ /c /y /d /s
備份服務(wù)器上SQL Server根據(jù)復(fù)制過(guò)來(lái)的備份文件,也每天0:10分開(kāi)始,每20分鐘執(zhí)行一次由舊到新,逐一恢復(fù)數(shù)據(jù)庫(kù)的作業(yè)(調(diào)用我改寫的過(guò)程sp_RestoreDir實(shí)現(xiàn));
另外還有一個(gè)刪除備份服務(wù)器兩天前備份文件的作業(yè)(調(diào)用我寫的過(guò)程p_delete_db_test_backup實(shí)現(xiàn)),避免備份硬盤扇區(qū)被裝滿。
過(guò)程sp_RestoreDir的源代碼: sp_RestoreDir.sql
過(guò)程p_delete_db_test_backup的源代碼:p_delete_db_test_backup.sql
四、結(jié)束語(yǔ)
實(shí)現(xiàn)Standby SQL Server 數(shù)據(jù)庫(kù)的方法沒(méi)有主從服務(wù)器之間明顯的依賴關(guān)系,沒(méi)有復(fù)雜的配置,只要我們定好備份和恢復(fù)時(shí)間計(jì)劃表,就可以簡(jiǎn)單實(shí)現(xiàn)實(shí)時(shí)備份數(shù)據(jù)庫(kù)的目的了。希望上文中涉及到的內(nèi)容對(duì)大家能夠有所幫助。
【編輯推薦】
- SQL Server 數(shù)據(jù)庫(kù)故障修復(fù)***技巧之一
- 對(duì)SQL Server 數(shù)據(jù)庫(kù)易混淆的數(shù)據(jù)類型的描述
- SQL Server 數(shù)據(jù)庫(kù)出現(xiàn)崩潰狀況的補(bǔ)救
- SQL Server 數(shù)據(jù)庫(kù)內(nèi)存持續(xù)不斷增加的原因