Mssql server 6.5 日志问题

有一个数据库的日志为显示为“-763M”,存储日志的设备只有600兆,程序运行过程中经常会提示日志满,但用dump transaction databasename with no_log来清日志,日志清不掉,显示还是为“-763M”,各位有没有碰到过这种情况,为什么?如何解决?
---------------------------------------------------------------

6.5很久没用了,你在dump transaction databasename with no_log命令执行完后,用命令dbcc checktable(sqlogs)便可以看到变化了。(表名sqlogs,我不知道表名是否正确,在master库中)
---------------------------------------------------------------

chenlj188(菩提子) 说的表名错了,是SYSLOGS,也不一定在MASTER库中.

---------------------------------------------------------------

1.DUMP TRANSACTION test2 with NO_LOG
DUMP TRANSACTION test2 with TRUNCATE_ONLY
2.exec sp_dboption 'test2','trunc. log on chkpt.','on'
3.DBCC SHRINKDATABASE and DBCC SHRINKFILE
---------------------------------------------------------------

6.x 和 7.0(2000)不同,6.x的日志是存放在表中的,不必收缩数据库。

在6.x 中没有DBCC SHRINKDATABASE,类似的是:DBCC SHRINKDB

--假设test2为数据库名称

DUMP TRANSACTION test2 with NO_LOG
DUMP TRANSACTION test2 with TRUNCATE_ONLY
将上面的语句多次执行,直到日志缩小。

上面的方法治标不治本,标本兼治要用下面的方法。

方法一:
--改为日志处于截断模式
exec sp_dboption 'test2','trunc. log on chkpt.','on'
通常用于测试环境。

方法二:
--改为日志不处于截断模式
exec sp_dboption 'test2','trunc. log on chkpt.','off'

建立作业,每半个小时一次日志备份,如果日志还是增大,尝试15分钟一次...5分钟一次日志备份。

每天一次完全数据库备份
完全数据库备份前执行
DUMP TRANSACTION test2 with NO_LOG
DUMP TRANSACTION test2 with TRUNCATE_ONLY

通常用于真实环境。
---------------------------------------------------------------

我也在用SQL SERVER6.5,你按装它的SP4吧,问题应该能解决。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus