資料庫備份及Log瘦身隨手記

摘要:資料庫備份及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

 

打雜打久了,就變成打雜妹

程式寫久了,就變成老乞丐