在 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 Studio 或 Azure Data Studio。 如需如何使用這些工具來備份資料庫的詳細資訊,請檢閱下列連結:
使用使用 BACKUP DATABASE 系列命令的 Transact-SQL 腳本。 如需詳細資訊,請參閱 BACKUP (Transact-SQL)。
本文說明如何使用 Transact-SQL 腳本搭配工作排程器,依排程自動備份 SQL Server Express 資料庫。
注意事項
這僅適用於 SQL Server 快速版本,不適用於 SQL Server Express LocalDB。
其他資訊
您必須遵循下列四個步驟,使用 Windows 工作排程器來備份 SQL Server 資料庫:
步驟 A:建立備份資料庫的預存程序。
連線到您的 SQL Express 實例,然後使用下列位置的腳本,在 master 資料庫中建立sp_BackupDatabases 預存程序:
步驟 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 中建立的批次檔。若要這樣做,請遵循下列步驟:
在執行 SQL Server Express 的計算機上,按兩下 [開始],然後在文字框中輸入工作排程器。
在 [最佳比對] 底下,按兩下 [ 工作排程器] 啟動它。
在 [工作排程器] 中,以滑鼠右鍵按兩下 [ 工作排程 庫],然後按兩下 [ 建立基本工作...]。
輸入新工作的名稱 (例如:SQLBackup) ,然後按 [下一步]。
針對 [工作觸發程式] 選取 [ 每日 ],然後按 [ 下一步]。
將週期設定為一天,然後按 [ 下一步]。
選 取 [啟動程式] 作為動作,然後按 [ 下一步]。
按一下 [瀏覽],按一下您在步驟 C 中建立的批次檔案,然後按一下 [開啟]。
按一下 [完成] 時,核取 [開啟此工作的屬性] 對話方塊。
在 [一般] 索引標籤中,
檢閱 [安全性] 選項,並確定執行工作 (列在 [執行工作時, 使用者] 下列使用者帳戶的用戶帳戶如下:)
帳戶至少應具有讀取和執行許可權,才能啟動 sqlcmd 公用程式。 此外,
如果在批次檔中使用 Windows 驗證,請確定執行 SQL 備份的工作權限擁有者。
如果在批次檔案中使用 SQL 驗證,SQL 使用者應該具有執行 SQL 備份的必要權限。
根據您的需求調整其他設定。
提示
測試時,請從命令提示字元執行步驟 C 中的批次檔案,該命令提示字元是以擁有工作的相同使用者帳戶啟動。
當您使用本文中記載的程序時,請注意下列事項:
工作排程器服務必須在排程執行作業時執行。 建議您將此服務的啟動類型設定為 [自動]。 這可確保服務即使在重新開機時也會執行。
寫入備份的磁碟機上應該要有大量的空間。 建議您定期清除Backup資料夾中的舊檔案,以確保磁碟空間不會用盡。 指令碼不包含清除舊檔案的邏輯。