欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL?Server使用xp_readerrorlog命令查看錯誤日志

 更新時間:2025年03月08日 15:14:43   作者:culuo4781  
本文探討了SQL?Server中查看日志的四種方法,重點介紹了xp_readerrorlog命令的使用方法,xp_readerrorlog命令用于T-SQL讀取SQL?Server錯誤日志,有助于對SQL?Server中的問題進(jìn)行故障排除,避免因特定情況而從GUI讀取大型錯誤日志的麻煩

本文探討了SQL Server中查看日志的四種方法,重點介紹了xp_readerrorlog命令的使用方法,xp_readerrorlog命令用于T-SQL讀取SQL Server錯誤日志。

介紹

SQL Server錯誤日志對于解決數(shù)據(jù)庫服務(wù)器的問題很有用。 它包含系統(tǒng)事件和用戶定義的事件信息。 在以下情況下,我們可以使用錯誤日志查看:

有關(guān)SQL Server實例的信息

審核登錄–成功或失敗

數(shù)據(jù)庫恢復(fù)狀態(tài)

記錄的錯誤消息

我們可以使用不同的方法讀取錯誤日志,但是首先,我們應(yīng)該知道錯誤日志的路徑。

SSMS工具查看日志

連接到SSMS中SQL實例,然后導(dǎo)航到“管理”。 展開管理文件夾,然后展開SQL Server日志。 在SQL Server日志中,您可以看到不同的日志-當(dāng)前日志和存檔日志:

SQL Server error logs

雙擊所需的錯誤日志文件,它將在單獨(dú)的窗口中打開錯誤日志:

View error log in SSMS

T-SQL方法查看日志

您可以使用SERVERPROPERTY()命令來了解當(dāng)前的錯誤日志文件位置

SELECT SERVERPROPERTY('ErrorLogFileName') AS 'Error log file location';

Error log location

您可以瀏覽到目錄,并顯示可用的錯誤日志文件

View error log in the log folder

使用GUI訪問錯誤日志

通常,DBA使用GUI方法讀取錯誤日志,如上所示。 您可能會遇到嘗試打開錯誤日志的問題,但是打開錯誤日志會花費(fèi)很多時間。 此外,它給出了超時問題。 由于錯誤日志過多,可能會發(fā)生這種情況。

通常,我們部署一個SQL Agent作業(yè)來回收錯誤日志文件,以便它不會變得很大。 如果作業(yè)不可用或未運(yùn)行,則可能會導(dǎo)致大量錯誤日志

如果我們?yōu)槌晒Φ牡卿泦⒂昧藢徍耍瑒tSQL Server會為每個成功的數(shù)據(jù)庫連接記錄一個條目。 在繁忙的OLTP系統(tǒng)中,您可能會獲得許多成功的登錄信息,這些登錄信息會淹沒錯誤日志

SQL Server日志備份。 假設(shè)您在SQL實例中有50個數(shù)據(jù)庫。 您每10分鐘配置一次事務(wù)日志備份。 因此,每隔10分鐘,它將在錯誤日志中寫入有關(guān)每個數(shù)據(jù)庫的日志備份的信息。 我們可以禁止顯示這些消息,但這不在本文討論范圍之內(nèi)

如果我們要搜索多個錯誤日志,則使用GUI讀取和過濾日志可能是一項令人沮喪且具有挑戰(zhàn)性的任務(wù)。

查詢以列出錯誤日志及其大小

您可以執(zhí)行以下查詢以列出可用的錯誤日志及其大?。?/p>

EXEC sys.sp_enumerrorlogs;

Query to list error log and their sizes

這里的日期列顯示了特定文件中最后一個條目的時間戳。

使用xp_readerrorlog讀取SQL Server日志文件

我們使用擴(kuò)展存儲過程xp_readerrorlog讀取SQL Server錯誤日志文件。

xp_ReadErrorLog命令的語法

Exec xp_ReadErrorLog  <LogNumber>, <LogType>, <SearchItem1>, <StartDate>, <EndDate>, <SortOrder>

LogNumber-存檔編號:錯誤日志的日志號。‌指定讀取哪個日志。SQL Server最多有7個日志,編號從0到6,其中0表示當(dāng)前日志‌

LogType-日志類型‌:指定日志的類型。1表示SQL Server日志,2表示SQL Agent日志‌

SearchItem1-查詢包含的字符串‌:指定要在日志中搜索的字符串。這個參數(shù)可以重復(fù),用于進(jìn)一步精確結(jié)果集‌

StartDate-開始時間‌:指定讀取日志的開始時間‌

EndDate-結(jié)束時間‌:指定讀取日志的結(jié)束時間。需要注意的是,如果要指定時間參數(shù),必須同時指定開始時間和結(jié)束時間‌

SortOrder-結(jié)果排序‌:指定結(jié)果集的排序方式,可以是按日期降序(Desc)或升序(Asc)‌

讓我們使用以下示例了解命令xp_readerrorlog。

讀取當(dāng)前錯誤日志

我們可以在不指定任何參數(shù)的情況下讀取當(dāng)前SQL Server錯誤日志:

EXEC xp_ReadErrorLog

Read Current error log

讀取SQL Server錯誤日志

在以下命令中,我們使用以下參數(shù):

EXEC xp_ReadErrorLog 0,1

Read SQL Server error log

讀取SQL Server代理日志

在此命令中,我們?yōu)長ogType參數(shù)2指定一個值,該值引用SQL Server代理日志:

EXEC xp_ReadErrorLog 0,2

Read SQL Server agent log

讀取當(dāng)前SQL Server錯誤日志并搜索文本“警告”

此命令在當(dāng)前SQL Server錯誤日志文件中搜索文本警告:

EXEC xp_ReadErrorLog 0, 1, N'Warning'

Reads current SQL Server error log and search for text 'Warning'

我們需要使用N將文本放在單引號中。我們可能會收到帶有N的以下錯誤消息。它將字符串聲明為Nvarchar數(shù)據(jù)類型,而不是Varchar:

消息22004,級別12,狀態(tài)1,第0行
執(zhí)行擴(kuò)展存儲過程時出錯:無效的參數(shù)類型

Error message

讀取當(dāng)前SQL Server錯誤日志并搜索多個條件

此查詢在當(dāng)前SQL Server錯誤日志中搜索文本數(shù)據(jù)庫和初始化。 這兩個條件都應(yīng)滿足以返回結(jié)果:

EXEC xp_ReadErrorLog 0, 1, N'Database',N'Initialization'

search for multiple conditions

在特定持續(xù)時間內(nèi)讀取當(dāng)前SQL Server錯誤日志

假設(shè)我們要搜索SQL Server錯誤日志特定的持續(xù)時間。 假設(shè)我們要搜索2019年11月7日午夜至9 AM之間的關(guān)鍵字恢復(fù)。 我們可以采用以下格式指定開始日期和結(jié)束日期參數(shù):

EXEC xp_readerrorlog 
    0, 
    1, 
    N'Recovery', 
    N'', 
    N'2019-11-07 00:00:01.000', 
    N'2019-11-07 09:00:01.000'

Server error log for a specific duration

在輸出中,您可以看到結(jié)果從開始日期到結(jié)束日期按升序排序。 我們可以指定參數(shù)desc,以便將結(jié)果從結(jié)束日期到開始日期按降序排序:

EXEC xp_readerrorlog 
    0, 
    1, 
    N'Recovery', 
    N'', 
    N'2019-11-07 00:00:01.000', 
    N'2019-11-07 09:00:01.000',
    N'desc'

Server error log for a specific duration in desending order

使用變量讀取特定時間段內(nèi)的多個條件的當(dāng)前SQL Server錯誤日志

我們可以使用以下查詢在變量中指定所需的參數(shù),并在命令xp_readerrorlog中使用這些變量。

它使用以下條件:

搜索關(guān)鍵字Recovery和指定開始和結(jié)束日期

DECLARE @logFileType SMALLINT= 1;
DECLARE @start DATETIME;
DECLARE @end DATETIME;
DECLARE @logno INT= 0;
SET @start = '2019-11-07 00:00:01.000';
SET @end = '2019-11-07 09:00:00.000';
DECLARE @searchString1 NVARCHAR(256)= 'Recovery';
DECLARE @searchString2 NVARCHAR(256)= 'MSDB';
EXEC master.dbo.xp_readerrorlog 
     @logno, 
     @logFileType, 
     @searchString1, 
     @searchString2, 
     @start, 
     @end;

Read current SQL Server error log using variables with xp_readerrorlog command

結(jié)論

本文探討了SQL Server中查看日志的四種方法,重點介紹了xp_readerrorlog命令的使用方法。 它有助于對SQL Server中的問題進(jìn)行故障排除,避免因特定情況而從GUI讀取大型錯誤日志的麻煩。

到此這篇關(guān)于SQL Server使用xp_readerrorlog命令查看錯誤日志的文章就介紹到這了,更多相關(guān)xp_readerrorlog讀取mssql錯誤日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論