sp_readerrorlog (Transact-SQL)
Область применения: SQL Server
Позволяет считывать содержимое SQL Server или агент SQL Server файл журнала ошибок и фильтровать по ключевым словам.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_readerrorlog
[ [ @p1 = ] p1 ]
[ , [ @p2 = ] p2 ]
[ , [ @p3 = ] N'p3' ]
[ , [ @p4 = ] N'p4' ]
[ ; ]
Аргументы
[ = ] @p1 p1
Целочисленное значение журнала, которое требуется просмотреть. @p1 имеет значение int с значением по умолчанию0
. Текущий журнал ошибок имеет значение 0
. Предыдущий — 1
(ERRORLOG.1
), один до предыдущего — 2 (ERRORLOG.2
) и т. д.
[ = ] @p2 p2
Целочисленное значение для продукта, журнал которого требуется просмотреть. @p2 имеет значение int с значением по умолчаниюNULL
. Используется 1
для SQL Server или 2
агент SQL Server. Если значение не указано, используется продукт SQL Server.
[ @p3 = ] N'p3'
Строковое значение строки, которую необходимо фильтровать при просмотре журнала ошибок. @p3 — nvarchar(4000) с значением по умолчаниюNULL
.
[ @p4 = ] N'p4'
Строковое значение для дополнительной строки, на которую необходимо отфильтровать, чтобы дополнительно уточнить поиск при просмотре журнала ошибок. @p4 — nvarchar(4000) с значением по умолчаниюNULL
. Этот параметр предоставляет дополнительный фильтр для первого @p3 поиска строк.
Значения кода возврата
Нет.
Результирующий набор
Отображает содержимое запрошенного журнала ошибок. Если используются строки фильтра, отображаются только строки, соответствующие этим строкам.
Замечания
При каждом запуске SQL Server текущий журнал ошибок переименовывается ERRORLOG.1
в ; ERRORLOG.1
становится, ERRORLOG.2
становится ERRORLOG.2
ERRORLOG.3
и т. д. sp_readerrorlog
позволяет считывать любой из этих файлов журнала ошибок до тех пор, пока файлы существуют.
Разрешения
ДЛЯ SQL Server 2019 (15.x) и более ранних версий требуется разрешение VIEW SERVER STATE на сервере.
ДЛЯ SQL Server 2022 (16.x) и более поздних версий требуется разрешение VIEW ANY ERROR LOG на сервере.
Примеры
В следующем примере выполняется цикл журнала ошибок SQL Server.
А. Чтение текущего журнала ошибок SQL Server
EXECUTE sp_readerrorlog;
B. Отображение предыдущего журнала ошибок агент SQL Server
EXECUTE sp_readerrorlog 1, 2;
В. Поиск сообщений журнала, указывающих, что база данных запускается
EXECUTE sp_readerrorlog 0, 1, 'database', 'start';