SQL Server日志定时清理

sql server在运行过程中,尤其是使用一些数据交互操作过程中,会产生大量的日志;
日志的好处在于,会我们可以在数据库崩溃的时候,数据还原帮助 。
但在实际工作中,数据的备份和增量做好,相对更为靠谱 。在使用ETL工具数据清洗过程中,产生大量无用的日志,清理日志变成重要的工作 。
个人的做法倾向于在数据库设置定时清理日志作业 。

  • 1、具体作业步骤如下:
通过sql server自带的Microsoft SQL server Management Studio,连接数据库 。
  • 2、找到sql server 代理,新建代理作业

SQL Server日志定时清理

文章插图
 
输入作业名称:日志清理
所有者:默认sa管理员账户,清理日志需要权限等级,方便管理可以用默认sa账户
类别:方便管理可以选择【数据库维护】,或者其他类别 。主要是考虑方便后续可以用第三方工具读取配置信息
  • 3、关键步骤,设置执行代码

SQL Server日志定时清理

文章插图
【SQL Server日志定时清理】 
步骤名称:clearlog
命令内容如下:
USE [master]GOALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE 数据库名 SET RECOVERY SIMPLEGOUSE 数据库名 GODBCC SHRINKFILE (N'日志文件名' , 0,TRUNCATEONLY)GOUSE [master]GOALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE 数据库名 SET RECOVERY FULLGOdbcc sqlperf(logspace)关于【日志文件名】可以右键需要清理日志的数据库,选择属性,查看文件
SQL Server日志定时清理

文章插图
 
逻辑名称:cw_log,就是记录日志信息文件
  • 4.清理日志的原理:
先数据库状态转化成简单模式,数据清理完毕后,恢复到完全模式 。因此在清理日志的时候,设置时间,最好与数据库使用时间高峰期错开 。
  • 5、设置代理时间

SQL Server日志定时清理

文章插图
 
根据日志产生频率和增长情况,来设置是一天1次,还是1天多次,还是一周一次 。
通过ETL工具定时执行某些作业操作完毕后,进行日志清理代理的调用 。



    推荐阅读