2010年11月1日 星期一

SQL SERVER資料庫備份

USE DBNAME
GO
--Shrink Data
--10代表10MB
--而Truncate_Only的選項則是告訴Sql Server清空之空間由Sql Server管理,不還給OS。
DBCC SHRINKFILE (N'DBNAME' ,10)
--清空之空間的空間釋放給作業系統
DBCC SHRINKFILE (N'DBNAME' ,TRUNCATEONLY )
--Backup Log
/*
只能用於 BACKUP LOG ,可強制截斷交易記錄。
會移除尚未使用的LOG。這個選項會釋放空間,但可能會有資料遺失的風險。
NO_LOG 和 TRUNCATE_ONLY 是同義字。
SQL SERVER2008 R2已停用NO_LOG 和 TRUNCATE_ONLY。
使用BACKUP LOG DB WITHNO_LOG 和 TRUNCATE_ONLY 時應立即執行FULL或DIFFER備份。
*/
BACKUP LOG DBNAME WITH TRUNCATE_ONLY
--Shrink Log
DBCC SHRINKFILE ( DBNAME_log , 0,TRUNCATEONLY );
DECLARE @myBackupDate AS NVARCHAR(50)
SET @myBackupDate =(select CONVERT(NCHAR(8),getdate(),112) + CONVERT(NCHAR(2),getdate(),114) )
SET @myBackupDate = N'DBNAME' + @myBackupDate + N'.bak'
BACKUP DATABASE DBNAME
TO DISK = @myBackupDate WITH NOFORMAT, INIT, NAME = N'DBNAME-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

沒有留言:

張貼留言