各位好:
这两天接到客户的电话,反应数据库操作速度奇慢,甚至报连接超时的错。检查后发现是LOG文件过大导致的问题_一个MDF为400M的库LOG有4.7G,另一个更恐怖,如果我没有听客户说错的话MDF为200M,LDF为39G!!!。
我让客户对LOG进行了清空、收缩的操作之后,系统就正常了。但我却十分奇怪:是什么原因会导致LOG文件变得这么大呢??这么大的文件不可以让客户发给我,所以我不清楚LOG里写了些什么,客户连看LOG都不会。
所以请各位高手指教,为什么会这样?有没有什么好的办法可以避免这个问题再次发生?谢谢。
你要定时对日志备份,备份会自动删掉的!
你可以通过这样操作,就可以减少log文件到200M。
Backup log 数据库 With no_Log
DBCC ShrinkFile(log文件名,200)
1.USE SP_DBOPTION DATABASENAME,AUTOSHRINK,TRUE
2.you should backup database every day.
3.you can manu add checkpoint in T-SQL programm in order to shrinklog.
4.or run below script,you will shrink you database log files immediately,
in my experience,you need to run the script for 3 or 4 minutes before
stopping it manually
good luck!!!
/* Run "select * from sysfiles to get fileid you want to shrink"*/
use northwind
go
dbcc shrinkfile(2,notruncate)
dbcc shrinkfile(2,truncateonly)
create table t1(char1 char(4000))
go
declare @i int
select @i=0
while(1=1)
begin
while(@i<100)
begin
INSERT INTO T1 VALUES (A)
SELECT @I=@I+1
END
TRUNCATE table T1
BACKUP LOG northwind with truncate_only
end
go
将日志设为截断:
exec sp_dboption yourDB,trunc. log on chkpt.,true
可能是你没有限制日志的最大使用空间。
在CREAT DATABASE时的LOG ON里不是有个MAXSIZE参数吗?
你的前台对db操作很频繁么,有大量的数据插入,更新?
你用管理->数据库维护计划来做
选择数据库->从数据库文件中删除未使用的空间
当数据库的大小超过n MB 时收缩数据库 保留 10 % 的数据空间作为可用空间,这样可以调度执行,不需要手工操作了