亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SQL?Server使用xp_readerrorlog命令查看錯(cuò)誤日志

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

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

介紹

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

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

審核登錄–成功或失敗

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

記錄的錯(cuò)誤消息

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

SSMS工具查看日志

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

SQL Server error logs

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

View error log in SSMS

T-SQL方法查看日志

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

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

Error log location

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

View error log in the log folder

使用GUI訪問錯(cuò)誤日志

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

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

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

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

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

查詢以列出錯(cuò)誤日志及其大小

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

EXEC sys.sp_enumerrorlogs;

Query to list error log and their sizes

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

使用xp_readerrorlog讀取SQL Server日志文件

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

xp_ReadErrorLog命令的語法

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

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

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

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

StartDate-開始時(shí)間‌:指定讀取日志的開始時(shí)間‌

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

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

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

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

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

EXEC xp_ReadErrorLog

Read Current error log

讀取SQL Server錯(cuò)誤日志

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

EXEC xp_ReadErrorLog 0,1

Read SQL Server error log

讀取SQL Server代理日志

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

EXEC xp_ReadErrorLog 0,2

Read SQL Server agent log

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

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

EXEC xp_ReadErrorLog 0, 1, N'Warning'

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

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

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

Error message

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

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

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

search for multiple conditions

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

假設(shè)我們要搜索SQL Server錯(cuò)誤日志特定的持續(xù)時(shí)間。 假設(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

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

我們可以使用以下查詢在變量中指定所需的參數(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中查看日志的四種方法,重點(diǎn)介紹了xp_readerrorlog命令的使用方法。 它有助于對SQL Server中的問題進(jìn)行故障排除,避免因特定情況而從GUI讀取大型錯(cuò)誤日志的麻煩。

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

相關(guān)文章

  • 一文搞懂SQL注入攻擊

    一文搞懂SQL注入攻擊

    SQL注入(SQL Injection)攻擊是其中最普遍的安全隱患之一,因此,如何防范SQL注入攻擊成為了網(wǎng)絡(luò)安全領(lǐng)域的一個(gè)重要議題。本文通過代碼示例詳細(xì)介紹了SQL注入攻擊,需要的朋友可以參考一下
    2023-04-04
  • sql函數(shù) REGEXP_REPLACE的使用方法小結(jié)

    sql函數(shù) REGEXP_REPLACE的使用方法小結(jié)

    假設(shè)您的數(shù)據(jù)在正文中有不必要的空格,您希望用單個(gè)空格來替換它們,利用REPLACE函數(shù) ,這篇文章給大家介紹sql函數(shù) REGEXP_REPLACE的使用方法小結(jié),感興趣的朋友一起看看吧
    2023-11-11
  • SQL Server 在分頁獲取數(shù)據(jù)的同時(shí)獲取到總記錄數(shù)

    SQL Server 在分頁獲取數(shù)據(jù)的同時(shí)獲取到總記錄數(shù)

    本文通過兩種方法給大家介紹SQL Server 在分頁獲取數(shù)據(jù)的同時(shí)獲取到總記錄數(shù),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • 更改SQL Server更改當(dāng)前數(shù)據(jù)庫的所有者:sp_changedbowner

    更改SQL Server更改當(dāng)前數(shù)據(jù)庫的所有者:sp_changedbowner

    更改SQL Server更改當(dāng)前數(shù)據(jù)庫的所有者:sp_changedbowner...
    2007-02-02
  • SQL Server數(shù)據(jù)庫開發(fā)的二十一條法則

    SQL Server數(shù)據(jù)庫開發(fā)的二十一條法則

    如果你正在負(fù)責(zé)一個(gè)基于SQL Server的項(xiàng)目,或者你剛剛接觸SQL Server,你都有可能要面臨一些數(shù)據(jù)庫性能的問題,這篇文章會(huì)為你提供一些有用的指導(dǎo)(其中大多數(shù)也可以用于其它的DBMS)。
    2010-06-06
  • SQL Substring提取部分字符串

    SQL Substring提取部分字符串

    SQL 中的 substring 函數(shù)是用來抓出一個(gè)欄位資料中的其中一部分。這個(gè)函數(shù)的名稱在不同的資料庫中不完全一樣
    2009-11-11
  • SQLSERVER查看數(shù)據(jù)庫日志方法與語句示例代碼(已親測)

    SQLSERVER查看數(shù)據(jù)庫日志方法與語句示例代碼(已親測)

    在數(shù)據(jù)庫使用很久后日志文件會(huì)累計(jì)的越來越大,如果硬盤空間不足可能會(huì)導(dǎo)致宕機(jī),下面這篇文章主要給大家介紹了關(guān)于SQLSERVER查看數(shù)據(jù)庫日志方法與語句的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 什么是數(shù)據(jù)庫 SQL Execution Plan(簡單介紹)

    什么是數(shù)據(jù)庫 SQL Execution Plan(簡單介紹)

    SQL Execution PlanSQL 執(zhí)行計(jì)劃是數(shù)據(jù)庫管理系統(tǒng)在執(zhí)行SQL語句時(shí),對如何高效檢索數(shù)據(jù)進(jìn)行的一系列優(yōu)化步驟的描述,這篇文章主要介紹了什么是數(shù)據(jù)庫 SQL Execution Plan,需要的朋友可以參考下
    2024-03-03
  • SQL Server數(shù)據(jù)庫按百分比查詢出表中的記錄數(shù)

    SQL Server數(shù)據(jù)庫按百分比查詢出表中的記錄數(shù)

    這篇文章主要介紹了SQL Server數(shù)據(jù)庫在一個(gè)表中按百分比查詢出記錄條數(shù)的方法及代碼示例,需要的朋友可以參考下
    2015-08-08
  • SQL Server中查詢最近一條記錄的三種方法

    SQL Server中查詢最近一條記錄的三種方法

    在使用SQL Server數(shù)據(jù)庫時(shí),有時(shí)我們需要查詢表中的最近一條記錄,這可能涉及到查找表中的最新數(shù)據(jù)、最新訂單、或者按時(shí)間戳獲取最近的更新等情況,本文將介紹幾種常用的查詢方法來實(shí)現(xiàn)這個(gè)目標(biāo),需要的朋友可以參考下
    2024-09-09

最新評論