首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

SQL Server Error Log 治理

2013-01-23 
SQL Server Error Log 管理SQL Server除了每个数据库有Log文件,即LDF文件外,SQL Server自己本身也有一个Er

SQL Server Error Log 管理

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文件,则先把当前的所有ERRORLOG文件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.
 return(1)
    end

dbcc errorlog
return (0)

GO

 

热点排行