在 SQL Server Express 中排程和自動備份 SQL Server 資料庫
本文介紹如何使用 Transact-SQL 腳本和 Windows 工作排程器,以排程方式自動備份 SQL Server Express 資料庫。
原始產品版本:SQL Server
原始 KB 編號: 2019698
摘要
SQL Server Express 版本不提供排程作業或維護計劃的方式,因為 SQL Server Agent 元件未包含在這些 版本中。 因此,當您使用這些版本時,您必須採取不同的方法來備份資料庫。
SQL Server Express 使用者目前可以使用下列其中一種方法來備份其資料庫:
使用 SQL Server Management Studio 或 Azure Data Studio。 如需如何使用這些工具備份資料庫的詳細資訊,請檢閱下列連結:
使用使用 BACKUP DATABASE 系列命令的 Transact-SQL 腳本。 如需詳細資訊,請參閱 BACKUP (Transact-SQL)。
本文說明如何使用 Transact-SQL 腳本搭配工作排程器,以排程方式自動備份 SQL Server Express 資料庫。
注意
這僅適用於 SQL Server Express 版本,不適用於 SQL Server Express LocalDB。
如何在 SQL Express 中建立排程備份
您必須遵循下列四個步驟,才能使用 Windows 工作排程器來備份 SQL Server 資料庫:
步驟 1:建立預存程式來備份資料庫
使用下列位置的腳本,連線到您的 SQL 快速實例,並在 master 資料庫中建立 sp_BackupDatabases
預存程式:
步驟 2:下載 SQLCMD 用戶端公用程式
公用 sqlcmd
程式可讓您輸入 Transact-SQL 語句、系統程式和腳本檔案。 在 SQL Server 2014 和較低版本中,公用程式會隨附為產品的一部分。 從 SQL Server 2016 開始, sqlcmd
公用程式會以個別下載的形式提供。 如需詳細資訊,請檢閱 sqlcmd 公用程式。
步驟 3:使用文字編輯器建立批處理檔
在文本編輯器中,建立名為 Sqlbackup.bat 的批處理檔,然後根據您的案例,將下列其中一個範例中的文字複製到該檔案:
下列所有案例都使用
D:\SQLBackups
作為地點持有者。 腳本必須調整到您環境中的正確磁碟驅動器和備份資料夾位置。如果您使用 SQL 驗證,請確定資料夾的存取權僅限於已授權的使用者,因為密碼會以純文字儲存。
注意
可執行文件的資料夾 SQLCMD
通常是在安裝 SQL Server 之後或安裝為獨立工具之後,伺服器的路徑變數中。 但是,如果 Path 變數未列出此資料夾,您可以將它的位置新增至 Path 變數,或指定公用程式的完整路徑。
範例 1:使用 Windows 驗證,在 SQLEXPRESS 本機具名實例中完整備份所有資料庫
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"
範例 2:使用 SQLLogin 及其密碼,在 SQLEXPRESS 本機具名實例中的所有資料庫差異備份
// Sqlbackup.bat
sqlcmd -U <YourSQLLogin> -P <StrongPassword> -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases @backupLocation ='D:\SQLBackups', @BackupType='D'"
注意
SQLLogin 應該至少有 SQL Server 中的備份操作員角色。
範例 3:使用 Windows 驗證,記錄 SQLEXPRESS 本機具名實例中所有資料庫的備份
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"
範例 4:使用 Windows 驗證,在 SQLEXPRESS 本機具名實例中完整備份 USERDB
// Sqlbackup.bat
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName='USERDB', @backupType='F'"
同樣地,您可以針對 @backupType 參數貼上 『D』,並貼上 @backupType 參數的 『L』 來貼上 USERDB 的記錄備份,以建立 USERDB 的差異備份。
步驟 4:使用 Windows 工作排程器排程工作來執行您在步驟 2 中建立的批處理檔
執行下列步驟:
在執行 SQL Server Express 的電腦上,選取 [開始 ],然後在文字框中輸入 工作排程器 。
在 [最佳比對] 底下,選取 [工作排程器] 來啟動它。
在 [ 工作排程器] 中,以滑鼠右鍵按兩下 [工作排程器], 然後選取 [ 建立基本工作]。
輸入新工作的名稱(例如 SQLBackup),然後選取 [ 下一步]。
針對 [工作觸發程式] 選取 [ 每日 ],然後選取 [ 下一步]。
將週期設定為一天,然後選取 [ 下一步]。
選取 [ 啟動程式 ] 作為動作,然後選取 [ 下一步]。
選取 [瀏覽],選取您在步驟 3 中建立的批處理檔,然後選取 [開啟]。
選取 [當我按兩下[完成] 複選框時,選取此工作的 [開啟內容] 對話框。
在 [ 一般] 索引標籤中:
檢閱 [安全性] 選項,並確定執行工作之用戶帳戶的下列專案(列在 [執行工作時] 底下,使用者下列使用者帳戶:
帳戶至少應具有 [讀取] 和 [執行] 許可權,才能啟動
sqlcmd
公用程式。 此外:如果在批處理檔中使用 Windows 驗證,請確定工作擁有者具有執行 SQL 備份的許可權。
如果在批處理檔中使用 SQL 驗證,SQL 用戶應該具有執行 SQL 備份的必要許可權。
根據您的需求調整其他設定。
提示
作為測試,請從 命令提示字元執行步驟 3 中的批處理檔,該命令提示字元是以擁有工作的相同使用者帳戶啟動。
需求
當您使用本文所述的程式時,請注意下列需求:
工作排程器服務必須在排程工作執行時執行。 建議您將此服務的啟動類型設定為 [自動]。 這可確保服務即使在重新啟動時也會執行。
您必須在寫入備份的磁碟驅動器上建立足夠的空間。 建議您定期清除備份資料夾中的舊檔案,以確保您不會用盡磁碟空間。 腳本不包含清除舊檔案的邏輯。