日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库的备份与还原

發布時間:2025/3/20 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库的备份与还原 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫的備份與還原


? ? ? ? ? 在人力系統中,由于這個軟件主要的任務就是統計數據的,所以,需求中有一個從系統中直接對數據庫進行備份和還原的功能,注意我們這里使用的是access數據庫,是存放在工程文件中的,不是對SQL數據庫進行備份和還原,這個備份和還原也適用于文件的備份和還原。

? ? ? ? ??具體的代碼實現,也非常的簡單,就是兩個過程,一個備份一個還原就可以直接實現了,具體的代碼如下:


? ? ? ? ??數據庫備份

'數據庫備份Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click'異常處理TryDim TargetFileName As String '目標文件名Dim spath As String '文件備份路徑Dim ssource As String '源文件名Dim se As DialogResult '表示窗體關閉后,返回窗口的一個結果se = Me.FolderBrowserDialog1.ShowDialog()'選擇路徑If se = DialogResult.OK Then'MessageBox.Show("你選擇的文件夾路徑為:" & FolderBrowserDialog1.SelectedPath)TargetFileName = FolderBrowserDialog1.SelectedPath & "/HumanResourcesSystem.mdb"'如果該路徑不為空If Microsoft.VisualBasic.Right(Application.StartupPath, 1) <> "/" Then'路徑,文件名spath = Application.StartupPath & "/"ssource = spath & "HumanResourcesSystem.mdb"'文件是否已經存在If Dir$(TargetFileName) <> "" ThenIf MsgBox("文件已存在,確認替換它!", vbYesNo + vbQuestion) = vbNo Then Exit SubKill(TargetFileName) '刪除文件FileCopy(ssource, TargetFileName) '復制文件'DBEngine.CompactDatabase ssource, TargetFileName '壓縮文件MsgBox("數據備份成功!", vbInformation, "提示")ElseFileCopy(ssource, TargetFileName) '復制文件MsgBox("數據備份成功!", vbInformation, "提示")End IfEnd IfEnd IfCatch ex As ExceptionMessageBox.Show(ex.Message.ToString())End TryEnd Sub


? ? ? ? ??數據庫還原

'數據庫還原Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click'異常處理TryDim TargetFileName As String '目標文件名Dim spath As String '文件備份路徑Dim ssource As String '源文件名Dim se As DialogResult '表示窗體關閉后,返回窗口的一個結果OpenFileDialog1.Filter = "數據庫文件|*.mdb"se = OpenFileDialog1.ShowDialog()'選擇路徑If se = DialogResult.OK Then'MessageBox.Show("你選擇的文件夾路徑為:" & FolderBrowserDialog1.SelectedPath)TargetFileName = OpenFileDialog1.FileNameTargetFileName = TargetFileName.Replace("\HumanResourcesSystem.mdb", "/HumanResourcesSystem.mdb")'選擇的路徑是否為空If Microsoft.VisualBasic.Right(Application.StartupPath, 1) <> "/" Then'路徑,文件名spath = Application.StartupPath & "/"ssource = spath & "HumanResourcesSystem.mdb"'判斷數據庫中是否已存在該同名數據庫If Dir$(ssource) <> "" ThenIf MsgBox("是否要還原數據,確認替換它!", vbYesNo + vbQuestion, "提示") = vbNo Then Exit SubKill(ssource) '刪除文件FileCopy(TargetFileName, ssource) '復制文件MsgBox("數據還原成功!", vbInformation, "提示")ElseFileCopy(TargetFileName, ssource) '復制文件MsgBox("數據還原成功!", vbInformation, "提示")End IfEnd IfEnd IfCatch ex As ExceptionMessageBox.Show(ex.Message.ToString())End TryEnd Sub

? ? ? ? ? 上面備份和還原是對access數據庫來說的,沒有任何的問題。

? ? ? ? ??但是,如果是對SQL數據庫進行備份和還原,備份肯定沒有問題,就是從數據庫中復制一份該數據庫文件,然后存放到一個選定的位置即可,但是,在還原的時候遇到了問題。

? ? ? ? ??當程序開始運行的時候,用戶使用用戶名和密碼登錄,此時改程序已經連接了數據庫,就是當前的數據庫正在使用中,此時的還原肯定需要斷開數據庫的連接,把該數據庫先刪除,然后再從指定的位置還原,那么問題來了。

? ? ? ? ??登錄到系統之后,使用的是當前數據庫的用戶名和密碼,而且需要還原的數據庫中不一定存在當前登錄用戶,此時就會報錯。


? ? ? ? ??第一種解決方法,強行斷開數據庫連接,刪除當前數據庫,并且在選擇進行數據庫還原的時候,提示數據庫還原成功之后,系統將自動關閉,就是備份完成之后,關閉該系統進程,如果用戶需要接著使用,必須重新登錄,使用新數據庫中的用戶名和密碼登錄。

? ? ? ? ??第二種解決方法,就是把數據庫備份和還原的功能放到登錄的界面,在該用戶并沒有使用數據庫的情況下進行備份和還原,就不會出現問題了。

? ? ? ? ??這里,直接從登錄窗體連接到另外一個界面,并且提供給用戶一個對數據庫進行操作的密碼,為了靈活性這里把密碼寫到了配置文件中,但是安全性就不太好了。




? ? ? ? ??在配置文件中直接使用appSettings即可,配置文件的appSettings 節元素包含一系列名稱/值對,可由應用程序用于任何目的,配置文件里面的內容沒有其它用途,就是寫好了讓程序讀的,在配置文件中寫一句代碼

? ? ? ? ??<appSettings>

???? ? ? ? ?? <add key="DataPwd"value="123" />

?? ? ? ? ?? </appSettings>

? ? ? ? ??然后,在應用程序中直接使用就可以了。

? ? ? ? ??Dim Str As String=System.Configuration.ConfigurationSettings.AppSettings("DataPwd")


總結

以上是生活随笔為你收集整理的数据库的备份与还原的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。