為了保證數據不丟失,我們需要對數據庫定時器備份。使用數據庫的不同,可能方式有所不同,本文以 Windows Server 2016,SQL Server Express 2017 為例。
我們可以有兩種備份方式:
一 、自動備份計划
如果使用的數據庫支持自動備份計划,那么可以在使用 SQL Server Managment Studio 連接數據庫,然后選中要備份的數據庫,右鍵選擇任務,設置備份即可。由於我這使用的數據庫版本(Express)無法設置備份計划,所以我們需要使用任務計划及自己編寫備份腳本實現自動備份。
首先編寫備份腳本,腳本很簡單,具體的語法詳見 https://docs.microsoft.com/en-us/sql/tools/sqlcmd-utility?view=sql-server-ver15
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 打開文件,然后執行即可。由於生成的腳本帶有數據,所以生成的文件會特別的大,運行會比較慢。

