在 SQL Server Express 中排程和自動備份 SQL Server 資料庫

本文介紹如何使用 Transact-SQL 腳本和 Windows 工作排程器,依排程自動備份 SQL Server Express 資料庫。

原始產品版本: SQL S
原始 KB 編號: 2019698

摘要

SQL Server Express 版不提供作業或維護計畫的排程方式,因為 SQL Server Agent 元件不包含在這些版本中。 因此,當您使用這些版本時,必須採取不同的方法來備份資料庫。

目前 SQL Server Express 使用者可以使用下列其中一種方法來備份其資料庫:

使用 SQL Server Management StudioAzure Data Studio。 如需如何使用這些工具來備份資料庫的詳細資訊,請檢閱下列連結:

本文說明如何使用 Transact-SQL 腳本搭配工作排程器,依排程自動備份 SQL Server Express 資料庫。

注意事項

這僅適用於 SQL Server 快速版本,不適用於 SQL Server Express LocalDB。

其他資訊

您必須遵循下列四個步驟,使用 Windows 工作排程器來備份 SQL Server 資料庫:

步驟 A:建立備份資料庫的預存程序。

連線到您的 SQL Express 實例,然後使用下列位置的腳本,在 master 資料庫中建立sp_BackupDatabases 預存程序:

SQL_Express_Backups

步驟 B:如果適用) ,請下載 SQLCMD 工具 (。

sqlcmd 用程式可讓您輸入 Transact-SQL 語句、系統程式和腳本檔案。 在 SQL Server 2014 和更舊版本中,公用程式會隨附為產品的一部分。 從 2016 SQL Server 開始,sqlcmd公用程式會以個別的下載方式提供。 如需詳細資訊,請檢閱 sqlcmd 公用程式

步驟 C:使用文字編輯器建立批次檔。

在文字編輯器中,建立名為 Sqlbackup.bat 的批次檔,然後根據您的案例,將下列其中一個範例中的文字複製到該檔案:

  • 下列所有案例都使用 D:\SQLBackups 作為預留位置。 指令碼必須調整為您環境中的適當磁碟機和備份檔案夾位置。

  • 如果您使用 SQL 驗證,請確定資料夾的存取權僅限於授權的使用者,因為密碼會以純文字儲存。

注意事項

安裝 SQL Server 之後或當您安裝為獨立工具之後,SQLCMD 可執行檔的資料夾通常會位於伺服器的路徑變數中。 但是,如果路徑變數未列出此資料夾,您可以將其位置新增至路徑變數,或指定公用程式的完整路徑。

範例 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'"

同樣地,您可以貼上 'D' 作為 @backupType 參數,並貼上 'L' 作為 @backupType 參數,以建立 USERDB 的差異備份。

步驟 D:使用 Windows 工作排程器來排程工作,以執行您在步驟 B 中建立的批次檔。若要這樣做,請遵循下列步驟:

  1. 在執行 SQL Server Express 的計算機上,按兩下 [開始],然後在文字框中輸入工作排程器

    [工作排程器] 傳統型應用程式選項在 [開始] 功能表搜尋列中的螢幕擷取畫面。

  2. [最佳比對] 底下,按兩下 [ 工作排程器] 啟動它。

  3. 在 [工作排程器] 中,以滑鼠右鍵按兩下 [ 工作排程 庫],然後按兩下 [ 建立基本工作...]

  4. 輸入新工作的名稱 (例如:SQLBackup) ,然後按 [下一步]

  5. 針對 [工作觸發程式] 選取 [ 每日 ],然後按 [ 下一步]

  6. 將週期設定為一天,然後按 [ 下一步]

  7. 取 [啟動程式] 作為動作,然後按 [ 下一步]

  8. 按一下 [瀏覽],按一下您在步驟 C 中建立的批次檔案,然後按一下 [開啟]

  9. 按一下 [完成] 時,核取 [開啟此工作的屬性] 對話方塊。

  10. 在 [一般] 索引標籤中,

    1. 檢閱 [安全性] 選項,並確定執行工作 (列在 [執行工作時, 使用者] 下列使用者帳戶的用戶帳戶如下:)

      帳戶至少應具有讀取和執行許可權,才能啟動 sqlcmd 公用程式。 此外,

      • 如果在批次檔中使用 Windows 驗證,請確定執行 SQL 備份的工作權限擁有者。

      • 如果在批次檔案中使用 SQL 驗證,SQL 使用者應該具有執行 SQL 備份的必要權限。

    2. 根據您的需求調整其他設定。

提示

測試時,請從命令提示字元執行步驟 C 中的批次檔案,該命令提示字元是以擁有工作的相同使用者帳戶啟動。

當您使用本文中記載的程序時,請注意下列事項:

  • 工作排程器服務必須在排程執行作業時執行。 建議您將此服務的啟動類型設定為 [自動]。 這可確保服務即使在重新開機時也會執行。

  • 寫入備份的磁碟機上應該要有大量的空間。 建議您定期清除Backup資料夾中的舊檔案,以確保磁碟空間不會用盡。 指令碼不包含清除舊檔案的邏輯。

其他參考

工作排程器概觀