And*_*ely 2 sql-server t-sql error-log
我有一些代码可以帮助每天在我们的 SQL Server 上自动检查错误日志。此代码调用xp_readerrorlog 0来检查错误日志,并调用 xp_readerrorlog 0,1来检查 SQL Server 日志。
然而,有时我需要扫描不止一个错误日志。
我希望能够通过 T-SQL 查看日志的日期,或者除此之外,找到存在的日志数量。
我读到我们最多可以有 99 个存档日志,但是当尝试显示不存在的错误日志时,服务器会抛出以下错误消息。
“xp_readerrorlog() 返回错误 2,'系统找不到指定的文件。”
我知道日期信息和数字存在,因为 SSMS 显示它(见下图。)
如果您运行EXEC sys.sp_enumerrorlogs;
它,它将为每个日志文件返回一行、日志文件中最早的日期以及日志文件大小。
这意味着您可以执行以下操作:
CREATE TABLE #error_log
(
log_number INT,
log_date DATE,
log_size INT
);
INSERT #error_log ( log_number, log_date, log_size )
EXEC ( 'EXEC sys.sp_enumerrorlogs;' );
SELECT *
FROM #error_log AS el;
Run Code Online (Sandbox Code Playgroud)
然后设置一个循环来抓取最大日志数,只抓取某个日期之后的日志,或者根据大小排除日志。一些小日志可能无趣,而一些大日志可能需要太长时间来处理。
归档时间: |
|
查看次数: |
1617 次 |
最近记录: |