前言
實現磁帶備份數據的功能有兩方面的困難首先MS SQL Server(以下簡稱SQL)所提供的數據庫的整體備份及恢復功能不能直接滿足本系統要求的數據滾動備份其次需要解決如何在Web環境下實現磁帶數據備份功能
利用SQL中現有的數據庫備份和恢復的命令以及NT中的IDC技術實現SQL數據庫中數據滾動備份到磁帶的功能本系統所實現功能既能保證近一段時間的數據總在數據庫中又能保證系統管理員可隨時恢復備份數據供用戶查詢本文所實現的功能具有普遍的意義特別適用於中小型企業開發基於Intranet技術的管理信息系統
磁帶數據備份及恢復的工作過程
為了充分利用SQL中現有的數據庫備份與恢復功能以降低實現磁帶數據備份的代價我們特地在硬盤上建立了一個與磁帶的容量相當的數據庫我們稱之為橋數據庫如FJJDBBK可方便地實現數據的滾動備份了其工作過程是管理員把某月的數據從主數據庫移到橋數據庫中;然後用SQL的備份功能把橋數據庫備份到磁帶上用戶需要查看磁帶中的歷史數據時系統又用SQL的恢復備份功能把磁帶中的數據恢復到橋數據庫中用戶直接在橋數據庫中查閱歷史數據此外在數據備份到磁帶後在進行下次數據備份前必須清空備份數據庫中的數據為了提高工作效率我們建立了一個空白橋數據庫(沒有數據時的橋數據庫)每次進行磁帶備份數據之前就用此空白數據庫恢復橋數據庫空白數據庫文件建立後要保存好不可隨便刪除
建立該備份空白數據庫過程為先建立主數據庫FJJDBBK然後在 FJJDBBK中建立與當前數據庫中一樣結構的表建立這些表結構時最好的方法是先用Enterprise Manager的Object菜單下的Generate SQL Scripts功能生成建立這些表的Scripts文件然後選擇FJJDBBK數據庫用Enterprise Manager的Tools菜單下的Query Analyzer功能運行該文件就建立了這些所需表顯然這時的FJJDBBK為空數據庫我們再利用備份命令或運行Tools菜單下的 Backup/Restore功能備份該空數據庫
磁帶數據備份及恢復的實現
在NT中Web服務器IIS(Internet Information Server)提供了完善的訪問SQL的技術IDCIDC是一個DLL文件(HTTPODBCDLL)其實它通過ODBC接口可訪問各種數據庫在具體實現Web頁面訪問數據庫時需建立兩種類型的文件IDC文件(*idc)和HTML模板文件(*htx)IDC文件用於控制數據庫的訪問它一般由兩部分組成
◆文件頭
指明系統數據源模板文件名用戶名及口令有時還包括一些有關檢索數據庫方面的參數設置
◆文件主體
這部分內容以SQLStatement為起始標志然後寫操縱數據庫的標准 SQL語句注意每條語句以+號開頭它作為區分每條SQL語句的標志需要強調的是對於MS SQL數據庫IDC可用其任何標准的命令及函數例如定義變量控制數據流等(見實例)
IDC的處理流程如下首先Web服務器IIS分析浏覽器傳來的URL字符串如果當前字符串以*idc結尾就將該IDC請求傳給IDC接口模塊IDC將依次讀取並解釋IDC文件的內容通過ODBC模塊向數據庫服務器發服務請求;數據庫服務器將執行結果通過ODBC接口返回給IDC模塊接著IDC模塊把結果插入指定的的模板文件形成一個實際的HTML文件交給IIS;最後由IIS將該HTML返回浏覽器
在Web信息系統中要實現完整的磁帶數據備份及恢復功能需要實現以下三個功能數據備份功能數據恢復功能和清理數據功能數據備份功能在保證系統管理員操作的前提下根據用戶輸入的所要備份數據的起始日期和終止日期從主數據庫把要備份的數據轉存到橋數據庫中然後運用SQL的DUMP命令實現該功能數據恢復功能則在保證系統管理員操作的前提下提供恢復橋數據庫和恢復空白橋數據庫的功能只要運用SQL的LOAD命令就可實現上述功能;同樣清理數據功能也要保證在系統管理員操作的前提下根據用戶輸入的所要刪除數據的起始日期和終止日期運用SQL中的DELETE命令刪除當前數據庫中數據因此為了數據備份功能和清理數據功能的順利實施要求每個表都有歸檔時間字段
[] []
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22395.html