程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 利用VB進行SQL2000的數據備份和恢復

利用VB進行SQL2000的數據備份和恢復

編輯:關於SqlServer
一、數據備份

  備份有兩中形式完全備份和差異備份

  完全備份:是對數據庫進行完整備份,周期比較長,如1周等

  差異備份:是對更新備份的數據進行備份,周期比較短,如1小時

  命令介紹: Backup Database [數據庫名] To Disk=[保存路徑和名稱] With [其他屬性]


  代碼注釋:ServerIP :SQLServer所在機器的 IP
       jtsg:SQLServer中數據的名稱



Public Cn As ADODB.Connection
Set Cn = New ADODB.Connection
strcon = "Provider=SQLOLEDB.1;PassWord=sa;Persist Security Info=True;User ID=sa;Initial Catalog=jtsg;Data Source=" + ServerIp + ";" + _
"use procedure for prepare=1;auto translate=true;" + _
"use encryption for data=false;tag with column collation when possible=false"
Cn.ConnectionString = strcon
On Error Resume Next
Cn.Open
If Cn.Errors.Count > 0 Then
For i = 0 To Cn.Errors.Count - 1
If Cn.Errors(i).Number = -2147467259 Then
MsgBox "網絡不通或服務器未開,請確認後再試", vbOKOnly + vbInformation, "提醒"
Unload Me
Exit Sub
Exit For
End If
Next i
End If

 

二、完全備份



Private Sub BackupAll()
Cn.Execute "backup database jtsg to disk=''" + App.Path + "\backup\myjtsgall.bak'' with name=''jtsg backup all'',description=''Full Backup Of jtsg''"
MsgBox "數據完全備份已經完成", vbOKOnly + vbInformation, "提醒"
End Sub

 

三、差異備份



Private Sub BackupDif()
Cn.Execute "backup database jtsg to disk=''" + App.Path + "\backup\myjtsgdif.bak'' with differential ,noinit,name=''jtsg backup dif'',description=''Differential Backup Of jtsg''"
MsgBox "數據差異備份已經完成", vbOKOnly + vbInformation, "提醒"
End Sub

 

四、數據恢復

  數據恢復,問題很多,要區分用戶的備份形式。一般備份的默認形式是 Append to media,即添加到備份設備已有內容後面。前面介紹的備份方式就這種。還有一種備份形式是 OverWrite,即覆蓋設備原有內容。這兩中備份形式決定恢復的方式也不一樣。

  命令介紹: Restore Database [數據庫名] From [保存備份的路徑和名稱] With[其他屬性]

  在其他屬性中重點介紹:File 、 NORECOVERY和 RECOVERY

  1.FILE
  這是不同備份形式的重要參數,用來指定從設備上的第幾個備份中恢復,比如采用APPEND形式備份,作了兩次備份,恢復第一個備份時應該在恢復命令中使用“FILE=1”;恢復第二個備份時則使用“FILE=2”的選項。
  當然如果備份形式是OVERWRITE,備份中就只有一次備份,所以使用 FILE=1的選項;

  2.RECOVERY
  如果使用RECOVERY選項,那麼恢復完成後,SQLSERVER回滾被恢復數據庫中所有未完成的事務,以保證數據庫的一致性。在恢復後用戶就可以訪問數據庫。所以RECOVERY用來恢復最後一個備份。NORECOVERY則相反。默認為RECOVERY。

  代碼解釋:還原備份的文件可以選擇,完全備份和差異備份



Private Sub RestoreData()
Cn.Execute "restore database jtsg from disk=''" + App.Path + "\backup\myjtsgall.bak'' with FILE=1"
MsgBox "數據恢復已經完成", vbOKOnly + vbInformation, "提醒"
End Sub 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved