程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 簡單實現Standby SQL Server 數據庫的方法

簡單實現Standby SQL Server 數據庫的方法

編輯:關於SqlServer

一、什麼要備份數據庫 ?

在現實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分);

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

備份環境下的服務器在[控制面板]-》[任務計劃]裡添加一個每天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 數據庫方法在我的工作環境也是運行良好的。

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved