请教各位,去年帮一家自来水厂开发了一套水质监控系统(用VC与SQL7.0)
系统运行一年软件没有任何问题,却由于数据库的日志文件满存而导致软件
程序打不开数据库而运行不了,我删掉日志文件后,SQL重新生成日志文件,
软件系统运行良好,但不到两个月日志文件又增长2.98G说日志文件已满,软件系统又运行不了,删掉日志文件重新运行SQL与软件系统都很好,观察了几天,日志文件差不多以每天100多兆的速度在增长,如果照这样的速度隔不了2个月系统又运行不了,又的跑一趟,这太麻烦了(离客户很远)!请各位帮我想想办法,这到底是什么原因,有没有办法让日志文件停止增长或无限增长??(我VC里只做了3个定时器,每隔5秒插入数据与读取数据)
---------------------------------------------------------------
在SQL Server企业管理器中可设置“自动截短日志”勾上,或是把“自动增长”勾上。
---------------------------------------------------------------
解决方法如下:
1,创建作业
backup log with truncte_only
然后进行调度执行
2,设置“自动截短日志"
3,或者把数据库的还原模式改为简单还原模式(在数据库属性里)
---------------------------------------------------------------
(转发)给你一段CODE.在SQL ANALYZER中运行,可以立即收缩日志.
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
---------------------------------------------------------------
你也可以设置SQL SERVER自动收缩,
sp_dboption 'database','autoshrink','true'
sp_dboption 'database','trunc. log on chkpt.','true'