轉載 sqlserver 2014 express自動備份功能

本文主要記錄了SQL Server Express如何實現自動備份數據庫的功能。由於SQL Server Express作爲微軟發佈的免費版本,所以功能上和正式版相比有所缺少。自動備份數據庫需要SQL Server Agent服務,但是express版則沒有該服務,所以我們只能自己用其他的方法來執行自動備份。

PS:

SQL Server Agent 主要包括以下幾個組件:作業、警報、操作。
本文主要演示的系統爲WIN7和Windows Server 2008,2003和XP沒試過,應該也差不多,2012系統差別就更加不大了。
另外可以參考MSDN官方的資料:如何安排和自動 SQL Server 速成版的 SQL Server 數據庫的備份
要實現SQL Server Express自動備份數據庫有兩種方式,一種是自己編寫WindowsService服務程序,然後調用數據庫中的備份存儲過程,還有一種是使用系統自帶的任務計劃程序。

本文主要詳細講述使用WIN7/08系統的任務計劃程序來實現自動備份數據庫功能,這也是本人推薦的方法,除非有條件自己編寫一個服務程序或者本身項目中就有服務程序,這倒是可以考慮使用服務程序來實現。

實現EXPRESS速成版自動備份的具體步驟:
步驟一:
首先我們要先編寫好備份數據庫的存儲過程,這樣可以極大方便我們進行自動備份操作,具體可以參考微軟MSDN資料:BACKUP語法。

這裏先展示我自己的數據庫備份存儲過程,備份的數據庫是InformationManagementSystem,備份文件存放位置是F:\Database\Backup,示例:

-- =============================================
-- Author:<十有三>
-- Create date: <2015-03-07>
-- Description:	<完整備份InformationManagementSystem>
-- =============================================
CREATE PROCEDURE sp_BackupDatabases 	
AS
BEGIN
	--設置備份數據庫的存放目錄
	DECLARE @diskPath NVARCHAR(300)
	SET @diskPath='F:\Database\Backup\InformationManagementSystem_'
	+CONVERT(VARCHAR, GETDATE(),112)+'_'
	+REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')+'.BAK'

	BACKUP DATABASE InformationManagementSystem TO DISK = @diskPath WITH FORMAT;
END

這裏我們可以運行下存儲過程測試下,直接在SQL SERVER EXPRESS中新建查詢然後運行語句:

EXEC InformationManagementSystem.dbo.sp_BackupDatabases

步驟二:
這裏我們要編寫一個批處理文件,主要是讓系統自動執行這個批處理文件,而批處理文件的語句則調用了sqlcmd命令來運行數據庫備份的存儲過程。

假設我們的批處理文件放在"F:\Database\Backup",我們先右鍵新建一個文本文件,將下面的執行語句複製到文本中並保存(這裏一定要注意大小寫,sqlcmd命令是區分大小寫的):

sqlcmd -S . -E -Q "EXEC InformationManagementSystem.dbo.sp_BackupDatabases"

保存成功後將文件後綴改成.bat,比如“Sqlbackup.bat"。

PS:

上述中的sqlcmd命令是執行一個存儲過程,具體可以參考MSDN的資料:sqlcmd 實用工具 ,-S .指定要連接的 SQL Server 實例爲本地數據庫,-E表示使用使用信任連接而不用輸入數據庫用戶和密碼,-Q表示在 sqlcmd 啓動時執行查詢,隨後立即退出 sqlcmd,這些命令選項是區分大小寫的,小寫則是其他的命令,這裏一定要注意!!!
我們可以直接雙擊BAT文件進行測試,看下文件是否能執行成功,在測試的時候我們可以在上述的批處理語句後面添加"PAUSE"命令,這樣執行到最後會先暫停,方便我們查看結果,具體可看這篇文章:如何暫停執行中的bat批處理文件?。
另外這裏只是簡單的執行批處理腳本,由於我們的備份存儲過程比較簡單,沒有帶入參數,複雜的sqlcmd命令可以參考下面這篇文章:sqlcmd執行帶參數的存儲過程
步驟三:
打開開始菜單=》附件=》系統工具=》任務計劃程序

打開任務計劃

或者也可以右鍵我的電腦(也可以打開控制面板),選擇管理工具=》任務計劃程序

從管理工具打開任務計劃程序

步驟四:
右鍵任務計劃程序,選擇創建任務,如下圖設置相關基礎信息:
在這裏插入圖片描述
這裏要注意的是在安全選項的用戶賬號要選擇當前系統賬號,比如上圖標記3中的SYSTEM賬號,之所以要選擇system賬號,是由於如果選擇當前系統的管理員賬號,每次任務計劃運行批處理文件的時候,系統都會彈出執行對話框,雖然只是一閃而過,但是還是會對用戶造成不必要的干擾,相關原因可以看這篇文章:解決windows任務計劃執行批處理文件會彈出顯示命令行窗口。

還有配置中要選擇符合自己操作系統的配置,比如標記4中選擇的配置是WIN7和08系統。
在這裏插入圖片描述
步驟五:
設置完常規選項後,接下來點擊觸發器,設置任務自動執行的時間,比如下圖中我們設置每天的12點都執行一次自動備份(會自動運行數據庫備份的批處理文件),然後點擊確定。

在這裏插入圖片描述

步驟六:
這裏設置我們要執行的操作,選擇啓動程序,然後瀏覽並選擇步驟二中保存在"F:\Database\Backup\Sqlbackup.bat"的批處理文件,以後每天中午12點都會執行這個自動備份腳本。

在這裏插入圖片描述

步驟七:
最後這裏設置其他相關選項,這裏根據自己的要求進行設置。

在這裏插入圖片描述

到了這裏就大功告成,我們通過使用系統的任務計劃程序,從而定時執行批處理腳本,實現了SQL Server Express速成版的自動備份數據庫的功能。

作者:十有三

出處:https://shiyousan.com/post/635612483753095970

版權聲明:本文采用知識共享許可協議:署名-相同方式共享 4.0 國際(CC BY-SA 4.0)。歡迎轉載本文,轉載請聲明出處或保留此段聲明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章