1. 程式人生 > 資料庫 >SQL Server 資料庫備份的兩種方式

SQL Server 資料庫備份的兩種方式

為了保證資料不丟失,我們需要對資料庫定時器備份。使用資料庫的不同,可能方式有所不同,本文以 Windows Server 2016,SQL Server Express 2017 為例。

我們可以有兩種備份方式:

一 、自動備份計劃

如果使用的資料庫支援自動備份計劃,那麼可以在使用 SQL Server Managment Studio 連線資料庫,然後選中要備份的資料庫,右鍵選擇任務,設定備份即可。由於我這使用的資料庫版本(Express)無法設定備份計劃,所以我們需要使用任務計劃及自己編寫備份指令碼實現自動備份。

首先編寫備份指令碼,指令碼很簡單,具體的語法詳見 

sqlcmd -S SERVER\SQLEXPRESS -E -Q "[sp_BackupDatabase] N'要備份的資料庫',N'F',N'F:\資料庫備份\'"

批處理指令碼寫好後,可以儲存為 backup.dat。

接下來我們需要設定任務計劃,讓任務計劃定時執行我們寫好的指令碼。

1. 搜尋 任務計劃 開啟後如下圖所示:

2. 新建任務計劃,建立任務,如下圖,可以填寫名稱及任務描述,選擇執行的使用者

 

3. 設定觸發器,也就是定時執行設定,點選觸發器,顯示如下圖

4. 設定操作,也就是根據上面的觸發器定時執行我們寫好的資料庫備份指令碼,如下圖所示,瀏覽選擇我們的備份指令碼,確定即可

5. 設定成功後會在任務計劃中顯示,至此,已經設定好資料庫備份計劃

二 、第二種備份的方式嚴格來說不算是備份,只是把資料通過指令碼的形式匯出來。有時候會用到這種方式,例如硬碟扇區損壞,資料庫任然能夠正常讀寫,可是不能備份,手工備份也不能成功。嘗試在停止資料庫服務後,複製資料庫檔案,複製也提示覆制失敗。這時,我們可以把資料庫架構和資料匯出到一個 sql 指令碼檔案中,然後再通過執行指令碼生成資料庫,這樣資料庫就可以轉移到其它資料夾中,而且資料庫也能夠恢復正常備份。

1. 首先使用 SQL Server Managment Studio 連線資料庫,如下圖,我要匯出下面這個資料,可以右鍵選擇任務,生成指令碼

2. 根據嚮導,一步一步設定如下。嚮導的第三步需要注意,需要在高階中設定一下要編寫的指令碼的資料的型別,一定要選擇:架構和資料,如果只選擇架構,則執行指令碼的時候只會生成架構,不包含資料庫現存的資料;直到最後全部生成完畢,我們就可以根據生成的指令碼恢復資料庫

 

3. 根據指令碼恢復資料庫,在生成的指令碼中我們可以指定生成的資料庫檔案的位置及名稱,開啟指令碼,如下圖,要保證其中的檔案目錄存在,使用 SQL Server Managment Studio 開啟檔案,然後執行即可。由於生成的指令碼帶有資料,所以生成的檔案會特別的大,執行會比較慢。