关于mssql的事务日志写满的警告信息,求救(50分)

  • 主题发起人 主题发起人 3p
  • 开始时间 开始时间
3

3p

Unregistered / Unconfirmed
GUEST, unregistred user!
我编写的mssql应用程序投入使用后,近来被事务日志写满的警告弄得很烦,
我的数据库data的设备为8M,Log的设备为6M(已作过扩展),已大大超过了20%
的基本需求,本来一般设定2-3M已足够,但我总是很快就收到Log已写满的警
告,操作取消了!
不得不转储日志和数据库,操作是
dump transaction... to ... with no_log
dump database ... to ... with noinit
dump transaction... to ... with noinit
情况出现太频繁了,不对路,而且越来越严重。这和master的log设备有关吗?
我还应该做点什么咧?
(补充:我的数据库的数据设备和日志设备是分开的,而且都分别跨越2个设
备)
各位前辈,请指点迷津,谢谢!

 
办法一: 在数据库属性上设定不保存日志

办法二: 定时备份数据, 并在备份后截断日志.
 
1.去查查程序,是否有乱用SQL的问题
2.将一些查询用临时表实现
 
检查一下日志里面的消息, 里面一定有很多错误或者垃圾信息, 找出引起此消息的根源
 
在sql server上添加自动执行清除事务日志的任务,每天执行一次.
 
感谢各位:
我想保留日志记录,我所说的不正常是Mssql在正常操作非常短的情况下提示
我日志满了,典型情况是刚输入几条的记录就出来了,尝试扩展事务日志,正常了1-2
天,情况又出来了,对各位的提示我有所觉悟,各位开发的程序中曾出现过泪似的情
况吗?
现我不明有几点:
1 怎样查询日志内容?
2 按理,每次转储日志之后,日志是否会清0,它的使用空间应该会继续增
大吧?总有一天日会真的写满吗?
dump transaction ..to... with init 会从头再写日志吗?
如果可以,日志的设备空间应该不用再扩大吗?
欢迎各位继续给与我帮助,谢谢!
 
1、设置报警,让事务日志满后自动DUMP
2、用 SQL TRACE 监视你的程序
3、查看 NT EVENT LOG,有的 SQL SRV 错误也写入其内
4、是否提出看法,或问题已解决?

 
哈哈, 又该让我拣分喽

才发现这里还有个简单问题,

TO 3p
要做的小工作 1。EDIT你自己的 DATABASE ,在OPTION里
选择 Truncate Log On CheckPoint
此条目选择的意思是说在发生了 INSERT 或UPDATE等动作后,SERVER会发生
CHECKPOINT去检查修改的合法性,检查完后,正常情况是写 LOG
如果你选择了刚才那项目, 就不会写LOG ,那么,你的LOG永远也不会
大起来了。
同样的工作一定要在 TEMPDB上也做一次,因为TEMPDB 是系统做大规模查询
等工作时用到的临时DATABASE, TEMPDB里也会有 LOG。

只所以有时候你没有怎么去修改数据却出现你所说的 SYSTEM SEGMENT FULL 类的
错误,我认为是因为你的系统里的查询规模很大,从而涉及到了在TEMPDB上
大量的临时表动作,最后情况是 USER 的 DATABASE 没有多少数据变化
但是TEMPDB 却惹了是非

上面是俺的小经验, 以前我也受这个问题困绕过.



另外, 3P还有没了清的题目,提完问题不给俺加分,就跑这里来了
强烈抗议3p的暴行! hehehe
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
948
import
I
I
回复
0
查看
654
import
I
后退
顶部