sql日志文件过大怎么办_sql日志文件收缩与截取方法

发布时间:2020-05-22编辑:脚本学堂
有关sql server日志文件过大问题的解决方法,sql日志文件的收缩与截断方法,以及通过mdf和ldf文件恢复数据库的方法,需要的朋友参考下。

sql server 数据库中与备份和恢复相关的日志文件有mdf和ldf文件,存在于sqlserver_install_dirmssqldata

sql server日志文件太大的解决办法

1.文件解释
.mdf文件
MDF是SQL Server数据库文件.

.ldf文件
LDF是SQL的日志文件,是不能直接打开的。LDF记录每一个操作:SELECT.INSERT.DELETE.UPDATE..日志

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

EXEC   sp_attach_db   @dbname   =   N'pubs',  
 @filename1   =   N'c:Program   FilesMicrosoft   SQL   ServerMSSQLDatapubs.mdf', 
  @filename2   =   N'c:Program   FilesMicrosoft   SQL   ServerMSSQLDatapubs_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是你允许的最大数据文件大小)