摘要:資料庫備份及Log瘦身隨手記
2015-10-22加註
進行SQL 2014備份Log時一直出現錯誤(DBCC SHRINKFILE (LogName, 1))
發現SQL 2014又變成BACKUP LOG DBName TO Disk='備份位子' with init
怪怪...只好再註記一下
一天一個備份檔,每次覆寫
Declare @theWeek varchar(1) --取得星期備份
Declare @DBName varchar(30)
set @theWeek=CONVERT(varchar, datepart(dw,GETDATE()) -1) --備分時間若超過午夜12點,請將-1拿掉
set @DBName = 'C:\DBBackup\[看要存什麼檔名]' +@theWeek + '.bak' --資料庫備份檔名
--進行DB備份
BACKUP DATABASE DBName
TO DISK=@DBName
WITH init
GO
--進行Log瘦身
--SQL 2000及SQL2005/2014適用
BACKUP LOG 資料庫名稱 TO Disk='C:\LogTemp\DevLog.bak' WITH init --先備份Log檔
DBCC SHRINKDATABASE(資料庫名稱,30,NOTRUNCATE) -- 先挪空間,NoTruncate表示不截斷,30表示留30%大小
DBCC SHRINKDATABASE(資料庫名稱,30,TRUNCATEONLY ) --實際釋放空間
--SQL 2008 Log瘦身適用
-- SQL 2008要截斷Log必須先改成簡單模式.
ALTER DATABASE 資料庫名稱
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (資料庫Log名稱, 100);
GO
-- Reset the database recovery model.
ALTER DATABASE資料庫名稱
SET RECOVERY FULL;
GO
打雜打久了,就變成打雜妹
程式寫久了,就變成老乞丐