一、数据备份
备份有两中形式完全备份和差异备份
完全备份:是对数据库进行完整备份,周期比较长,如1周等
差异备份:是对更新备份的数据进行备份,周期比较短,如1小时
命令介绍: Backup Database [数据库名] To Disk=[保存路径和名称] With [其他属性]
代码注释:ServerIP :SQLServer所在机器的 IP
jtsg:SQLServer中数据的名称
PublicCnAsADODB.Connection
SetCn=NewADODB.Connection
strcon="Provider=SQLOLEDB.1;Password=sa;PersistSecurityInfo=True;UserID=sa;InitialCatalog=jtsg;DataSource="+ServerIp+";"+_
"useprocedureforprepare=1;autotranslate=true;"+_
"useencryptionfordata=false;tagwithcolumncollationwhenpossible=false"
Cn.ConnectionString=strcon
OnErrorResumeNext
Cn.Open
IfCn.Errors.Count>0Then
Fori=0ToCn.Errors.Count-1
IfCn.Errors(i).Number=-2147467259Then
MsgBox"网络不通或服务器未开,请确认后再试",vbOKOnly+vbInformation,"提醒"
UnloadMe
ExitSub
ExitFor
EndIf
Nexti
EndIf
二、完全备份
PrivateSubBackupAll()
Cn.Execute"backupdatabasejtsgtodisk=''"+App.Path+"\backup\myjtsgall.bak''withname=''jtsgbackupall'',description=''FullBackupOfjtsg''"
MsgBox"数据完全备份已经完成",vbOKOnly+vbInformation,"提醒"
EndSub
三、差异备份
PrivateSubBackupDif()
Cn.Execute"backupdatabasejtsgtodisk=''"+App.Path+"\backup\myjtsgdif.bak''withdifferential,noinit,name=''jtsgbackupdif'',description=''DifferentialBackupOfjtsg''"
MsgBox"数据差异备份已经完成",vbOKOnly+vbInformation,"提醒"
EndSub
四、数据恢复
数据恢复,问题很多,要区分用户的备份形式。一般备份的默认形式是 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。
代码解释:还原备份的文件可以选择,完全备份和差异备份
PrivateSubRestoreData()
Cn.Execute"restoredatabasejtsgfromdisk=''"+App.Path+"\backup\myjtsgall.bak''withFILE=1"
MsgBox"数据恢复已经完成",vbOKOnly+vbInformation,"提醒"
EndSub