因為SQL SERVER EXPRESS無法在軟體內做排程備份,所以要透過一些方法達成排程備份。
步驟:
一、建立批次檔,並放在固定位置。
二、將要執行的SQL SCRIPT放置與批次檔同一資料夾中,並確認是否正確。
三、設定WINDOWS排程,執行批次檔。
四、驗證排程。
一、建立批次檔
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
@echo off
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" ‐S .\SQLEXPRESS ‐U sa ‐Pkeepout ‐i D:\backup_full.sql ‐o D:\backup_full.log
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
@each off
"sqlcmd的路徑" -S 'SQL SERVER的IP位置' -U 'SQL SERVER的帳號' -P 'SQL SERVER的密碼' -i '要執行的SCRIPT語法及存放路徑' -o '執行後所產生log放置的地方與檔名'
二、建立SQL SCRIPT
常用語法如下:
----------------------------------------------------------------------------------------------------------------------------------
備份資料庫:backup <----範例
BACKUP DATABASE [DB_Name]
TO DISK = N'D:\SmartIT_DB_BAK\smartit_bk.bak' WITH INIT,NOUNLOAD,
NAME = N'smartit_bk',NOSKIP,STATS = 10,NOFORMAT
----------------------------------------------------------------------------------------------------------------------------------
清除交易紀錄檔
use DB_Name
Backup Log DB_Name with TRUNCATE_ONLY
dbcc shrinkfile ( DB_Name_log , 2)
---------------------------------------------------------------------------------------------------------
資料庫壓縮
DBCC SHRINKDATABASE ( DB_Name, 10)
-----------------------------------------------------------------------------------------------------------------------------------
一週資料備份
DECLARE @bkFileName nvarchar(255)
SET DATEFIRST 1
SELECT @bkFileName =
CASE DATEPART(dw, GETDATE())
WHEN 1 THEN N'D:\星期一.bak'
WHEN 2 THEN N'D:\星期二.bak'
WHEN 3 THEN N'D:\星期三.bak'
WHEN 4 THEN N'D:\星期四.bak'
WHEN 5 THEN N'D:\星期五.bak'
WHEN 6 THEN N'D:\星期六.bak'
WHEN 7 THEN N'D:\星期日.bak'
END
BACKUP DATABASE [DB_Name] TO DISK = @bkFileName WITH INIT,NOUNLOAD,NAME=N'SMARTIT 備份',NOSKIP,STATS=10,NOFORMAT
----------------------------------------------------------------------------------------------------------------------------
留言列表