如何清除SQL数据库日志?清除后对数据库有什么影响?

如何清除SQL数据库日志?清除后对数据库有什么影响?,第1张

教你如何清除SQL日志 \x0d\x0a\x0d\x0a1.打开查询分析器,输入命令\x0d\x0aDUMP TRANSACTION 数据库名 WITH NO_LOG\x0d\x0a2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。\x0d\x0a\x0d\x0a清除Log有两种方法:\x0d\x0a\x0d\x0a 1.自动清除法\x0d\x0a\x0d\x0a 开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。\x0d\x0a\x0d\x0a 2.手动清除法\x0d\x0a\x0d\x0a 执行命令“dump transaction”来清除Log。以下两条命令都可以清除日志:\x0d\x0a\x0d\x0adump transaction with truncate_only\x0d\x0adump transaction with no_log \x0d\x0a\x0d\x0a 通常删除事务日志中不活跃的部分可使用“dump transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会d出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。\x0d\x0a\x0d\x0a 以上两种方法只是清除日志,而不做日志备份,若想备份日志,应执行“dump transaction database_name to dumpdevice”命令。 \x0d\x0a\x0d\x0a清除后对数据库没有影响

数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。手工清除单个数据库的还好说,但数据库多了,或者临时没有来得及清理,可能硬盘空间就会占满了,影响访问。因此设置自动清理数据库日志文件还是比较实用的。

手动清理方法:右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清除日志文件,最后记得重新选择“属性”,将故障还原模型设置为完全。

自动清理方法:利用sql server代理服务,执行自动作业

打开企业管理器,进入“管理”-“sql server代理服务”-“作业”,在右侧窗口点击右键,选择“新建作业”。“常规”选项卡中,填写作业名称,具体描述,注意所有者最好还是用sa或者默认的管理帐号。

转到“步骤”选项卡,新建作业步骤,填写步骤名称,类型为脚本,数据库为需要清理日志的数据库,在下边命令中填写以下命令:

DUMP TRANSACTION 数据库名称 WITH NO_LOG

DBCC SHRINKFILE(数据库日志文件名,1)

上边的数据库名称填写需要维护的数据库名称,数据库日志文件名填写其对应的日志文件名,注意,不是资源管理器里看到的带后缀名的那个名字,而是企业管理器里,数据库属性里日志选项卡中日志的名字(通常也只是差一个后缀名……),确定后添加一个作业步骤。 如果需要维护多个数据库,用上述方法重复添加作业步骤,注意每个步骤成功或失败后的动作即可,最后选择一下开始的步骤。

在“调度”选项卡中,类似备份的维护计划,填写调度周期,即定期清理的周期,不再细述。如果需要,可以在最后的“通知”选项卡上设置作业完成后的通知项,需要设置 *** 作员,以及设置相应的服务,这里也不具体说明了,通常不用……


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6670773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存