检查扎兰屯服务器的时候,发现其中一个分区的原空间有300多个G,但只余下了80多个G。检查了一下,发现某库ldf文件过大,竟然达到了280多个G。
这如何得了,再这样下去,硬盘怎能受得了?
尝试用收缩文件,然后收缩日志的方式减少文件大小,结果发现不太稳定,且没有效果。
由于ldf文件相对来说不太重要,所以决定还是以极端的方式解决。
即分离后,删除该文件,再附加的方式解决。如果分离不成功,要选中删除连接。
仔细查找后,发现其它库的ldf文件没有这么大的原因是,恢复模式设置为简单模式,而这个库的模式是完整模式。
随后,我就把恢复模式设置为简单模式了。打算联系一下当地加盟商,过一两找个时间解决一下。
也可通过命令:
EXEC sp_detach_db @dbname = 'copy_test'
EXEC sp_attach_single_file_db @dbname = 'copy_test',
@physname = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\copy_test.mdf'
在实际情况下,我把恢复模式修改为简单模式后,过了两天,发现LDF文件变小了,只有不到5M.我问了一下,好像没有人动过。
如果没有人动过的话,那说明SQL是自动的,当设置为简单模式后,自己就会缩小LDF文件,所以网上的大多数办法都是不可信的,经过实验,我的方法应该是最有效和最安全的。
经过本人实验,SQL确实是自动的,只要把模式设置成简单模式后,数据库在下次备份后,自动将过大的ldf文件干掉了。或者是另一种说法,我这种说法有点不准确,总之目的达到即可。