国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

用VB備份和恢復(fù)SQL Server數(shù)據(jù)庫的方法

2024-07-21 02:24:52
字體:
供稿:網(wǎng)友
摘要 備份與恢復(fù)是數(shù)據(jù)庫管理員維護(hù)數(shù)據(jù)庫安全性和完整性的重要操作。本文分析并介紹用access備份sql數(shù)據(jù)庫的方法,很好地達(dá)到了數(shù)據(jù)備份的目的。同時,就access 數(shù)據(jù)庫的安全接口作了簡略討論,使備份后不致喪失數(shù)據(jù)安全性。并提出了改進(jìn)備份與恢復(fù)策略的一些建議。

  引言

  對于關(guān)鍵應(yīng)用的數(shù)據(jù)庫系統(tǒng)應(yīng)根據(jù)具體環(huán)境和條件制訂一個完善可行確保系統(tǒng)安全的備份計劃,沒有備份的系統(tǒng)是不可靠、危險的,后果將是嚴(yán)重的,破壞性病毒、誤操作、自然災(zāi)害等等都可能會對數(shù)據(jù)庫系統(tǒng)造成難以估量的破壞。尤其對一個信息化程度較高的企業(yè)來說,最有價值的財產(chǎn)或許就是企業(yè)數(shù)據(jù)庫中的數(shù)據(jù)。一個系統(tǒng)中最重要的是大量的實時數(shù)據(jù),沒有備份功能顯然是不安全和不完善的。經(jīng)過實踐摸索出visual basic 6.0開發(fā)的備份程序,能將數(shù)據(jù)庫備份到access數(shù)據(jù)庫(access 為目前流行的桌面型數(shù)據(jù)庫產(chǎn)品, 具有存儲操作靈活、便利等優(yōu)點, 并且因它與sql server 同屬微軟數(shù)據(jù)庫產(chǎn)品, 二者能很好地兼容)中,并對access數(shù)據(jù)庫進(jìn)行加密以防數(shù)據(jù)被非法訪問。該程序還能用access備份庫的數(shù)據(jù)恢復(fù)sql server數(shù)據(jù)庫,從而減少因誤操作損壞數(shù)據(jù)內(nèi)容而造成的損失。使用該方法,用戶不須添加額外設(shè)備,只須在原有服務(wù)器上運行該備份程序,其界面簡單方便,適合普通用戶使用。

  備份與恢復(fù)概述

  備份是數(shù)據(jù)庫管理員定期地將整個數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上保存起來的過程。常用的數(shù)據(jù)備份類型有:完全備份、差異備份、事務(wù)日志備份、文件或文件組備份。一個通用的備份策略是:以較長的時間間隔執(zhí)行完全備份,以適中的時間間隔進(jìn)行差異備份,并以較短的時間間隔進(jìn)行事務(wù)日志備份。當(dāng)數(shù)據(jù)遭到破壞后就可以利用備份來恢復(fù)數(shù)據(jù)庫。恢復(fù)數(shù)據(jù)庫是一個裝載數(shù)據(jù)庫的備份,然后應(yīng)用事務(wù)日志重建的過程。一個通用的恢復(fù)策略是:首先恢復(fù)完全備份的數(shù)據(jù),然后恢復(fù)差異備份數(shù)據(jù),最后根據(jù)事務(wù)日志備份進(jìn)行恢復(fù)。

  1、備份方案

  開發(fā)所需軟件:visual basic 6.0 access備份程序的設(shè)計方法:

  (1) 用控制面版的odbc設(shè)置,給sql server中的數(shù)據(jù)庫添加一個數(shù)據(jù)源名稱。

  (2) 在access中新建一個數(shù)據(jù)庫,命名為backup.mdb。

  (3) 用vb定義兩個主要過程:attach_table()和create_table()。attach_table的作用是將sql server數(shù)據(jù)庫中的所有需要備份的表鏈接到access數(shù)據(jù)庫中,在此過程中要排除系統(tǒng)表,因為那是sql server自創(chuàng)建的,表中無用戶數(shù)據(jù)。create_table的作用是在backup.mdb中創(chuàng)建目的表,即在這個備份access庫中創(chuàng)建表用來保存所有存在sql數(shù)據(jù)庫中的用戶數(shù)據(jù)。另外,在鏈接過程中,要去掉sql server自帶的擁有者名稱。

  2、程序的邏輯結(jié)構(gòu)

  ① 通過第一步創(chuàng)建的odbc數(shù)據(jù)源打開要備份的sql數(shù)據(jù)庫;

  ② 使用attach_table()將該數(shù)據(jù)庫中的所有用戶表鏈接到backup.mdb中,排除系統(tǒng)表的方法是:

for each tdf in backup_db.tabledefs
 if (tdf.attributes and dbsystemobject)=0 then
  //條件成立,說明該表是用戶定義的表,可以鏈接,否則跳過
 end if
next


  ③ 使用create_table()對每個表創(chuàng)建與之對應(yīng)的備份表,取名可遵循如下原則, 若原表叫table_name, 則備份表叫b_table_name。

  ④ 將table_name表中的所有記錄復(fù)制到b_table_name中。

  ⑤從備份庫刪除對sql數(shù)據(jù)表的鏈接。

  3、程序原碼

  采用微軟dao (data access object) 數(shù)據(jù)模型, 打開access 本地數(shù)據(jù)庫, 并連接一個外部odbc數(shù)據(jù)表, 拷貝該表結(jié)構(gòu)完成, 有以下過程塊copystru :

private sub copystru ()
 set dbstemp = wrkjet. opendatabase (tagfilname)// 鏈接表的過程
 for i = 0 to tabn - 1
  set tdflinked = dbstemp. createtabledef (“l(fā)inktab”)
  tdflinked. connect = “odbc; database = xgsbgsys ; uid =

  sa ; pwd = ; dsn = xgsdb ;”
  tdflinked. sourcetablename = tabname (i)
  dbstemp. tabledefs. append tdflinked
  set temp tab = dbstemp. createtabledef ()
  temp tab. name = tabname (i)
  //創(chuàng)建新表的過程
  for each fld in tdflinked. fields
   set newfil = temp tab. createfield (fld. name , fld. type ,fld. size)
   newfil. ordinalposition = fld. ordinalposition
   newfil. required = fld. required
   temp tab. fields. append newfil
  next
  //創(chuàng)建索引
  for each idx in tdflinked. indexes
   set newidx = temp tab. createindex ()
   with newidx
    name = tabname (i) & ” x”
    fields = idx. fields
    unique = idx. unique
    primary = idx. primary
   end with
   temp tab. indexes. append newidx
  next
  dbstemp. tabledefs. append temp tab
  set temp tab = nothing
  dbstemp. tabledefs. delete ”linktab”
 next i
 dbstemp. close
 set dbstemp = nothing
 wrkjet. close
 set wrkjet = nothing
end sub
end sub

 

中國最大的web開發(fā)資源網(wǎng)站及技術(shù)社區(qū),
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湛江市| 古浪县| 含山县| 三原县| 南雄市| 广州市| 苏尼特左旗| 嘉鱼县| 陆川县| 沈丘县| 普陀区| 张家港市| 繁昌县| 全椒县| 秀山| 长葛市| 乌兰县| 阜宁县| 昌乐县| 荔浦县| 宜川县| 忻州市| 柳林县| 乌兰察布市| 开远市| 高邑县| 灵璧县| 孟连| 邵东县| 海丰县| 土默特右旗| 治县。| 和平区| 翁源县| 德令哈市| 和龙市| 镇远县| 新巴尔虎左旗| 剑川县| 保亭| 金堂县|