本人管理的一个数据库日志已经达到了恐怖的60G,原因是故障还原模型采用了完全模式,现在要缩小这个数据库日志,但因为对恢复方法有些疑问,故尚未下手,下面是从网上收集的方法,针对此方法,我有几个疑问,请高手解答,谢谢!方法:
1、备份数据库(完整备份)
2、DUMP TRANSACTION 库名 WITH NO_LOG
3、企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,
这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。 疑问1:在执行步骤2的语句前,要不要断开所有客户端连接?
疑问2:若有客户端连接并有数据更改操作时,我执行了步骤2中的语句有何影响或后果?求解!!!谢谢!!!
1、备份数据库(完整备份)
2、DUMP TRANSACTION 库名 WITH NO_LOG
3、企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,
这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。 疑问1:在执行步骤2的语句前,要不要断开所有客户端连接?
疑问2:若有客户端连接并有数据更改操作时,我执行了步骤2中的语句有何影响或后果?求解!!!谢谢!!!
dbcc shrinkfile(dblogname)
备份好数据库后执行上面的语句,不用断开客户端连接。
执行完毕后最好再备份一次,不然的话没法用事务日志备份和还原。
dbcc shrinkfile(dblogname)
备份好数据库后执行上面的语句,不用断开客户端连接。
执行完毕后最好再备份一次,不然的话没法用事务日志备份和还原。-------
再备份一次是指再备份一次数据库还是在执行一次语句 backup log dbname with no_log?
使用第3种,会比较方便。
如果收缩不了,改下恢复模式
alter database xxx set recovery simple
然后再收缩。
完了后,要改回来
alter database xxx set recovery full