共用方式為


在 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 StudioAzure Data Studio。 如需如何使用這些工具備份資料庫的詳細資訊,請檢閱下列連結:

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

注意

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

如何在 SQL Express 中建立排程備份

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

步驟 1:建立預存程式來備份資料庫

使用下列位置的腳本,連線到您的 SQL 快速實例,並在 master 資料庫中建立 sp_BackupDatabases 預存程式:

SQL_Express_Backups

步驟 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 中建立的批處理檔

執行下列步驟:

  1. 在執行 SQL Server Express 的電腦上,選取 [開始 ],然後在文字框中輸入 工作排程器

    [開始] 功能表 搜尋欄中 [工作排程器桌面應用程式] 選項的螢幕快照。

  2. 在 [最佳比對] 底下,選取 [工作排程器] 來啟動它。

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

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

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

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

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

  8. 選取 [瀏覽],選取您在步驟 3 中建立的批處理檔,然後選取 [開啟]。

  9. 選取 [當我按兩下[完成] 複選框時,選取此工作的 [開啟內容] 對話框。

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

    • 檢閱 [安全性] 選項,並確定執行工作之用戶帳戶的下列專案(列在 [執行工作時] 底下,使用者下列使用者帳戶:

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

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

      • 如果在批處理檔中使用 SQL 驗證,SQL 用戶應該具有執行 SQL 備份的必要許可權。

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

提示

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

需求

當您使用本文所述的程式時,請注意下列需求:

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

  • 您必須在寫入備份的磁碟驅動器上建立足夠的空間。 建議您定期清除備份資料夾中的舊檔案,以確保您不會用盡磁碟空間。 腳本不包含清除舊檔案的邏輯。

其他參考

工作排程器概觀