有一个数据库的日志为显示为“-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吧,问题应该能解决。