成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

MS SQL Server中數(shù)據(jù)的磁帶備份與恢復(fù)

2010-08-28 10:49:52來源:西部e網(wǎng)作者:

1 引言

實(shí)現(xiàn)磁帶備份數(shù)據(jù)的功能有兩方面的困難:首先,MS SQL Server(以下簡稱SQL)所提供的數(shù)據(jù)庫的整體備份及恢復(fù)功能不能直接滿足本系統(tǒng)要求的數(shù)據(jù)滾動備份。其次,需要解決如何在Web環(huán)境下實(shí)現(xiàn)磁帶數(shù)據(jù)備份功能。

利用SQL中現(xiàn)有的數(shù)據(jù)庫備份和恢復(fù)的命令以及NT中的IDC技術(shù),實(shí)現(xiàn)SQL數(shù)據(jù)庫中數(shù)據(jù)滾動備份到磁帶的功能。本系統(tǒng)所實(shí)現(xiàn)功能既能保證近一段時間的數(shù)據(jù)總在數(shù)據(jù)庫中,又能保證系統(tǒng)管理員可隨時恢復(fù)備份數(shù)據(jù),供用戶查詢。本文所實(shí)現(xiàn)的功能具有普遍的意義,特別適用于中小型企業(yè)開發(fā)基于Intranet技術(shù)的管理信息系統(tǒng)。

2 磁帶數(shù)據(jù)備份及恢復(fù)的工作過程

為了充分利用SQL中現(xiàn)有的數(shù)據(jù)庫備份與恢復(fù)功能,以降低實(shí)現(xiàn)磁帶數(shù)據(jù)備份的代價,我們特地在硬盤上建立了一個與磁帶的容量相當(dāng)?shù)臄?shù)據(jù)庫,我們稱之為橋數(shù)據(jù)庫,如FJJDBBK。可方便地實(shí)現(xiàn)數(shù)據(jù)的滾動備份了。其工作過程是:管理員把某月的數(shù)據(jù)從主數(shù)據(jù)庫移到橋數(shù)據(jù)庫中;然后用SQL的備份功能把橋數(shù)據(jù)庫備份到磁帶上。用戶需要查看磁帶中的歷史數(shù)據(jù)時,系統(tǒng)又用SQL的恢復(fù)備份功能把磁帶中的數(shù)據(jù)恢復(fù)到橋數(shù)據(jù)庫中,用戶直接在橋數(shù)據(jù)庫中查閱歷史數(shù)據(jù)。此外,在數(shù)據(jù)備份到磁帶后,在進(jìn)行下次數(shù)據(jù)備份前,必須清空備份數(shù)據(jù)庫中的數(shù)據(jù)。為了提高工作效率,我們建立了一個空白橋數(shù)據(jù)庫(沒有數(shù)據(jù)時的橋數(shù)據(jù)庫)。每次進(jìn)行磁帶備份數(shù)據(jù)之前,就用此空白數(shù)據(jù)庫恢復(fù)橋數(shù)據(jù)庫。空白數(shù)據(jù)庫文件建立后要保存好,不可隨便刪除。 小蟲網(wǎng)絡(luò)技術(shù)

建立該備份空白數(shù)據(jù)庫過程為:先建立主數(shù)據(jù)庫FJJDBBK,然后在FJJDBBK中建立與當(dāng)前數(shù)據(jù)庫中一樣結(jié)構(gòu)的表。建立這些表結(jié)構(gòu)時最好的方法是先用Enterprise Manager的Object菜單下的Generate SQL Scripts功能生成建立這些表的Scripts文件,然后選擇FJJDBBK數(shù)據(jù)庫,用Enterprise Manager的Tools菜單下的Query Analyzer功能運(yùn)行該文件,就建立了這些所需表。顯然,這時的FJJDBBK為空數(shù)據(jù)庫。我們再利用備份命令或運(yùn)行Tools菜單下的Backup/Restore功能備份該空數(shù)據(jù)庫。

3 磁帶數(shù)據(jù)備份及恢復(fù)的實(shí)現(xiàn)

在NT中,Web服務(wù)器IIS(Internet Information Server)提供了完善的訪問SQL的技術(shù)IDC。IDC是一個DLL文件(HTTPODBC.DLL),其實(shí),它通過ODBC接口可訪問各種數(shù)據(jù)庫。在具體實(shí)現(xiàn)Web頁面訪問數(shù)據(jù)庫時,需建立兩種類型的文件:IDC文件(*.idc)和HTML模板文件(*.htx)。IDC文件用于控制數(shù)據(jù)庫的訪問。它一般由兩部分組成:

.文件頭 指明系統(tǒng)數(shù)據(jù)源,模板文件名,用戶名及口令。有時還包括一些有關(guān)檢索數(shù)據(jù)庫方面的參數(shù)設(shè)置。

.文件主體 這部分內(nèi)容以"SQLStatement:"為起始標(biāo)志,然后寫操縱數(shù)據(jù)庫的標(biāo)準(zhǔn)SQL語句。注意,每條語句以"+"號開頭,它作為區(qū)分每條SQL語句的標(biāo)志。需要強(qiáng)調(diào)的是,對于MS SQL數(shù)據(jù)庫,IDC可用其任何標(biāo)準(zhǔn)的命令及函數(shù)。例如定義變量,控制數(shù)據(jù)流等(見實(shí)例)。

IDC的處理流程如下:

首先,Web服務(wù)器IIS分析瀏覽器傳來的URL字符串。如果當(dāng)前字符串以"*.idc"結(jié)尾,就將該IDC請求傳給IDC接口模塊,IDC將依次讀取并解釋IDC文件的內(nèi)容,通過ODBC模塊向數(shù)據(jù)庫服務(wù)器發(fā)服務(wù)請求;數(shù)據(jù)庫服務(wù)器將執(zhí)行結(jié)果通過ODBC接口返回給IDC模塊。接著IDC模塊把結(jié)果插入指定的的模板文件,形成一個實(shí)際的HTML文件交給IIS;最后由IIS將該HTML返回瀏覽器。

在Web信息系統(tǒng)中要實(shí)現(xiàn)完整的磁帶數(shù)據(jù)備份及恢復(fù)功能需要實(shí)現(xiàn)以下三個功能:"數(shù)據(jù)備份"功能、"數(shù)據(jù)恢復(fù)"功能和"清理數(shù)據(jù)"功能。"數(shù)據(jù)備份"功能在保證系統(tǒng)管理員操作的前提下,根據(jù)用戶輸入的所要備份數(shù)據(jù)的起始日期和終止日期,從主數(shù)據(jù)庫把要備份的數(shù)據(jù)轉(zhuǎn)存到橋數(shù)據(jù)庫中,然后運(yùn)用SQL的DUMP命令實(shí)現(xiàn)該功能。"數(shù)據(jù)恢復(fù)"功能則在保證系統(tǒng)管理員操作的前提下,提供"恢復(fù)橋數(shù)據(jù)庫"和"恢復(fù)空白橋數(shù)據(jù)庫"的功能。只要運(yùn)用SQL的LOAD命令就可實(shí)現(xiàn)上述功能;同樣,"清理數(shù)據(jù)"功能也要保證在系統(tǒng)管理員操作的前提下,根據(jù)用戶輸入的所要刪除數(shù)據(jù)的起始日期和終止日期,運(yùn)用SQL中的DELETE命令刪除當(dāng)前數(shù)據(jù)庫中數(shù)據(jù)。因此。為了"數(shù)據(jù)備份"功能和"清理數(shù)據(jù)"功能的順利實(shí)施,要求每個表都有歸檔時間字段。

實(shí)現(xiàn)本系統(tǒng)磁帶數(shù)據(jù)備份與恢復(fù)功能的部分IDC文件如下:

/*BKUP.IDC*/
Datasource: Web SQL
Template: BKUP.htx
Username: sa
Password: sa
SQLStatement: 
+if %jb%=1
+/*判斷系統(tǒng)維護(hù)員*/
+SELECT qsrq=convert(varchar(12),getdate(),1),
zzrq=convert(varchar(12),+dateadd(day,1,getdate()),1)
+/*預(yù)置起始日期和終止日期*/
/*BKUPCZ.IDC*/
Datasource: Web SQL
Template: BKUPCZ.htx
Username: sa
Password: sa
SQLStatement: 
+INSERT FJJDBBK.DBO.JKLD SELECT * FROM FJJDB.DBO.JKLD 
+where convert(varchar(12),gdsj,1)>=′%QSRQ%′ 
and convert(varchar(12),gdsj,1)< =′%ZZRQ%′
…………
+/*把當(dāng)前數(shù)據(jù)庫中選定的數(shù)據(jù)轉(zhuǎn)存到橋數(shù)據(jù)庫中*/
+DUMP DATABASE FJJDBBK TO TAPE = ′\\.\tape0′ WITH INIT, NOUNLOAD 
+/*備份數(shù)據(jù)*/
+SELECT TS=′備份數(shù)據(jù)庫操作已完成!′
/*HUIF.IDC*/
Datasource: Web SQL
Template: HUIF.htx
Username: sa
Password: sa
SQLStatement: 
+if %jb%=1
+begin
+LOAD DATABASE FJJDBBK FROM TAPE=′\\.\TAPE0′ WITH 
NOUNLOAD 
+/*恢復(fù)備份數(shù)據(jù)*/
+SELECT TS=′恢復(fù)數(shù)據(jù)庫操作已完成!′+/*
+end
/*QLSJKCZ.IDC*/
Datasource: Web SQL
Username: sa
Password: sa
Template: QLSJKCZ.htx
SQLStatement:
+delete FJJDB.DBO.JKLD
where convert(varchar(12),gdsj,1)>=′%QSRQ%′ and
convert(varchar(12),gdsj,1)<=′%ZZRQ%′
…………
+/*刪除當(dāng)前數(shù)據(jù)庫中選定的數(shù)據(jù)*/
+SELECT TS=′刪除操作已完成!′

在本系統(tǒng)中,主數(shù)據(jù)庫保證存儲4個月數(shù)據(jù)。系統(tǒng)規(guī)定,系統(tǒng)管理員每月月初備份上月的數(shù)據(jù)到磁帶。然后刪除前第4個月的數(shù)據(jù)。實(shí)現(xiàn)了當(dāng)前數(shù)據(jù)與歷史數(shù)據(jù)的同步查閱,這是Web系統(tǒng)的一個顯著的優(yōu)點(diǎn)。

4 結(jié)語

本文介紹了一種特殊的數(shù)據(jù)磁帶備份與恢復(fù)的具體實(shí)現(xiàn)方法。需要指出的是,數(shù)據(jù)庫備份操作是數(shù)據(jù)庫管理系統(tǒng)非常重要的環(huán)節(jié),而數(shù)據(jù)庫備份操作過程又比較復(fù)雜,因此,要求我們必須建立完善的規(guī)章制度,由專業(yè)的系統(tǒng)管理員進(jìn)行數(shù)據(jù)庫備份和恢復(fù)操作。

關(guān)鍵詞:MSSQLServer

贊助商鏈接:

主站蜘蛛池模板: 噶尔县| 呼和浩特市| 嘉善县| 龙海市| 胶州市| 隆昌县| 凉山| 上虞市| 镇江市| 临漳县| 外汇| 云南省| 鸡西市| 保亭| 上高县| 南阳市| 康平县| 日土县| 太谷县| 宜章县| 石狮市| 卓尼县| 固安县| 洞口县| 福清市| 南岸区| 襄樊市| 青岛市| 丰顺县| 宁国市| 和龙市| 潮安县| 临安市| 中超| 来凤县| 安新县| 海阳市| 乌审旗| 涡阳县| 平乐县| 大冶市|