一、數據備份
備份有兩中形式完全備份和差異備份
完全備份:是對數據庫進行完整備份,周期比較長,如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