sqlserver2008清理收縮日志文件方法


SQL2005清空刪除日志:

 

代碼如下:


Backup Log DNName with no_log  '這里的DNName是你要收縮的數據庫名,自己注意修改下面的數據庫名,我就不再注釋了。
go
dump transaction DNName with no_log 
go
USE DNName
DBCC SHRINKFILE (2)
Go

 

SQL2008清空刪除日志:

'在SQL2008中清除日志就必須在簡單模式下進行,等清除動作完畢再調回到完全模式。

 

代碼如下:

USE [master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE --簡單模式
GO
USE DNName
GO
DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)

 

GO

 '這里的DNName_Log 如果不知道在sys.database_files里是什么名字的話,可以用以下注釋的語句進行查詢

'USE DNName

'GO

'SELECT file_id, nameFROM sys.database_files;

'GO
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL --還原為完全模式
GO



sqlserver2000壓縮日志 

可以將jb51.ldf文件變得很小,方便備份數據庫等,在sqlserver查詢分析器中執行即可。 

代碼如下:

DUMP TRANSACTION [jb51] WITH NO_LOG 
BACKUP LOG [jb51] WITH NO_LOG 
DBCC SHRINKDATABASE([jb51]) 
 
或者用如下語句
代碼
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE
GO
USE DNName 
GO
DBCC SHRINKFILE (N'LogFileName' , 0,TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL
GO
  
 
SQL Server 2000要清理日志使用的是dump語句,但是在SQL Server2008里,這個語句不管用了,如果日志文件很大,比如超過1G,就需要截斷一下日志文件以加快sqlserver的運行速度,在SQL Server2008里,方法改為:
有數據庫 xxdb 在 SQL Server 2008 下,日志文件已經超過1G。
以往使用BACKUP語句-BACKUP LOG xxdb WITH NO_LOG 已經失效,在查閱 MSDN 之后發現 MS 提供的標准截斷日志語句已經變為了 “BACKUP LOG 語句不指定 WITH COPY_ONLY”
使用語句 BACKUP LOG xxdb to disk='x:\work\1.bak'  成功將日志文件備份,並截斷日志文件。這里x:代表你想要備份文件的盤符。
然后使用 DBCC SHRINKFILE (xxdb_log,10)  收縮日志文件到 10M
總結:
完整的收縮日志文件的 T-SQL 語句:
 
 
BACKUP LOG xxdb to disk='x:\work\1.bak'
DBCC SHRINKFILE (xxdb_log,10)
GO

--

BACKUP LOG <db_name> to disk=<'backupfilename'>
DBCC SHRINKFILE (<log_filename>,10)
GO
里面的x:\work是隨意設置的。當然也可以收縮到比如5M或1M。
 
 
 
在用的:
USE[master]
GO
ALTERDATABASEYHDBSETRECOVERYSIMPLEWITHNO_WAIT
GO
ALTERDATABASEYHDBSETRECOVERYSIMPLE--簡單模式
GO
USEYHDB
GO
DBCCSHRINKFILE(N'YHDB_log', 11,TRUNCATEONLY)
GO
USE[master]
GO
ALTERDATABASEYHDBSETRECOVERYFULLWITHNO_WAIT
GO
ALTERDATABASEYHDBSETRECOVERYFULL--還原為完全模式
GO

 

 
如果想新的日志文件不會增長太快可以設置為簡單模式:
右擊==》屬性==》選項==》恢復模式,選擇簡單模式
 
手動收縮方法:
右擊數據庫==》任務==》收縮==》文件,在設置頁面的”收縮操作“選擇將文件收縮到:10M(可以自行設置大小)
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM