日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

客戶端備份與恢復(fù)MSSQL Server數(shù)據(jù)庫_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:談SQL Server的空值處理策略
數(shù)據(jù)完整性是任何數(shù)據(jù)庫系統(tǒng)要保證的重點。不管系統(tǒng)計劃得有多好,空數(shù)據(jù)值的問題總是存在。本文探討了在SQL Server中處理這些值時涉及的3個問題:計數(shù)、使用空表值以及外鍵處理。 用COUNT(*)處理空值 大多數(shù)集合函數(shù)都能在計算時消除空值;COUNT函數(shù)則屬于例

摘要:本文以SQL SERVER為例,總結(jié)了常用的幾種備份和恢復(fù)數(shù)據(jù)庫的方法,分析了作業(yè)機制的原理,并提出了一種以作業(yè)機制實現(xiàn)恢復(fù)和備份數(shù)據(jù)庫的方法。用戶可以不打開數(shù)據(jù)庫管理器,在應(yīng)用程序客戶端就可以方便地實現(xiàn)數(shù)據(jù)庫的備份和恢復(fù)。

關(guān)鍵詞: 備份 恢復(fù) 作業(yè)機制 數(shù)據(jù)庫

1.概述

備份和恢復(fù)是數(shù)據(jù)庫管理員維護數(shù)據(jù)庫安全性和完整性的重要操作。備份是恢復(fù)數(shù)據(jù)庫最容易和最能防止意外的保證方法。沒有備份,所有的數(shù)據(jù)都可能會丟失。備份可以防止表和數(shù)據(jù)庫遭受破壞、介質(zhì)失效或用戶錯誤而造成數(shù)據(jù)災(zāi)難。恢復(fù)是在意外發(fā)生后,利用備份來恢復(fù)數(shù)據(jù)庫的操作。任何數(shù)據(jù)維護無論是基于C/S還是B/S的信息管理系統(tǒng)都必須具有備份和恢復(fù)數(shù)據(jù)庫的功能。

作為強大數(shù)據(jù)庫SQL SERVER的管理器ENTERPRISE MANAGER,其本身也提供了幾種實現(xiàn)和恢復(fù)數(shù)據(jù)庫的方法,但這幾種方法實現(xiàn)起來,都需要用戶對ENTERPRISE MANAGER相當(dāng)熟悉,而且處理步驟較繁鎖,操作起來容易發(fā)生失誤。因此我們就需要一種更加簡便可行的實現(xiàn)方法。

2.常用的備份和恢復(fù)數(shù)據(jù)庫的方法

在SQL SERVER ENTERPRISE MANAGER是一種強大的管理工具,它能完成很多功能,備份和恢復(fù)數(shù)據(jù)庫是其中的一項基本功能。歸結(jié)起來,借助這個管理工具有三種常用的方法實現(xiàn)備份和恢復(fù)數(shù)據(jù)庫。

⑴ 完全手工方式。在這種方式下,選擇要備份和恢復(fù)的數(shù)據(jù)庫,單擊鼠標右鍵,在快捷菜單中的“ALL TASKS”下選擇備份或者恢復(fù)數(shù)據(jù)庫。這種方式,用戶要進行很多步操作,其中要涉及到一些參數(shù),使用起來容易出錯,尤其對新手來講,一旦操作失誤可能帶來很大的損失。

⑵ 半手工方式。這種方式就是管理員事先建立備份或者恢復(fù)數(shù)據(jù)庫的作業(yè),待到備份或者恢復(fù)數(shù)據(jù)庫的時候,管理員打開“SQL SERVER ENTEPRISE MANAGER”,在“MANAGER”里找到相應(yīng)的作業(yè),然后執(zhí)行之。這種方式,雖然是基于作業(yè)方式實現(xiàn)的,但是管理員必須打開數(shù)據(jù)庫管理器,而且要在繁多的作業(yè)中進行選擇。一旦選擇錯誤并執(zhí)行之,有可能帶來意想不到的損失。

⑶ 全自動方式。在數(shù)據(jù)庫管理器里面,管理員事先建立好恢復(fù)或者備份數(shù)據(jù)庫的作業(yè),然后定制一個執(zhí)行計劃,讓計算機在特定的條件下自己執(zhí)行備份和恢復(fù)操作。這種方式看起來簡單、省事,但是機器在異常情況(如掉電)下,就不能按照計劃執(zhí)行了。

3.作業(yè)機制的工作原理

作業(yè)是ENTERPRISE MANAGER提供的一種定期處理數(shù)據(jù)的一種方法,前面提到的半手工方式和全自動方式雖然利用了作業(yè),但它需要在ENTERPRISE MANAGER里啟動和關(guān)閉作業(yè);我們要討論的是在應(yīng)用程序客戶端啟動和關(guān)閉作業(yè)的機制。

作業(yè)機制的工作原理,由控制體和執(zhí)行體兩大部分構(gòu)成。

控制體顧名思義就是控制作業(yè)執(zhí)行的實體,靠具體編程實現(xiàn)。實現(xiàn)時,要調(diào)用MSDB數(shù)據(jù)庫的系統(tǒng)存儲過程SP_START _JOB,SP_END_JOB等等,同時要訪問表SYSJOBHITORY,獲取作業(yè)執(zhí)行狀態(tài)。

執(zhí)行體就是作業(yè)執(zhí)行的整體,應(yīng)用系統(tǒng)投入使用時建立。應(yīng)用系統(tǒng)安裝時,要建立數(shù)據(jù)庫、備份和恢復(fù)設(shè)備、備份和恢復(fù)作業(yè)。

控制體由用戶觸發(fā),啟動相應(yīng)的作業(yè),交由執(zhí)行體執(zhí)行作業(yè),在執(zhí)行過程中,執(zhí)行體執(zhí)行的每一步狀態(tài)信息都要寫入MSDB數(shù)據(jù)庫的SYSJOBHISTORY表里。同時,控制體不斷獲取執(zhí)行狀態(tài)信息,根據(jù)這些信息,控制體決定繼續(xù)執(zhí)行還是停止該作業(yè)。在作業(yè)執(zhí)行完畢或者出錯停止后,控制體向用戶反饋執(zhí)行結(jié)果。

4.以作業(yè)機制實現(xiàn)數(shù)據(jù)庫的備份和恢復(fù)

為了便于解釋我們以POWER BUILDER實現(xiàn)的一個具體系統(tǒng)為示例,首先看數(shù)據(jù)庫備份的實現(xiàn)步驟。

4.1 執(zhí)行體的建立

(1)建立應(yīng)用系統(tǒng)的數(shù)據(jù)庫XCCXXT。

(2)建立備份數(shù)據(jù)庫所使用的設(shè)備XCCXXTBAK.DAT。

(3)建立備份作業(yè)XCCXXT BACKUP,其中命令行為BACKUP DATABASE XCCXXT TO DISK=“C:\MSSQL7\DATA\BACKUP\XCCXXTBAK.DAT”。

4.2 控制體的實現(xiàn)

在相應(yīng)對象的“備份”按鈕的click事件中寫入以下代碼:

//聲明相應(yīng)的變量

string ls_database,ls_pass,ls_date,ls_time

integer li_gs,li_gs_o

transaction login_trans

login_trans = creat transaction

IF MessageBox("提示信息","是否真的要進行數(shù)據(jù)備份操作?", &

Exclamation!,OKCancel!,2)<>1 then return

//連接MSDB數(shù)據(jù)庫

login_trans.database = "msdb"

connect using login_trans;

if login_trans.sqlcode <> 0 then

messagebox("數(shù)據(jù)庫錯誤信息",login_trans.sqlerrtext)

return

end if

//檢測上次該執(zhí)行體執(zhí)行結(jié)果,用以區(qū)別本次執(zhí)行狀況

select max(instance_id) into :li_gs_o from sysjobhistory using login_trans;

if isnull(li_gs_o) then li_gs_o =0

login_trans.autocommit = true

ls_pass = login_trans.logpass

//運行系統(tǒng)存儲過程SP_START_JOB,啟動執(zhí)行體

prepare sqlsa from "sp_start_job ?" using login_trans;

if login_trans.sqlcode <> 0 then

messagebox("數(shù)據(jù)庫錯誤信息",login_trans.sqlerrtext)

login_trans.autocommit = false

disconnect using login_trans;

login_trans.database = ls_database

return

end if

EXECUTE sqlsa USING ‘XCCXXT BACKUP’;

//檢測執(zhí)行體啟動是否正常

if login_trans.sqlcode <> 0 then

messagebox("數(shù)據(jù)庫錯誤信息",login_trans.sqlerrtext)

login_trans.autocommit = false

disconnect using login_trans;

return

end if

//檢測執(zhí)行體執(zhí)行的整個過程

DO

uf_sleep (1)

select max(instance_id) into :li_gs from sysjobhistory using login_trans;

if isnull(li_gs) then li_gs =0

LOOP WHILE li_gs<=li_gs_o 1

//運行系統(tǒng)存儲過程SP_END_JOB,關(guān)閉執(zhí)行體

prepare sqlsa from "sp_end_job ?" using login_trans;

if login_trans.sqlcode <> 0 then

messagebox("數(shù)據(jù)庫錯誤信息",login_trans.sqlerrtext)

login_trans.autocommit = false

disconnect using login_trans;

login_trans.database = ls_database

return

end if

EXECUTE sqlsa USING ‘XCCXXT BACKUP’;

//返回執(zhí)行結(jié)果

li_gs_o=li_gs - 1

select run_

----------------------------------------------

s,run_date,run_time into :li_gs,:ls_date,

:ls_time from sysjobhistory where instance_id =:li_gs_o using login_trans;

if li_gs = 1 then

st_3.text = left(ls_date,4) '年' mid(ls_date,5,2) '月'

right(ls_date,2) '日' ' ' &

left(ls_time,2) ':' mid(ls_time,3,2) ':' right(ls_time,2)

messagebox('提示',"數(shù)據(jù)庫備份操作成功!")

else

messagebox('提示',"數(shù)據(jù)庫備份操作失敗!")

end if

//斷開與數(shù)據(jù)庫MSDB的連接

login_trans.autocommit = false

disconnect using login_trans;

if login_trans.sqlcode <> 0 then

messagebox("數(shù)據(jù)庫錯誤信息",login_trans.sqlerrtext)

end if

4.3 備份數(shù)據(jù)庫

用戶單擊“備份”按鈕,系統(tǒng)就會備份XCCXXT數(shù)據(jù)庫。結(jié)束時,會有相應(yīng)成功與否的信息向用戶提示。

備份是對數(shù)據(jù)庫的進行讀操作,執(zhí)行體執(zhí)行之前不需要檢查用戶對數(shù)據(jù)庫的使用狀態(tài)。而恢復(fù)則是對整個數(shù)據(jù)庫進行寫操作,在啟動執(zhí)行體之前一定要檢查是否有數(shù)據(jù)庫進行寫操作,否則容易導(dǎo)致失敗。其他恢復(fù)數(shù)據(jù)庫的實現(xiàn)步驟類似與備份,限于篇幅此處從略。

5. 結(jié)束語

以作業(yè)機制實現(xiàn)數(shù)據(jù)庫的恢復(fù)和備份,就是事先在建立備份和恢復(fù)數(shù)據(jù)庫的作業(yè),在應(yīng)用程序客戶端用控制體啟動相應(yīng)的執(zhí)行體來實現(xiàn)之。用這種方式實現(xiàn)數(shù)據(jù)庫的備份和恢復(fù),用戶不必打開數(shù)據(jù)庫管理器進行操作,用戶可以在任何一個應(yīng)用程序客戶端完成操作。

作業(yè)機制打破了我們常規(guī)對大型數(shù)據(jù)庫備份和恢復(fù)必須在數(shù)據(jù)庫管理器里進行的局限性,利用作業(yè)機制解決了在應(yīng)用程序客戶端對數(shù)據(jù)庫備份和恢復(fù)的難題,為在應(yīng)用程序客戶端實現(xiàn)復(fù)雜的數(shù)據(jù)庫維護提供了一個思路。
客戶端備份與恢復(fù)MSSQL Server數(shù)據(jù)庫

分享:怎樣用VB存取SQL Server中的圖像數(shù)據(jù)
本文介紹MIS SQL Server對圖像數(shù)據(jù)的存儲機制和存取方法。針對VB開發(fā)工具,介紹了一種通過ADO Field 對象的GetChunk 方法和AppendChunk 方法來存取MIS SQL Server中的圖像數(shù)據(jù)的方法。 在一個完善的醫(yī)院信息MIS中,圖像數(shù)據(jù)的存取是必不可少的,比如X光片、C

來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2009-03-13
相關(guān)Mssql數(shù)據(jù)庫教程