首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Windows 批次檔自動化備份 SQL Server 資料庫

     編輯:關於SqlServer

方案架構

採用「批次檔 + T-SQL 腳本 + Windows 工作排程器」三層架構,零第三方工具,輕量可靠。

1. 批次檔 mybackup.bat

@echo off
REM 擴充 PATH 確保找到 isql.exe (SQL 2000) 或 sqlcmd.exe (2005+)
set PATH=%PATH%;C:\Program Files\Microsoft SQL Server\80\Tools\Binn

REM 記錄開始時間
echo 資料庫備份開始 >> E:\DataBaseBAK\任務計劃完成記錄.txt
date /t >> E:\DataBaseBAK\任務計劃完成記錄.txt
time /t >> E:\DataBaseBAK\任務計劃完成記錄.txt

REM 執行 T-SQL 備份腳本
REM -S 伺服器 -U 登入 -P 密碼 -i 輸入檔
isql.exe -S 127.0.0.1 -U sa -P sa -i mybackup.sql

REM 記錄結束時間
echo 資料庫備份完成 >> E:\DataBaseBAK\任務計劃完成記錄.txt
date /t >> E:\DataBaseBAK\任務計劃完成記錄.txt
time /t >> E:\DataBaseBAK\任務計劃完成記錄.txt

echo.
echo.
echo.
echo 資料庫備份完成
echo.
echo.
REM pause  

2. T-SQL 備份腳本 mybackup.sql

DECLARE @name VARCHAR(50) = 'V5HQS';          -- 資料庫名稱
DECLARE @datetime CHAR(14) = CONVERT(CHAR(8), GETDATE(), 112) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '');
DECLARE @path VARCHAR(255) = 'E:\DataBaseBAK';
DECLARE @bakfile VARCHAR(255) = @path + '\' + @name + '_bak_' + @datetime + '.BAK';

BACKUP DATABASE @name TO DISK = @bakfile WITH NAME = @name, INIT, STATS = 10;
GO

3. 部署與排程

  1. 將 mybackup.bat、mybackup.sql 放置同一目錄(如 E:\BackupScripts\)。
  2. 開啟「工作排程器」→ 建立基本任務 → 觸發器設定每日/每週 → 動作選「啟動程式」,程式填 E:\BackupScripts\mybackup.bat,起始位置填 E:\BackupScripts\。
  3. 建議使用具備 sysadmin 權限的專用服務帳號執行,避免硬編碼 sa 密碼;生產環境請改用 sqlcmd 搭配 Windows 驗證(-E)。

進階建議

  • 加入 VERIFYONLY 檢查備份檔完整性。
  • 配合 xp_cmdshell 或 PowerShell 實現備份檔壓縮、異地複製、保留天數清理。
  • SQL Server 2005+ 建議改用 sqlcmd -Q "BACKUP DATABASE ..." 單行完成,免維護額外 .sql 檔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved