MS-SQL日志增长太快,为啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MS-SQL日志增长太快,为啥相关的知识,希望对你有一定的参考价值。

数据库日志前两天才删除到6MB,今天又变成了6000MB,数据库本身只有3G左右,如果更改数据库的选项,由“完全”改为“简单”会把数据库日志减小,会有什么影响,或者还有什么更简单的办法,还有造成这种的原因是什么。。

三种不同的模式,介绍如下,你也可以看看这帖
http://technet.microsoft.com/zh-cn/library/ms187048(SQL.90).aspx
主要就是,完整是会记录你每一步操作的,如果你导入、删除这样的操作非常多,则日志增长非常快。比如你要清除历史数据,用的是DELETE命令,则删除的这些操作都是会记录日志的。

完整恢复模式使用日志备份在最大范围内防止出现故障时丢失数据,这种模式需要备份和还原事务日志(“日志备份”)。 使用日志备份的优点是允许您将数据库还原到日志备份内包含的任何时点(“时点恢复”)。 假定可以在发生严重故障后备份活动日志,则可将数据库一直还原到没有发生数据丢失的故障点处。 使用日志备份的缺点是它们需要使用存储空间并会增加还原时间和复杂性。

简单复原模式提供最简单的备份和还原形式。因为永远不会备份交易记录,所以备份很容易管理。不过,如果没有记录备份,就只能将数据库还原到资料最近一次备份的结尾。如果会发生失败,则资料最近一次备份之后所做的更新将遗失。

大容量日志恢复模式是一种特殊用途的恢复模式,只应偶尔用于提高某些大规模大容量操作(如大量数据的大容量导入)的性能。 完整恢复模式下有关备份的许多说明也适用于大容量日志恢复模式。建议尽量减少大容量日志恢复模式的使用。 最好的方法是在一组大容量操作之前切换到大容量日志恢复模式,执行操作,然后立即切换回完整恢复模式。
参考技术A --压缩日志
1:截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
3: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
4: 如果想以后不让它增长
企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
5.设置为自动收缩
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

以上是关于MS-SQL日志增长太快,为啥的主要内容,如果未能解决你的问题,请参考以下文章

MS-SQL 中是不是有等效于 SHA1() 的方法?

MDF文件丢失,如何恢复数据库(MS-SQL)

Media Temple DV 4.0 上的 MS-SQL 连接

sql Ms-sql脚本

MS-SQL 是不是支持内存表?

php 简单的MS-SQL示例