sqlserver日志文件过大的处理方法

 

SqlServer 数据库中与备份和恢复相关的日志文件有MDF和LDF文件 存在于\\sqlserver_install_dir\MSSQL\Data\
1.文件解释
.mdf文件
    MDF是SQL Server数据库文件. 
.ldf文件
    LDF是SQL的日志文件,是不能直接打开的。LDF记录每一个操作:SELECT.INSERT.DELETE.UPDATE..日志

2.通过MDF和LDF文件恢复数据库的方法:
1).sql语句
下面的示例将   pubs   中的两个文件附加到当前服务器。    

1   EXEC   sp_attach_db   @dbname   =   N'pubs',   
2         @filename1   =   N'c:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\pubs.mdf',  
3         @filename2   =   N'c:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\pubs_log.ldf' 

2).图形界面
    资源管理器->数据库->所有任务->附加数据库->选文件->确认

如果数据库长期运行并进行大量的操作,会发现LDF文件异常的大,这时候
3.该如何截斷MS-SQL Transaction Log?
這些Log增長的速度決對不是你所想的這麼小,往往實體資料並沒任何增長(.MDF)但交易記錄檔(_LOG.LDF)則是以數倍的成長
下列語法是針對MS-SQL 2000及MS-SQL 2005的截斷Script:
--1.截斷交易記錄
BACKUP LOG [資料庫名稱]
    WITH TRUNCATE_ONLY  
--2.顯示資料庫檔案,找出交易記錄檔的邏輯檔名
EXEC sp_helpdb '資料庫名稱'
--3.壓縮交易記錄檔
USE 資料庫名稱
DBCC SHRINKFILE([資料庫名稱_log],2) 
//2执行之后是指2M
 以上語法最主要的功能是在於ShrinkFile這部份,它是直接實體的將log檔截斷,並且還回實體的磁碟空間
當然,若有習慣做Transcation log的備份,這個動作也可以在備份作業中最後一個步驟來執行

4.如何收缩数据库文件?
收缩数据库文件(如果不压缩,数据库的文件不会减小)
  企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
    --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
    --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

5.如何设置以后能自动收缩?
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

6.如何想以后不让它日志增长得太大?
企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)

posted @ 2015-08-03 13:24  yzl050819  阅读(4310)  评论(0编辑  收藏  举报