亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        應(yīng)用程序中數(shù)據(jù)庫自動(dòng)備份的實(shí)現(xiàn)

        2008-04-12 00:00:00王西鋒張曉孿
        現(xiàn)代電子技術(shù) 2008年8期

        摘 要:應(yīng)用系統(tǒng)的重要數(shù)據(jù)一般都存儲(chǔ)在數(shù)據(jù)庫中,為了避免這些數(shù)據(jù)遭到破壞或者丟失,加強(qiáng)數(shù)據(jù)庫的備份就很有必要。采用ASP.NET技術(shù),在VS.NET_2003和SQL SERVER 2000環(huán)境下,應(yīng)用C#語言和SQLDMO組件設(shè)計(jì)并實(shí)現(xiàn)了數(shù)據(jù)庫的自動(dòng)備份功能,不僅保證了系統(tǒng)中數(shù)據(jù)的安全,也方便了用戶的操作;最后給出并分析了實(shí)現(xiàn)方法的關(guān)鍵代碼。

        關(guān)鍵詞:ASP.NET;數(shù)據(jù)庫;SQL分布式管理對(duì)象;自動(dòng)備份

        中圖分類號(hào):TP309.3文獻(xiàn)標(biāo)識(shí)碼:B

        文章編號(hào):1004-373X(2008)08-118-03

        Implement of Database Automatic Backup in Application Program

        WANG Xifeng,ZHANG Xiaoluan

        (Baoji University of Arts Sciences,Baoji,721007,China)

        Abstract:Nowadays,much important data of application systems are stored in databases,in order to avoid losing or destroying the data,it is significant to strengthen the functions of database′ backup function.Under VS.NET_2003 and SQL Server 2000 condition,the article implements database automatic backup manners by C# and SQLDMO,the ordinary users can operate the database conveniently.Moreover,it is assured the security of database.Finally,the article presents and analyzes some main source codes of the instance.

        Keywords:ASP.NET;database;SQLDMO;automatic backup

        收稿日期:2007-10-16

        1 引 言

        對(duì)于任何應(yīng)用系統(tǒng)而言,數(shù)據(jù)的安全性和可靠性都是至關(guān)重要的。但在計(jì)算機(jī)系統(tǒng)中普遍存在硬件故障、軟件錯(cuò)誤、操作失誤等危及數(shù)據(jù)安全的因素,為了避免數(shù)據(jù)遭到破壞或丟失帶來不可挽回的損失,不論是C/S還是B/S結(jié)構(gòu)的應(yīng)用系統(tǒng),都應(yīng)該加強(qiáng)數(shù)據(jù)庫的備份功能以確保系統(tǒng)重要數(shù)據(jù)的安全。通常,數(shù)據(jù)庫系統(tǒng)都提供了備份功能,但其操作復(fù)雜而且需要一定的專業(yè)知識(shí),并不適合普通用戶。因此,在應(yīng)用系統(tǒng)中通過程序給普通用戶提供操作簡便且功能強(qiáng)大的數(shù)據(jù)庫管理功能是很有必要的。

        2 數(shù)據(jù)庫管理

        備份是數(shù)據(jù)庫管理的重要功能,文獻(xiàn)[1]調(diào)用數(shù)據(jù)庫實(shí)用工具命令完成Oracle、Sybase的普通備份;文獻(xiàn)[2]給出了應(yīng)用ASP技術(shù)實(shí)現(xiàn)SQL數(shù)據(jù)庫遠(yuǎn)程備份和恢復(fù)的方法;文獻(xiàn)[3]提出并論證了數(shù)據(jù)庫實(shí)時(shí)備份的優(yōu)勢與安全性;在文獻(xiàn)[4]中設(shè)計(jì)并實(shí)現(xiàn)了常用的數(shù)據(jù)庫本地和異地等多種方式的備份和恢復(fù)功能,滿足了用戶的基本需求;不足的是這些功能都需要用戶實(shí)時(shí)手工操作才能進(jìn)行,給用戶使用帶來一些不便。事實(shí)上,數(shù)據(jù)庫備份是一項(xiàng)需要定期和重復(fù)進(jìn)行的工作,因而作為一種輔助的備份形式,自動(dòng)備份的優(yōu)勢是顯而易見的。

        自動(dòng)備份就是在固定的時(shí)間,系統(tǒng)根據(jù)用戶的實(shí)際需求,自動(dòng)啟動(dòng)備份作業(yè)對(duì)數(shù)據(jù)庫進(jìn)行備份,用戶僅需要配置一次自動(dòng)備份的信息即可。在本文中,基于SQLDMO組件,在B/S結(jié)構(gòu)下編程實(shí)現(xiàn)了3種方式的自動(dòng)備份功能,進(jìn)一步完善了數(shù)據(jù)庫管理的功能,用戶可以根據(jù)自己的實(shí)際情況來選擇使用。

        3 自動(dòng)備份的設(shè)計(jì)與實(shí)現(xiàn)

        3.1 關(guān)鍵技術(shù)

        SQLDMO是SQL Server的COM組件,擁有60多種對(duì)象和1 000多種方法,是SQL企業(yè)管理器的應(yīng)用程序接口,其核心對(duì)象按照企業(yè)管理器的基本分層進(jìn)行組織,可以根據(jù)對(duì)象的屬性和與對(duì)象關(guān)聯(lián)的方法編寫各種應(yīng)用程序管理SQL Server服務(wù)器;同時(shí),ASP.NET是功能強(qiáng)大的服務(wù)器端技術(shù),其開發(fā)的應(yīng)用系統(tǒng)不僅結(jié)構(gòu)清晰,而且更易于維護(hù)和擴(kuò)展。因此,本文的應(yīng)用程序是基于B/S結(jié)構(gòu)開發(fā)的,所有頁面均采用ASP.NET實(shí)現(xiàn)。編程實(shí)現(xiàn)時(shí)分為WEB和BLL兩層,其中WEB層是前臺(tái),通過調(diào)用后臺(tái)的功能函數(shù)實(shí)現(xiàn)自動(dòng)備份;BLL層作為后臺(tái)則封裝了如創(chuàng)建和刪除作業(yè)、備份以及獲取備份信息等功能函數(shù)。

        3.2 建立與數(shù)據(jù)庫的連接

        由于SQLDMO是來自COM對(duì)象的SQLDMO.dll,在使用前需要將SQLDMO的類型庫添加到C#的引用中,然后創(chuàng)建SQLDMO對(duì)象的實(shí)例,設(shè)置對(duì)象的方法以連接到SQL服務(wù)器上,最后運(yùn)用該對(duì)象的方法實(shí)現(xiàn)功能。在實(shí)現(xiàn)自動(dòng)備份前,首先需要應(yīng)用SQLServer對(duì)象的connect()方法建立系統(tǒng)與數(shù)據(jù)庫服務(wù)器的連接,其主要代碼如下[2,5]

        Private SQLDMO.SQLServer server = 1;//創(chuàng)建一個(gè)對(duì)象

        server.Connect(serverName,login,pwd); //和數(shù)據(jù)庫系統(tǒng)建立連接

        …

        server.DisConnect(); //完成操作后斷開和數(shù)據(jù)庫的連接

        3.3 自動(dòng)備份的設(shè)計(jì)與實(shí)現(xiàn)

        在實(shí)現(xiàn)數(shù)據(jù)庫自動(dòng)備份時(shí),采用定時(shí)自動(dòng)備份的方式,需要在BLL層使用SQLDMO組件創(chuàng)建SQLServe和Job的實(shí)例對(duì)象,再應(yīng)用其方法和屬性完成獲取備份信息函數(shù)GetMessage()、創(chuàng)建作業(yè)CreatJob()和刪除作業(yè)RemoveJob()等功能函數(shù),然后在實(shí)現(xiàn)WEB層的自動(dòng)備份方式時(shí),調(diào)用相應(yīng)的函數(shù)直接創(chuàng)建或撤銷SQL Server 2000→企業(yè)管理器→管理→SQL Server代理→作業(yè)下的一個(gè)定時(shí)作業(yè)。圖1給出了自動(dòng)備份的頁面效果圖:

        圖1 數(shù)據(jù)庫自動(dòng)備份頁面

        在圖2中,啟動(dòng)自動(dòng)定時(shí)備份功能以后,用戶只要選擇好備份方式(每天,每周,每月)、備份文件保存路徑、備份時(shí)間等參數(shù),確認(rèn)后便相應(yīng)地在SQL Server中新加了一個(gè)自動(dòng)定時(shí)備份的新作業(yè),備份文件將按照用戶配置信息按時(shí)自動(dòng)備份到相應(yīng)的目錄下。

        3.3.1 每天定時(shí)備份的實(shí)現(xiàn)

        每天定時(shí)備份就是在每一天的某個(gè)固定時(shí)間,系統(tǒng)自動(dòng)執(zhí)行備份作業(yè)將數(shù)據(jù)庫信息備份到用戶選定的目錄下。實(shí)現(xiàn)時(shí),首先從頁面獲取存儲(chǔ)路徑path、備份方式type、備份時(shí)間hour,minute,second等相關(guān)信息,然后調(diào)用BLL層的dayback()等函數(shù)來完成。選擇備份目錄時(shí),用戶可以使用系統(tǒng)默認(rèn)的目錄,也可以選擇服務(wù)器上現(xiàn)有的目錄或自己新建目錄來存儲(chǔ)備份文件,選擇存儲(chǔ)目錄如圖2所示。

        選擇好存儲(chǔ)目錄以后,就可以設(shè)置每天定時(shí)備份的其他配置,確認(rèn)后就可以在SQL Server代理下創(chuàng)建一個(gè)新的作業(yè)并刪除以前的其他作業(yè),其關(guān)鍵代碼如下[2,5,6]

        private SQLDMO.Job oJob = 1;//創(chuàng)建一個(gè)作業(yè)實(shí)例

        …

        SQLDMO.JobStep oJobStep = 1;//添加作業(yè)步驟備份數(shù)據(jù)庫文件

        oJob.Name = \"Backup_DbCida\";//新建作業(yè)名

        server.JobServer.Jobs.Add(oJob);//添加作業(yè)

        oJob.BeginAlter();

        oJobStep.Command =\"declare @filename nvarchar(100)\" +\"set \" + savepath +\"print @filename BACKUP DATABASE [DbCida] TO DISK = @filename WITH NOINIT ,NOUNLOAD ,NAME = N′DbCida備份′,NOSKIP ,STATS = 10,NOFORMAT\";//備份數(shù)據(jù)庫

        oJob.JobSteps.Add(oJobStep);//添加作業(yè)步驟

        …

        oJob = server.JobServer.Jobs.Item(\"Backup_DbCida\");//得到備份類型

        SQLDMO.JobSchedule schedule = oJob.JobSchedules.Item(\"backup\");

        oJob = server.JobServer.Jobs.Item(\"Backup_DbCida\");//得到每天調(diào)度計(jì)劃的詳細(xì)信息

        string retStr = schedule.Schedule.ActiveStartTimeOfDay.ToString();//得到備份時(shí)間

        schedule.Name = \"backup\";//調(diào)度任務(wù)名稱

        ….

        BLL_Backup backup = new BLL_Backup();//根據(jù)備份信息備份

        backup.RemoveJob();//判斷是否已有作業(yè),有的話刪除

        backup.JobStep(type,\"DbCida\");//根據(jù)類型新建作業(yè)

        backup.dayback(hour,minute,second,starttime);//調(diào)用函數(shù)進(jìn)行每天定時(shí)備份

        backup.DisConnect();//完成備份后斷開和數(shù)據(jù)庫的連接

        在圖2中,用戶確認(rèn)所選的各項(xiàng)備份信息后,若自動(dòng)定時(shí)備份作業(yè)創(chuàng)建成功的話,將彈出一個(gè)提示框告訴用戶作業(yè)添加完成。

        圖2 選擇、創(chuàng)建備份目錄

        [BT4+*2]3.3.2 每周定時(shí)備份的實(shí)現(xiàn)

        每周定時(shí)備份,即在一周中選擇固定一天的某個(gè)時(shí)間,自動(dòng)執(zhí)行作業(yè)將數(shù)據(jù)庫信息備份到用戶選定的目錄下,備份目錄的選擇和每天備份類似。實(shí)現(xiàn)時(shí),首先從頁面得到存儲(chǔ)路徑path、每周備份方式type和備份的具體時(shí)間等詳細(xì)信息,然后調(diào)用weekback()等功能函數(shù)完成。在用戶確認(rèn)各項(xiàng)備份信息后,就成功地設(shè)置了一個(gè)每周備份的新作業(yè),進(jìn)行每周備份的關(guān)鍵代碼如下[2,5,6]

        private SQLDMO.Job oJob = 1;//創(chuàng)建一個(gè)作業(yè)實(shí)例

        oJob = new SQLDMO.JobClass();

        .……..

        oJob = server.JobServer.Jobs.Item(\"Backup_DbCida\")//;得到周備份詳細(xì)信息

        SQLDMO.JobSchedule schedule = oJob.JobSchedules.Item(\"backup\");

        week = schedule.Schedule.FrequencyInterval.ToString();//得到備份信息是星期幾

        string retStr = schedule.Schedule.ActiveStartTimeOfDay.ToString();//得到備份時(shí)間

        schedule.Schedule.ActiveStartDate = int.Parse(starttime);//定時(shí)備份開始時(shí)間

        ………..

        backup.JobStep(type,\"DbCida\");//根據(jù)類型新建作業(yè)

        backup.WeekBack(hour,minute,second,starttime,backweek);//進(jìn)行每周備份

        3.3.3 每月定時(shí)備份的實(shí)現(xiàn)

        每月定時(shí)備份就是在一月中選擇固定的一天的某個(gè)時(shí)刻,系統(tǒng)自動(dòng)將數(shù)據(jù)庫信息備份到用戶選定的路徑下,備份目錄的選擇與每天備份時(shí)類似。在實(shí)現(xiàn)時(shí),從頁面得到存儲(chǔ)路徑、每月備份方式、備份具體時(shí)間等詳細(xì)信息,然后調(diào)用BLL層的monthback()等函數(shù)來完成該功能。進(jìn)行每月備份的主要代碼如下[2,5,6]

        oJob = server.JobServer.Jobs.Item(\"Backup_DbCida\");//得到月備份詳細(xì)信息

        string date1 = schedule.Schedule.FrequencyInterval.ToString();//得到備份具體日期

        string retStr = schedule.Schedule.ActiveStartTimeOfDay.ToString();//得到備份時(shí)間

        ……………

        SQLDMO.JobSchedule schedule = new SQLDMO.JobScheduleClass();

        schedule.Name = \"backup\";//調(diào)度任務(wù)名稱

        schedule.Schedule.ActiveStartDate = int.Parse(starttime);//定時(shí)備份開始時(shí)間

        ………..

        backup.JobStep(type,\"DbCida\");//根據(jù)類型新建作業(yè)

        backup.MonthBack(hour,minute,second,starttime,backdate);

        在確認(rèn)備份信息后,就可以成功設(shè)置一個(gè)每月備份的新作業(yè),當(dāng)然用戶也可以隨時(shí)根據(jù)具體情況的變化更改自己的自動(dòng)備份設(shè)置。需要注意的是,在進(jìn)行自動(dòng)備份時(shí),用戶一定要保證選擇存放備份文件的目錄必須有足夠的空間;另外,數(shù)據(jù)庫服務(wù)器上的SQL Server代理也必須設(shè)置為自動(dòng)隨機(jī)啟動(dòng),否則設(shè)定的自動(dòng)定時(shí)備份作業(yè)將不被執(zhí)行。[LL]

        3.4 停用自動(dòng)備份

        當(dāng)用戶決定不需要使用定時(shí)自動(dòng)備份功能時(shí),可以選擇圖2中的“停止定時(shí)備份”單選按鈕來完成相應(yīng)功能,如圖3所示:

        圖3 停止自動(dòng)定時(shí)備份

        實(shí)現(xiàn)的主要代碼如下[5,6]

        …

        backup.RemoveJob();//根據(jù)作業(yè)名刪除所有作業(yè)

        4 結(jié) 語 

        在目前Internet非常普及而網(wǎng)絡(luò)又不太安全的環(huán)境下,加強(qiáng)數(shù)據(jù)庫的備份功能有著十分重要的現(xiàn)實(shí)意義。本文中,我們應(yīng)用SQLDMO組件在ASP.NET環(huán)境下編程實(shí)現(xiàn)了數(shù)據(jù)庫備份功能的自動(dòng)化,方便了用戶操作;同時(shí),也為應(yīng)用程序客戶端實(shí)現(xiàn)數(shù)據(jù)庫維護(hù)自動(dòng)化提供了一個(gè)解決方法,具有一定的實(shí)用價(jià)值。接下來,將繼續(xù)實(shí)現(xiàn)數(shù)據(jù)庫的差異備份和事務(wù)日志備份等功能,進(jìn)一步完善數(shù)據(jù)庫管理功能。

        參 考 文 獻(xiàn)

        [1]鄧健青,石崗.應(yīng)用程序中數(shù)據(jù)庫備份與恢復(fù)的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2004(5):143144.

        [2]王德剛,潘新,王德強(qiáng),等.通過ASP實(shí)現(xiàn)SQL數(shù)據(jù)庫的遠(yuǎn)程備份和恢復(fù)[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào),2005,26(3):8386.

        [3]鄭阿奇.SQL Server 2000 數(shù)據(jù)庫實(shí)時(shí)備份[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(1):126128.

        [4]王西鋒,張曉孿,李乃乾.基于SQLDMO的數(shù)據(jù)庫備份和恢復(fù)的設(shè)計(jì)與實(shí)現(xiàn)[J].陜西理工學(xué)院學(xué)報(bào),2007,23(3):4650.

        [5]Microsoft SQL Server Books Online[Z].http://msdn2.microsoft.com/zhcn/library/ms131955.aspx,2005.

        [6]李萬寶.ASP.NET技術(shù)詳解與應(yīng)用實(shí)例[M].北京:機(jī)械工業(yè)出版社,2005.

        作者簡介 王西鋒 男,1978年出生,漢族,陜西渭南人,講師,碩士。主要從事計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用技術(shù)的研究。

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文

        国产亚洲情侣一区二区无 | 亚洲综合网国产精品一区| 日本特黄特色特爽大片| 国产极品久久久久极品| 亚洲Av无码专区尤物| 男女啪啪动态视频在线观看| 婷婷四虎东京热无码群交双飞视频| 国产精品va无码一区二区| 国产国语对白一区二区三区| 亚洲中文字幕一区高清在线| 亚洲国产果冻传媒av在线观看| 国产99久久精品一区二区| 国产乱人伦真实精品视频| 亚洲成人av在线播放不卡| 97久久国产亚洲精品超碰热| 少妇被躁爽到高潮无码文| 综合久久久久6亚洲综合| 久久99国产综合精品女同| 精品久久久无码人妻中文字幕豆芽 | 国产人妻精品一区二区三区| 亚洲国产成人精品91久久久| 永久免费看黄网站性色| 在线观看的网站| 艳妇乳肉豪妇荡乳av无码福利 | 国产一区二区三区视频网| 亚洲av无码精品色午夜在线观看| 伊香蕉大综综综合久久| 日韩国产自拍视频在线观看| 深夜福利啪啪片| 国产成人免费a在线视频| 少妇被日到高潮的视频| 国产精品一区二区性色| 四川老熟女下面又黑又肥| 国产成人一区二区三区高清| 国产丝袜爆操在线观看| 芒果乱码国色天香| 亚洲国产午夜精品乱码| 国产精品丝袜美女久久| 精品国产精品国产偷麻豆| 波多野结衣中文字幕在线视频| 综合人妻久久一区二区精品|