Search code, repositories, users, issues, pull requests…
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
In this SQL Server tutorial, we will discuss how to view SQL Server view error logs. Additionally, we will cover the following topics.
- View SQL Server error logs
- View SQL Server error log permissions
- View SQL Server agent error log
- SQL Server error log file location
- How to locate SQL Server error log file location
- How to view SQL Server error log files
- See the SQL Server error log for more information
- SQL Server view error log stored procedure
View SQL Server error log permissions
Before we discuss how to view SQL Server Error Log, a user needs to have some permissions. When we talk about permissions related to error logs, there are 2 options in SQL Server.
First is when we are accessing an online SQL Server instance, and send is when we have an offline SQL Server instance.
In the case of an online SQL Server instance, a user needs to be a member of the securityadmin fixed server role. On the other hand, in the case of an offline SQL Server instance, a user needs to have read permission for these 2 things.
- Root\Microsoft\SqlServer\ComputerManagement10 WMI namespace
- The directory containing the log files, for example, “Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG”
Read How to export data from SQL Server to Excel
In SQL Server, error logs help to verify whether the processes are completed successfully or not. Moreover, these logs also help us to locate any issues in the process.
Now we can easily view or display SQL Server error log by using SQL Server Management Studio or any text editor.
Now, to view the SQL Server Error Logs in SQL Server Management Studio, we can follow the following steps.
- First, run SQL Server Management Studio and connect to the required database instance.
- Next, from the Object Explorer, expand the Database instance.
- After expanding the instance, look for Management Directory and expand it.
- Under Management directory, look for SQL Server Logs directory and then right-click it and select View > SQL Server Log option.
- This will open a Log File Viewer that will display all the list of error logs
Read SQL Server bulk insert from CSV file
View SQL Server Agent error log
In SQL Server, we generally use SQL Server Management Studio to view the error logs related to any component. Moreover, we specifically use Log File Viewer in the SQL Server Management Studio to display the error logs.
Now, here are the few steps that we can use to view SQL Server Agent error logs.
- First, run SQL Server Management Studio and connect to the required database instance.
- Next, from the Object Explorer, first, expand the Database instance and then expand SQL Server Agent directory.
- Under SQL Server Agent, expand the Error Logs directory and all the error will be listed under this diectory.
- Now, to view any SQL Server Agent error log, then right-click the log and click on View Agent Log.
- This action will open a Log File Viewer where all the error logs related to SQL Server were listed. Moreover, we can easily view the log message and its various details.
Read SQL Server function return table
How to view SQL Server error log files
In this section, we will understand how to view SQL Server error log files. Moreover, we will also understand how to locate these error log files.
SQL Server error log file location
As discussed earlier, there are 2 ways in SQL Server to view the SQL Server Error Logs. The first way is to use the Log File Viewer in SQL Server Management Studio. And the second way is to use any text editor.
Now, if we want to view the SQL Server error logs in a text editor then, we need to know the location of these log files. So, in SQL Server, “Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG” is the default location of error log files.
Read View in SQL Server
How to locate SQL Server error log file location
In the previous section, we have seen the default location for the SQL Server log files. Now, in this section, we will discuss how to find the location of any SQL Server Error Log.
In SQL Server, there are many methods to implement this task, let’s, discuss these methods in detail.
Using SQL Server Configuration Manager
Here are some of the steps that we can follow to locate the SQL Server Error Log files using SQL Server Configuration Manager.
- In SQL Server Configuration Manager, under SQL Server Services, right-click SQL Server Service and click on Properties.
- On the Properties page, open the Startup Parameters page and in this multiple paths are given.
- Now, the location for the Error logs is given in the one of the Startup Parameters values.
Using SERVERPROPERTY function
As an alternative, we can also use the SERVERPROPERTY function in SQL Server to get the location of the Error Log. The SERVERPROPERTY in SQL Server is a system function that returns information related to various properties of a SQL Server instance.
Hence, we can easily use this function to get the location of the SQL Server Error Log. Moreover, we can execute the following SQL query for this task.
SELECT SERVERPROPERTY('ErrorLogFileName')
AS 'SQL Server Error log file location'
Now, the above will not only return the file name but also the complete path location of that error log file.
Read Comparison Operators in SQL Server
SQL Server view error log stored procedure
Till now, we have seen how to view the SQL Server Error Log using SQL Server Management Studio. But, in SQL Server, there is also a system stored procedure that returns a list of error logs.
Moreover, we can also use it to view some specific error logs. The name of this stored procedure is SP_READERRORLOG. Let’s understand how to use this store procedure using some examples.
EXECUTE SP_READERRORLOG
First, executing this stored procedure without any parameter will return the list of all error logs. Here is the sample output of the query.
Now, we can also use this store procedure to view a specific error. And for this, we have to use the following syntax.
EXECUTE SP_READERRORLOG <LogNumber>, <LogType>,
<SearchTerm1>, <SearchTerm2>
The parameters for using this stored procedure are as follows.
- LogNumber: it is an integer type parameter used to specify the log number, for example, 0 returns the current log.
- LogType: it is also an integer type parameter used to specify the log type. For example, value 1 represents SQL Server error logs and 2 represents SQL Server Agent error logs.
- SearchTerm1: it is an NVARCHAR type parameter used to specify the text to search from the Text column.
- SearchTerm2: it is also an NVARCHAR type parameter used to specify the second text to search from the Text column.
Now, let’s use this syntax to execute an example in SQL Server. And the query for the example is as follows.
EXECUTE SP_READERRORLOG 0, 1, 'ERROR'
The above query will return the list SQL Server Error Log containing Error text in the Text column. And the result of the query is as follows.
Read How to see view definition in SQL Server
See the SQL Server error log for more information
Now, if you are working with SQL Server then, you often encounter this alert stating “See the SQL Server error log for more information“. This is because error logs are useful to locate any issues in the process.
Moreover, these logs also help to verify whether the processes are completed successfully or not.
Now, in this tutorial, we have already illustrated multiple methods to view and locate any error log in SQL Server.
You may like SQL server tutorials:
- SQL Server view order by
- SQL Server logical operators and example
- Create a table from view in SQL Server
- Loop in SQL Server stored procedure
- Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements
- Msg 567: Unable to retrieve data for this section of the report
- Stored procedure for search functionality in SQL Server
So, in this tutorial, we have discussed how to view SQL Server view error logs. Additionally, we have also covered the following topics.
- View SQL Server error logs
- View SQL Server error log permissions
- View SQL Server agent error log
- SQL Server error log file location
- How to locate SQL Server error log file location
- How to view SQL Server error log files
- See the SQL Server error log for more information
- SQL Server view error log stored procedure
I am Bijay having more than 15 years of experience in the Software Industry. During this time, I have worked on MariaDB and used it in a lot of projects. Most of our readers are from the United States, Canada, United Kingdom, Australia, New Zealand, etc.
Want to learn MariaDB? Check out all the articles and tutorials that I wrote on MariaDB. Also, I am a Microsoft MVP.
Автор: Alexey Knyazev
Сегодня я расскажу про недокументированные расширенные хранимые процедуры (Extended Stored Procedures) для работы с журналом ошибок SQL Server и SQL Server Agent.
На самом деле при просмотре журнала SQL Server Logs через SSMS (SQL Server Management Studio) идёт обращение именно к этим двум основным процедурам (xp_readerrorlog и xp_enumerrorlogs), хоть и не на прямую, а через системные интерфейсные процедуры.
Особое внимание я уделю описанию входных параметрам этих недокументированных процедур.
И так, что же происходит, когда мы просматриваем журнал ошибок через SSMS?
Во первых мы определяем путь к нашей папке с журналами
select ServerProperty(‘ErrorLogFileName’) |
Затем выводим информацию о текущем журнале и о шести предыдущих
exec master.dbo.sp_enumerrorlogs |
в качестве входного параметра можно указать
- 1 — Список журналов SQL Server (значение по умолчанию)
- 2 — Список журналов SQL Server Agent
Если обратиться к тексту этой процедуры, то можно увидеть, что это не более, чем «обёртка» для вызова другой процедуры
create proc sys.sp_enumerrorlogs( @p1 int = 1) as begin IF (not is_srvrolemember(N‘securityadmin’) = 1) begin raiserror(15003,—1,—1, N‘securityadmin’) return (1) end exec sys.xp_enumerrorlogs @p1 end |
По коду процедуры видно, прежде чем обратиться к расширенной хранимой процедуре xp_enumerrorlogs, идёт проверка, что пользователь входит в серверную роль securityadmin.
Теперь если мы нажмём View SQL Server Log
то мы сможем просмотреть все события выбранного журнала:
В этот момент идёт обращение к ещё одной процедуре-обёртке master..sp_readerrorlog.
Ниже текст этой процедуры:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
create proc sys.sp_readerrorlog( @p1 int = 0, @p2 int = NULL, @p3 nvarchar(4000) = NULL, @p4 nvarchar(4000) = NULL) as begin if (not is_srvrolemember(N‘securityadmin’) = 1) begin raiserror(15003,—1,—1, N‘securityadmin’) return (1) end if (@p2 is NULL) exec sys.xp_readerrorlog @p1 else exec sys.xp_readerrorlog @p1,@p2,@p3,@p4 end |
Как вы видите у неё четыре входных параметра:
- @p1 — номер журнала (0-6); 0 — текущий
- @p2 — чей журнал; 1 — SQL Server, 2 — SQL Server Agent
- @p3 — фильтр для поиска
- @p4 — второе условие для поиска
Пример:
exec master.dbo.sp_readerrorlog 0, 1, N‘error’ |
exec master.dbo.sp_readerrorlog 0, 1, N‘error’, N‘34050’ |
Но это ещё не всё. Если обратиться к самой расширенной процедуре xp_readerrorlog, то у неё есть ещё несколько параметров:
- @p5 — условие с какой даты выводить результат
- @p6 — условие до какой даты выводить результат из журнала
- @p7 — тип сортировки (asc/desc)
- @p8 — экземпляр SQL Server (@InstanceName), параметр появился в SQL Server 2012
Пример:
exec master.dbo.xp_readerrorlog 0, 1, null, null, ‘20130418’, ‘20130419’ |
exec master.dbo.xp_readerrorlog 0, 1, null, null, ‘20130418’, ‘20130419’, N‘desc’ |
Если необходимо работать с журналом пользователю с минимальными привилегиями, то достаточно дать явные права на эти расширенные процедуры, но обращаться к ним придётся через запросы, т.к. SSMS использует интерфейсные процедуры, которые проверяют входимость пользователя в группу securityadmin.
use master go grant execute on xp_readerrorlog to [Ваш юзер] go |
Запись опубликована в рубрике В помощь администратору с метками error log. Добавьте в закладки постоянную ссылку.
April 13, 2019
MSSQL, Windows
SQL Server Logs and Operating System Logs(Event Logs) are logs that SQL Server Database Administrators checks on a daily basis, or use to find the cause of the error when they encounter an error. In this article, we will learn how to check these logs.
Through SSMS, you can access both logs from the View tab by right-clicking SQL Server Logs under Management as follows.
You can also access the operating system logs from the Event Viewer on Windows. To access the event viewer, go to Run->Search and write “Event Viewer”.
When we open the Event Viewer, a screen appears as below. You can find logs from the tabs under Windows Logs.
If you want to filter SQL Server Error Log, I suggest you to read the below article.
“How To Filter SQL Server Error Log(Like or Not Like)”
Пересказ статьи Rajendra Gupta. How to manage SQL Server logs effectively
В статье дается обзор журналов SQL Server для управления и устранения неполадок на сервере.
Введение
Журналы являются лучшим средством администратора баз данных при решении любых проблем. Эти проблемы могут быть связаны с конфигурацией сервера, запуском, восстановлением, производительностью, флагами трассировки, тупиковыми ситуациями, вводом-выводом или задержками. Предположим, например, что ваш экземпляр SQL Server перезапускается по непонятным причинам, и после перезапуска службы SQL работают, однако ваше приложение не имеет доступа к базе данных. Таким образом, для исследования проблемы вам нужно заглянуть в последний журнал SQL Server, чтобы проконтролировать процесс восстановления базы данных и узнать оценку времени его завершения.
Администратор базы данных может также сконфигурировать SQL Server для выполнения дополнительных записей в журналы ошибок. Например, мы можем включить флаг трассировки для захвата информации о тупиковых ситуациях. DBA должен регулярно просматривать эти журналы в поисках потенциальных проблем. Вы можете обнаружить в журналах такую информацию, как сбой резервного копирования, ошибки входа, ошибки ввода-вывода. Эти журналы ошибок являются отличным средством для обнаружения существующих и потенциальных проблем в экземплярах SQL Server.
Журналы SQL Server известны как SQL Server Error logs. Журналы ошибок содержат информационные сообщения, предупреждения и сообщения о критичных ошибках. Вы можете просматривать некоторые из этих журналов также в просмотрщике событий Windows. Однако рекомендуется использовать журналы SQL Server для получения подробной информации.
Журналы SQL Server и их местонахождение
Если вы подключены к экземпляру SQL Server в SSMS, перейдите к Management -> SQL Server Logs. Как показано ниже, имеется текущий журнал и шесть архивных журналов (Archive#1 — Archive #6).
Метод 1: Использование расширенной процедуры xp_readerrorlog
Текущие журналы являются самыми последними файлами журнала ошибок, и вы можете использовать их для просмотра недавней деятельности с момента запуска SQL Server или ручного перезапуска файла журнала. Журнал ошибок SQL Server является текстовым файлом, хранящимся в каталоге журналов экземпляра SQL Server. Вы можете использовать расширенную процедуру xp_readerrorlog для нахождения текущего местоположения журнала ошибок.
USE master
GO
xp_readerrorlog 0, 1, N'Logging SQL Server messages', NULL, NULL,NULL
GO
Этот запрос имеет следующие параметры:
- Файл журнала ошибок: значение 0 для текущего, 1 для Archive#1, 2 для Archive #2.
- Тип файла журнала: значение 0 для журнала ошибок SQL Server, 1 для агента SQL Server.
- Строка поиска 1
- Строка поиска 2
- Время от
- Время до
- Сортировка результатов — по возрастанию (N’ASC) или по убыванию (N’Desc)
Для моего демонстрационного экземпляра файл журнала ошибок находится в папке C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Log\ERRORLOG.
Метод 2: Использование функции SERVERPROPERTY()
Мы можем использовать в запросе функцию SERVERPROPERTY, и также определить местонахождение SQL Server ERRORLOG.
SELECT SERVERPROPERTY('ErrorLogFileName') AS 'Error log location'
Метод 3: использование менеджера конфигурации SQL Server
Откройте SQL Server Configuration Manager и посмотрите параметры запуска. Местоположение файлов журнала указывается с помощью переключателя -e.
Вы можете развернуть каталог журналов и просмотреть текущий или архивные файлы журнала. Эти журналы ошибок можно открыть в текстовом редакторе, таком как Notepad или Visual Studio Code.
Конфигурирование числа файлов журнала SQL Server и их размеров
По умолчанию SQL Server поддерживает текущий и 6 архивных файлов журнала. Чтобы уточнить значение, выполните щелчок правой кнопкой на папке SQL Server Logs в SSMS и выберите Configure.
SQL Server записывает всю информацию в текущий файл журнала, независимо от размера файла журнала. В загруженной системе или в экземпляре с большим количеством ошибок вам может быть сложно просмотреть файл журнала в SSMS. SQL Server создает новый файл журнала и архивирует текущий файл в следующих случях.
- При перезапуске службы SQL.
- При перезагрузке журнала ошибок вручную.
Однако если вы часто перезапускаете серверы по неизвестным причинам, то можете потерять все исторические данные в архивных журналах, поскольку их поддерживается только шесть. Поскольку ошибки содержат ценную информацию, которая может помочь в решении проблем, вы можете не захотеть потерять эти важные данные. Тогда, возможно, вы захотите сохранять файлы журнала производственной системы в течение недели или даже месяца.
SQL Server позволяет сконфигурировать от 6 до 99 файлов журнала ошибок. Вы не можете указать значение меньше шести, поскольку в любом случае будет поддерживаться шесть архивных журналов ошибок.
Для изменения значения по умолчанию числа файлов журнала ошибок поставьте галочку в поле с названием “Limit the number of error log files before they are recycled”. Например, следующий скриншот показывает максимальное число файлов журнала ошибок, равное 30.
Это эквивалентно выполнению скрипта T-SQL, который использует расширенную хранимую процедуру и обновляет значение регистра.
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', REG_DWORD, 30
GO
Замечание. Следует перезапустить службу SQL, чтобы изменения вступили в силу.
Как утверждалось ранее, по умолчанию размер журнала ошибок не ограничен. Например, если вы не запускаете SQL Server в течение длительного периода и вручную не перегружаете файлы журнала, этот файл вырастет до громадных размеров. Поэтому в конфигурации журнала ошибок показано значение 0, соответствующее неограниченному размеру журнала.
Вы можете задать размер в Кб для ограничения размера журнала ошибок в соответствии с вашими требованиями. Например, здесь мы ограничиваем размер файла журнала в 1Гб.
Эквивалентный скрипт T-SQL обновляет ErrorLogSizeInKb в регистре SQL Server.
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'ErrorLogSizeInKb', REG_DWORD, 1048576
GO
Перезагрузка журналов ошибок вручную
SQL Server позволяет вручную перегружать журналы ошибок для эффективного управления ими. Например, предположим, что вы увеличили число файлов журнала ошибок до 30. Тогда мы можем создать задание для агента SQL Server, который перегружает журналы ошибок в полночь. Тем самым мы имеем файл журнала ошибок на каждый день, если SQL Server не будет перезапущен в этом промежутке. Для перезагрузки вручную выполните системную хранимую процедуру sp_cycle_errorlog. Эту процедуру может выполнить пользователь с фиксированной серверной ролью sysadmin.
EXEC sp_cycle_errorlog
GO
Файл журнала SQL Server Agent
Агент SQL Server также имеет отдельный журнал ошибок, подобный журналам SQL Server. Вы можете обнаружить его в папке SQL Server Agent – > Error logs.
Щелкните правой кнопкой на папке Error log и выберите команду Configure. Это даст местоположение журнала ошибок агента и уровень журнала агента.
Файл журнала агента имеет расширение *.OUT и хранится в папке log при конфигурации по умолчанию. Например, в моей системе файл журнала находится здесь: C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Log\SQLAGENT.OUT.
По умолчанию в файл журнала записываются ошибки и предупреждения; однако мы можем включить информационные сообщения:
- Предупреждения: Эти сообщения предоставляют информацию о потенциальных проблемах. Например, “Job X was deleted while it was running” (задание Х было удалено во время выполнения).
- Сообщение об ошибках: оно дает информацию, которая требует немедленного вмешательства администратора баз данных, например, невозможность почтового сеанса.
Чтобы добавить информационное сообщение, поставьте галочку в поле Information.
SQL Server использует до 9 файлов журнала агента SQL Server. Имя текущего файла SQLAGENT.OUT. Файл с расширением .1 указывает на первый архивный журнал ошибок агента. Аналогично расширение .9 указывает на 9-й (самый старый) архив журнала ошибок.
Файлы журнала агента SQL Server перегружаются всякий раз, когда перезапускается SQL Server Agent. Для того, чтобы сделать это вручную, выполните щелчок правой кнопкой на папке Error Logs folder и выберите Recycle.
Или используйте хранимую процедуру sp_cycle_agent_errorlog для перезагрузки файлов журнала агента SQL Server вручную.
USE msdb ;
GO
EXEC dbo.sp_cycle_agent_errorlog ;
GO
Хранимая процедура архивирует текущий журнал ошибок агента, используя следующий процесс:
- Создается новый текущий журнал ошибок агента.
- Текущий журнал ошибок SQLAgent.out преобразуется в SQLAgent.1.
- SQLAgent.1 преобразуется в SQLAgent.2
Заключение
Файл журнала ошибок SQL Server содержит информацию, предупреждения и критические сообщения экземпляра. Это полезно для решения проблем, аудита входа (успешно, отказ). Администратор базы данных может сконфигурировать требуемое число архивных журналов ошибок и каталогов для хранения этих файлов.
Вы должны регулярно просматривать записи в журнале в качестве подготовки ежедневных или еженедельных отчетов о состоянии сервера.