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).图形界面
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 '
资源管理器->数据库->所有任务->附加数据库->选文件->确认
如果数据库长期运行并进行大量的操作,会发现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是你允许的最大数据文件大小)