SQL Server除了每个数据库有Log文件,即LDF文件外,SQL Server自己本身也有一个Error Log,位置存在安装目录下,Widows系统中log文件位于C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log。
Error log的文件数目可以配置,最多99个,默认6个,文件编号为ERRORLOG.1,2,3,4.....,还有一个文件没有编号,就叫ERRORLOG,这个文件是SQL Server当前的活动日志文件(active log),这个文件无法删除,其他的都可以删除。也就是说,ERRORLOG文件里是最新的日志信息,其他的文件都是以前的信息。
每次SQL Server重启动,所有的ERRORLOG文件要做一次切换,拿6个log文件来说,具体如下:
删除ERRORLOG.6中的所有数据
ERRORLOG.5的数据写入到ERRORLOG.6中
ERRORLOG.4的数据写入到ERRORLOG.5中
ERRORLOG.3的数据写入到ERRORLOG.4中
ERRORLOG.2的数据写入到ERRORLOG.3中
ERRORLOG.2的数据写入到ERRORLOG.1中
ERRORLOG的数据写入到ERRORLOG.1中
重新创建ERRORLOG文件
所以,如果SQL Server不重启,ERRORLOG文件就会变得很大,解决办法如下:
1. 如需要保存,先备份Error log,先把当前的所有Error log文件copy到其他存储介质
2. 运行命令: EXEC sp_cycle_errorlog,这个命令强制SQL Server做一次Error Log文件的切换
3. 把最大的log 文件删除
如果需定期切换error log,一般可使用DBCC errorlog命令在一个sql server的agent job 来完成。
create procedure sp_cycle_errorlog
if (not (is_srvrolemember('sysadmin') = 1)) -- Make sure that it is the sysadmin role to execute the code.
begin
return -- here can raise an error.
end
dbcc errorlog
return (0)
GO
SQL Server的错误日志文件(ERRORLOG)存储在安装目录下,最多可配置99个,每次重启时会进行文件切换。当日志文件过大时,可以通过备份日志、执行`sp_cycle_errorlog`存储过程来切换并删除旧日志,或者用DBCC ERRORLOG命令定期切换。
294

被折叠的 条评论
为什么被折叠?



