如何让SQLServer定期自动删除同一数据库下的多事务日志?

如何让SQLServer定期自动删除同一数据库下的多事务日志?,第1张

新建个作业,定期执行以下语句

数据库名”代表什么,不用说了吧……

--截断事务日志

backup

log

数据库名

with

no_log

--收缩数据库,将收缩后的可用空间归还给 *** 作系统

dbcc

shrinkdatabase

(数据库名,truncateonly)

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

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

自动清理方法:同样是利用sql

server代理服务,执行自动作业。

打开企业管理器,进入“管理”-“sql

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

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

Sql代码

1.

DUMP

TRANSACTION

数据库名称

WITH

NO_LOG

DBCC

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

或者使用

2.

DUMP

TRANSACTION

DBName

WITH

NO_LOG

BACKUP

LOG

DBName

WITH

NO_LOG

DBCC

SHRINKDATABASE(DBName

)

DBCC

SHRINKFILE(1)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存