to asgq: 不能采用“(日志大小355M,从此不再增加)”我在用MS SQL Server6.5作实时数据库时,也遇到过类似日志溢出的问题,这里给你一个我当时的解决方法 - 后来在MS SQL Server 7.0上也成功。免费送你,相信一定能解决问题(1)建立一个定期备份数据库的job,根据数据量可以每12或24hours一次,备份数据库后立即清除日志(transaction log) - 参见下面的过程 DUMP_DATA(2)根据数据量每0.5或1小时自动做一次transaction log的备份 -参见下面的过程 DUMP_LOG (3)SQL Server 6.5下的两个过程代码如下:create procedure DUMP_DATA as checkpoint dump database yourdatabase to yourdatabase_dump with init,noskip dump transaction yourdatabase to yourdatabase_log_dump with init,noskip dbcc checkdb(yourdatabase) gocreate procedure DUMP_LOG as checkpoint dump transaction yourdatabase to yourdatabase_log_dump with noinit,noskip go(4)MS SQL Server 7.0下可以不加修改的运行,也可以用新的命令如backup代替dump
对,是固定日志大小问题: 运行以下语句即可,当日期达到CheckPoint(500M)时自动清空: --将数据库日志设为当达到CheckPoint时自动清空 sp_dboption @dbname='db_61236',@optname='trunc. log on chkpt',@optvalue='true' 用SQL Server Query anylizer执行以上语句即可。 --SQL Server7,SQL Server 2000均通过。
请用MSSQL自带的Profiler工具,看看系统到底是在哪儿中断的. 好运!
同意 man8888(北京男人): 可能问题出在日志上,
1、 让你的日志文件自动增长吧! 2、 定时清除日志!! 3、 祝你好运!!!
如果程序退出而没有任何的错误提示,肯定你自己哪个地方close了。 我以前碰到的问题是:运行一个晚上会异常,程序还在正常采样,但有错误提示,此时点“确认”程序会退出; 我的解决办法:出现异常时不点“确认”,而是“View CPU Window”,记录指示程序出错的地方然后回到Delphi IDE,查看相关的源代码(记住,你必须使用生成exe时的代码,如果在其后修改,请作备份),这就是正确定位错误所在。 工控比其它程序的不同是:可能要较长时间才会出错,由于错误机率小,更难捕捉。
可能是日志问题,你试试1 建立备份数据库可清空日志的存储过程CREATE PROCEDURE dumptask AS dump database yourdbname to yourdbnamebak with init dump transaction yourdbname with truncate_only2 在enterprise manager中找到management/sql server agent/jobs 新建一个定时的job 内容为exec dumptask注意:要将sql server agent服务改为自动
我的这个问题绝对是sql server方面的原因
排除delphi3 以及代码的 bug 了!
请大家多帮我从sql server的管理机制,资源占用方面找找原因
我这方面一无所知,有的时候光看书是不行的哦,需要有一定的经验哦
相信我过了一个月自己会搞定,但是用户等不起
自动退出是数据库连接断开,还是程序退出,还是数据库关闭?
如果是程序退出,考虑将代码用Try 封装,并在异常处加提示;
观察应用程序和数据库的内存的消耗情况;
观察其他周期性发生的情况;
是程序退出
代码肯定没问题,以前用paradox正常运行半年,没有问题
不能采用“(日志大小355M,从此不再增加)”我在用MS SQL Server6.5作实时数据库时,也遇到过类似日志溢出的问题,这里给你一个我当时的解决方法 - 后来在MS SQL Server 7.0上也成功。免费送你,相信一定能解决问题(1)建立一个定期备份数据库的job,根据数据量可以每12或24hours一次,备份数据库后立即清除日志(transaction log) - 参见下面的过程 DUMP_DATA(2)根据数据量每0.5或1小时自动做一次transaction log的备份 -参见下面的过程 DUMP_LOG
(3)SQL Server 6.5下的两个过程代码如下:create procedure DUMP_DATA
as
checkpoint
dump database yourdatabase to yourdatabase_dump with init,noskip
dump transaction yourdatabase to yourdatabase_log_dump with init,noskip
dbcc checkdb(yourdatabase)
gocreate procedure DUMP_LOG
as
checkpoint
dump transaction yourdatabase to yourdatabase_log_dump with noinit,noskip
go(4)MS SQL Server 7.0下可以不加修改的运行,也可以用新的命令如backup代替dump
运行以下语句即可,当日期达到CheckPoint(500M)时自动清空:
--将数据库日志设为当达到CheckPoint时自动清空
sp_dboption @dbname='db_61236',@optname='trunc. log on chkpt',@optvalue='true'
用SQL Server Query anylizer执行以上语句即可。
--SQL Server7,SQL Server 2000均通过。
好运!
1、 让你的日志文件自动增长吧!
2、 定时清除日志!!
3、 祝你好运!!!
我以前碰到的问题是:运行一个晚上会异常,程序还在正常采样,但有错误提示,此时点“确认”程序会退出;
我的解决办法:出现异常时不点“确认”,而是“View CPU Window”,记录指示程序出错的地方然后回到Delphi IDE,查看相关的源代码(记住,你必须使用生成exe时的代码,如果在其后修改,请作备份),这就是正确定位错误所在。
工控比其它程序的不同是:可能要较长时间才会出错,由于错误机率小,更难捕捉。
AS
dump database yourdbname to yourdbnamebak with init
dump transaction yourdbname with truncate_only2 在enterprise manager中找到management/sql server agent/jobs 新建一个定时的job
内容为exec dumptask注意:要将sql server agent服务改为自动
仍没解决?
联系[email protected] (没有QQ)
SQL加job可以定时执行procedure,一般SQL语句可以执行吗?非要写成Procedure?
我近期会到现场去,应该能解决,要不对不起这么多朋友了啊
to linshao16:感谢你的热心肠哦
我明天可能会去找你!
to myand:
谢谢,等我到了用户那里,再跟你联系!