SQL Server ErrorLog 错误日志(如果数据库所占空间变大)

默认情况下,SQL Server 保存 7 个 ErrorLog 文件,名为:
  • ErrorLog
  • ErrorLog.1
  • ErrorLog.2
  • ErrorLog.3
  • ErrorLog.4
  • ErrorLog.5
  • ErrorLog.6

在 APACS OS 版本 6.1 中,ErrorLog 文件保存在 c:\Program Files\Microsoft SQL Server\MSSQL$WINCC\LOG 文件夹中。在 APACS OS 版本 7.0 中,ErrorLog 文件保存在 c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG 文件夹中。ErrorLog 文件包含最新信息;ErrorLog.6 文件包含最老的信息。

每次重启动 SQL Server 时,这些日志文件都如下循环:

  • 删除 ErrorLog.6 文件中的所有数据,并创建一个新的 ErrorLog 文件。
  • 上个 ErrorLog 文件中的所有数据被写入到 ErrorLog.1 文件中。
  • 上个 ErrorLog.1 文件中的所有数据被写入到 ErrorLog.2 文件中。
  • 上个 ErrorLog.2 文件中的所有数据被写入到 ErrorLog.3 文件中。
  • 上个 ErrorLog.3 文件中的所有数据被写入到 ErrorLog.4 文件中。
  • 上个 ErrorLog.4 文件中的所有数据被写入到 ErrorLog.5 文件中。
  • 上个 ErrorLog.5 文件中的所有数据被写入到 ErrorLog.6 文件中。

如果其中一个 ErrorLog 文件已很大,则可通过运行 sp_cycle_errorlog 存储过程手动循环这些 ErrorLog 文件。注意事项:旧的 ErrorLog 文件中的数据将被覆盖!如果必须保存旧的 ErrorLog 文件中的数据,则可将这些旧的 ErrorLog 文件复制到某个外部存储介质中。

在 APACS OS 版本 6.1 中,可利用 SQL Qry Analyzer Tool 从 SQL Server Enterprise Manager 运行 sp_cycle_errorlog 存储过程。在 APACS OS 版本 7.0 中,可从 SQL Server Management St io 运行 sp_cycle_errorlog 存储过程。

所以需要定期能切换写入error log . 一般可以使用DBCC errorlog命令来操作 。

Exec('DBCC ErrorLog')  或 exec sp_cycle_errorlog

或者可以通过以下命令,将sp 放在Job中定期执行。

..........

 

..........

转载:http://6415083.blog.163.com/blog/static/6660257520113203519353/

 

SQL 2005 Errolog过大处理方法
SQL Server 错误日志
 

在日常SQL Server的维护中,查看 SQL Server 错误日志可以用来确认服务的运行情况:例如服务的启停、备份和还原操作、登录认证情况等等,需要经常性的查看。

使用 SQL Server Management Studio 或文本编辑器都可以查看 SQL Server 错误日志。默认情况下,错误日志位于 Program Files/Microsoft SQL Server/MSSQL.n/MSSQL/LOG/ERRORLOG ERRORLOG.n 文件中。默认保留有7 SQL Server 错误日志文件,分别是:ErrorLogErrorlog.1Errorlog.6 ,当前的错误日志(文件ErrorLog)没有扩展名。每当启动 SQL Server 实例时,将创建新的错误日志ErrorLog,并将之前的ErrorLog更名为ErrorLog.1,之前的ErrorLog.1更名为ErrorLog.2,依次类推,原先的ErroLog.6被删除。

生产服务器上的ErrorLog文件有时候会碰到文件很大的情况,尤其将登录认证情况记录到错误日志的情况之下,此时使用SQL Server Management Studio或者文本编辑器查看错误日志查看的时候速度会是个问题,对于这种情况,可以在不重新启动服务器的情况下,通过存储过程sp_cycle_errorlog来生成新的日志文件,并循环错误日志扩展编号,就如同重新启动服务时候一样。除了 Execute sp_cycle_errorlog 之外,也可以使用DBCC ERRORLOG来实现同样的功能。在实际操作中,也可以通过建立一个Job定时去执行该存储过程,这样将日志文件大小控制在合理的范围之内。

SQL Server默认保留7次错误日志文件,在产生新的错误日志的同时,最老的那个日志也被删除了,如果想保留更多次的错误日志,可以通过如下方法来设置(SQL Server 2005):

  • 打开 SQL Server Management Studio
  • 在“管理”目录下,在SQL Server日志上右键,点击“配置”
  • 在弹出的“配置SQL Server错误日志”窗口中,在“限制错误日志文件在回收之前的数目”复选框上打勾,并且将“最大错误日志文件数”设置为希望的数值。这个数值在699之间。

除了上述方法之外,也可以通过修改注册表的方式来修改。新建一个注册表项(如果有则修改之):HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer/NumErrorLogs默认情况下,并没有这个注册表项,类型选择REG_DWORD,数值设置为希望保留的日志次数。修改注册表项的方法也可以通过以下存储过程来实现:

exec xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software/Microsoft/MSSQLServer/MSSQLServer', N'NumErrorLogs', REG_DWORD, 20

在默认情况下,SQLServer的错误日志位于 Program Files/Microsoft SQL Server/MSSQL.n/MSSQL/LOG/ERRORLOG ERRORLOG.n 文件中。

可以通过如下方法来修改该路径:

  • SQL Server 配置管理器中,单击“SQL Server 服务
  • 在右窗格中,右键单击 SQL Server (<实例名>),再单击属性
  • 高级选项卡的启动参数框中,有以分号 (;) 分隔的参数。其中,有一个以 –e开头的参数,修改该参数后面的路径,就可以将错误日志存放到指定的路径下,修改完成需要重启服务生效
http://www.cnblogs.com/jsycgxm/articles/2180896.html
posted @ 2011-10-11 10:27  云中雀  阅读(12909)  评论(0编辑  收藏  举报