mssql sqlserver自动处理事务日志的大小-数据库审计


摘要:
在对公司数据库进行日常审计时,我们发现数据库的日志超过了预期固定的数值,那么此时我们需要对数据库的日志进行备份和截取,
下文讲述我们通过sqlserver存储过程和作业对数据库日志的常规化处理


在生产环境中的db服务器,如果不对数据库日志文件进行及时处理,会导致日志文件占用过多的磁盘空间,使磁盘空间不足,
导致系统异常。
下文讲述通过存储过程和作业的方式自动化处理sql日志
例:

 create proc    sp_log_autobackUp  
as
begin
declare @fileName VARCHAR(100)
declare @dbid int
set @dbid=DB_ID('数据库名称') ---获取数据库ID编号
SET @file=replace('E:\DataBaseBackup\DataBaseLogName_'+replace -- 设置日志备份数据
(replace
(CONVERT(CHAR(19), GETDATE(), 120),':', '_'), '-', '_'),' ','_')+'.trn'
declare @filesize int
declare @maxsize int
Set @maxsize = 1024 --设置文件最大尺寸
Select @filesize = size from sysaltfiles where dbid = @dbid and fileid =2   ---获取日志文件尺寸
if @filesize > @maxsize
begin
backup log  [数据库名称] to disk = @file with FORMAT 
Print '日志备份成功'
DBCC Shrinkfile(2)  ---收缩日志
Print '日志收缩完毕'
end
end

-----通过sqlserver作业 将存储过程设置为每天运行一次 就可以实现自动化处理数据库日志