Меню

Sql server 2008 журнал ошибок

Ingenious Guide to View Log File of SQL Server

Microsoft SQL Server application is one of the biggest waves in the relational database management system and handles huge database in a well-structured manner.

But, Digital Crimes Can Takes Place In SQL Server Too!!!!

Nowadays, Ex-employees or hackers intentionally modifies the values of databases in order to damage the organization assets. And it becomes difficult to analyze or examine who is the culprit manually. As a result, the Organizations run into  big trouble.

Hold On!! There Is A Good News

In SQL Server, there is a transaction Log file that keep records of all transactions & modifications in database executed on a database in a Microsoft SQL Server. By reading the Log file, one can easily check who deleted data from table in SQL Server database. Plus, it is used by forensic investigator to examine SQL Server Transaction Log and view & check every log detail in a detailed manner. In short, with SQL Log file, it becomes easy to find out which query performed on which table at what time.

Here, we are going to answer how to view log file of SQL Server by using various workarounds. Just go through this article once and understand how to open or read transaction log file in Microsoft SQL Server 2017 / 2016 / 2014 / 2012 / 2008 / 2008 R2 / 2005.

Moreover, if user want to restore the deleted query from a log file, then they can go through this blog – How to Recover Data from Log file in SQL Server – A Complete Guide .

Methods Use For How to View Transaction Log File of SQL Server

In the following section, you will understand how to open, check and read transaction file to retrieve information about the data which had been altered. So, let’s get started!!

#Approach 1: Use Log File Viewer in SQL Server Management Studio

Basically, this method exclusively used to open and view the information about following logs in SSMS:

  • Audit Collection
  • Database Mail
  • Job History
  • Data Collection
  • SQL Server
  • SQL Server Agent
  • Windows Events

Its prime function of Log File Viewer is to provide the report of activities taken place in SQL Server Management Studio. In fact, one can open the Log File Viewer wizard in different ways on the basis of  information that you want to check. Now, go through the instructions to view log details in SQL Server.

How to View Log File of SQL Server Via. Log File Viewer

Step 1: Open Microsoft SQL Server Management Studio application. Here, we are using SQL Server 2014 environment for reading SQL Server Error Log.

Open SSMS

Step 2: Connect to Server windows pops-up. Here, you need to select the Server Name and Type of Authentication. Afterward, click on Connect.

Establish Connection

Step 3: In Object Explorer, go to Management as shown in the screenshot to examine or read log file of SQL Server 2014.

Choose Management

Step 4: Now, move to SQL Server Logs option.

read transaction log file of sql server 2008 r2

Step 5: Now, Right-click on SQL Server Logs and select View >> SQL Server Log sequentially.

Step 6: All the Log summary displayed on Log File Viewer window. Here, you can select other logs such as SQL Server Agent , Database Mail from the left panel to check its information too.

Select View to read error log file

#Approach 2: View Log File of SQL Server Via. Undocumented fn_dblog()

Originally, the function fn_dblog() is used to extract data from Transaction file of SQL Server for forensic purposes to analyze every log event performed on the table. So, let’s check out how to read transaction log file in Microsoft SQL Server 2017 / 2016 / 2014 / 2012 / 2008 / 2008 R2 / 2005 editions.

Steps to View Log File in SQL Server Using Fn_dblog()

Step 1: We have a table named as ‘Employee’. So, first view the values of the table using the following T-SQL.
Select * from employee.

View Table Data

Step 2: Afterward, alter the table data using update command. For this, execute the query;
Update employee set department ='IT' where emp_name = 'jeevan'

Alter the table

Step 3: Again, view the table values using the Select Query. Now, you can see a modified table.

Updated Table

Step 4: Run the fn_dblog function according to the need. Here, we execute the query to check out the time when update operation was executed.

Select [Begin Time], [Transaction Name] from fn_dblog(null , null) where [Transaction Name] = ‘Update’

read transaction log file sql server

Step 5: In a situation, when you want to analyze all the logs such as Delete etc. , then run the following T-SQL query.

Select [Begin Time], [Transaction Name] from fn_dblog(null, null)

However, there are some consequences attached with fn_dblog(). Actually, this function only provide the time of the query when it was committed instead of which data entry gets affected. Due to which, it becomes cumbersome to find out which table data get altered. This problem is overcome with the third technique where user can view the log file of SQL Server without any hassle. Apart from this, both the described technique can run in SQL Server Management Studio only. You cannot read a Transaction Log File in offline environment with Log File Viewer and Fn_dblog().

#Approach 3: Use  Smart Solution to Analyze Transaction File Easily

To get exact information from SQL Log File, take the help of SysTools SQL Log Reader Software. With the help of this software, user can scan and analyze T-log file in human readable format. However, the tool works in Online as well as Offline environment. User can get the information like Transaction , Login Name , Time , Table Name , Query . It is a best software solution that answers the question – how to read SQL Server Transaction Log file.

Download Free SQL Log Analyzer

Related : How to Fix Log File Corruption – Step-By-Step Guide

In fact, after viewing the log file of SQL Server, user can export the query in Live SQL Server database environment , SQL Compatible Scripts , and in CSV format. Moreover , the software can read Transaction log file of every SQL Server edition.

That’s all about on how to View Log file of SQL Server. Now, go through the methods and opt the best that suitable for you and examine SQL Server Transaction Log file.

Frequently Asked Questions:-

How to open SQL Server database Transaction Log file (.ldf) in readable format?

Try SQL Log Analyzer tool to easily scan and read the Transaction .ldf file records.

How to view SQL Log file in SSMS?

Use Fn_dblog() function to read the details of transaction in SQL Server.

Can I read log file of SQL Server 2008?

With the help of SQL Log Viewer, one can read .ldf file and view Transaction, Transaction time, Table name and Query of Microsoft SQL Server 2017, 2016, 2014, 2012, 2008 and SQL Server 2005

Is it possible to examine SQL Transaction Log file?

Yes, with the help of mentioned workaround, one can easily examine SQL LDF file.

Пересказ статьи 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

Этот запрос имеет следующие параметры:

  1. Файл журнала ошибок: значение 0 для текущего, 1 для Archive#1, 2 для Archive #2.
  2. Тип файла журнала: значение 0 для журнала ошибок SQL Server, 1 для агента SQL Server.
  3. Строка поиска 1
  4. Строка поиска 2
  5. Время от
  6. Время до
  7. Сортировка результатов — по возрастанию (N’ASC) или по убыванию (N’Desc)

Для моего демонстрационного экземпляра файл журнала ошибок находится в папке C:Program FilesMicrosoft SQL ServerMSSQL14.MSSQLSERVERMSSQLLogERRORLOG.

Метод 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 создает новый файл журнала и архивирует текущий файл в следующих случях.

  1. При перезапуске службы SQL.
  2. При перезагрузке журнала ошибок вручную.

Однако если вы часто перезапускаете серверы по неизвестным причинам, то можете потерять все исторические данные в архивных журналах, поскольку их поддерживается только шесть. Поскольку ошибки содержат ценную информацию, которая может помочь в решении проблем, вы можете не захотеть потерять эти важные данные. Тогда, возможно, вы захотите сохранять файлы журнала производственной системы в течение недели или даже месяца.

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'SoftwareMicrosoftMSSQLServerMSSQLServer', 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'SoftwareMicrosoftMSSQLServerMSSQLServer', 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 FilesMicrosoft SQL ServerMSSQL14.MSSQLSERVERMSSQLLogSQLAGENT.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 содержит информацию, предупреждения и критические сообщения экземпляра. Это полезно для решения проблем, аудита входа (успешно, отказ). Администратор базы данных может сконфигурировать требуемое число архивных журналов ошибок и каталогов для хранения этих файлов.
Вы должны регулярно просматривать записи в журнале в качестве подготовки ежедневных или еженедельных отчетов о состоянии сервера.

Для отслеживания
событий, связанных с работой сервера
SQL Server 2008,
можно использовать журналы сервера:
журнал событий SQL
Server 2008, журнал событий
SQL Server Agent,
журнал событий ОС Windows и
журнал событий приложений Windows.

Просмотр журналов:

В SQL
Server Management
Studio из контейнера Management
SQL
Server Logs
выбрать нужный журнал в списке журналов
и из контекстного меню выбрать View
SQL Server
Log. Откроется окно
просмотрщика журналов (см. рис. 8.4).

Рис. 8.4.
Окно просмотрщика
журналов SQL Server Management
Studio

При помощи просмотрщика журналов
можно:

  1. просматривать не только
    журналы SQL Server,
    но и журналы SQL Server
    Agent, Windows и
    Database Mail;

  2. экспортировать данные из
    журналов при помощи кнопки Export
    (Экспортировать), в том числе в очень
    удобный для загрузки в базу данных
    формат CSV;

  3. настраивать фильтрацию и
    производить поиск нужной информации.

Для более детального
протоколирования событий, происходящих
на сервере, можно воспользоваться
параметром C2
Audit Tracing
. Его можно установить
на вкладке Security свойств
сервера.

8.3. Мониторинг производительности sql Server 2008

8.3.1. Терминология мониторинга производительности

  • Эталонный график
    производительности (Performance baseline)

    это набор самых важных показателей
    производительности, который был собран
    при приеме задачи в эксплуатацию, когда
    нагрузка на сервер и размер базы данных
    еще минимальны.

  • Измерения
    производительности при рабочей нагрузке
    (workload performance measurements)
    — сбор показателей
    счетчиков производительности на
    регулярной основе. Главная задача —
    определить тенденции в развитии
    производительности и понять, когда у
    нас могут возникнуть проблемы в работе
    пользователей.

  • Узкие места
    (bottlenecks) — то есть те ресурсы,
    недостаток которых тормозит работу
    всей системы. Это может быть физический
    компонент сервера, система индексов в
    базе данных SQL Server
    и т.п. После выявления узких мест
    администратор должен принять меры к
    их устранению.

  • Время отклика
    системы на запросы пользователей

    (response time) — субъективный показатель
    работы сервера, зависящий от специфики
    работы пользователей. Главная задача
    администратора при оптимизации
    производительности — сделать
    значение этого показателя приемлемым
    для пользователей.

  • Пропускная
    способность (throughput)
     — объективный
    показатель работы сервера, например,
    сколько транзакций в секунду он может
    обработать.

  • Нагрузочное
    тестирование
    (stress
    testing) — искусственная
    имитация нагрузки со стороны пользователей.

8.3.2. Средства для мониторинга и анализа производительности

  • Системный монитор
    (
    System Monitor)
    — это средство предназначено для работы
    со счетчиками производительности —
    как для операционной системы, так и для
    SQL Server;

  • Утилита командной строки
    logman
    — позволяет выполнять протоколирование
    показаний счетчиков в файлы на диске
    или источники данных ODBC
    точно так же, как и графическая версия
    Системного монитора;

  • Утилита командной строки
    relog

    — позволяет производить
    конвертацию файлов с собранными
    показаниями счетчиков из одного формата
    Системного монитора в другой (например,
    из двоичного формата *.blg
    в текстовый *.csv);

  • Утилита командной строки
    typeperf

    — предоставляет возможность
    для просмотра показаний счетчиков
    Системного монитора в командной строке;

  • Профилировщик
    (SQL Server Profiler)
    — позволяет найти и
    запротоколировать команды, которые
    передаются на сервер приложением, а
    также найти запросы, на выполнение
    которых требуется много времени;

  • Network Monitor
    позволяет выявить проблемы с сетью;

  • Database Tuning Advisor
    – исползуется для анализа и оптимизации
    системы индексов;

  • SQL Server Management
    Studio
    – используется для оптимизации
    запросов к SQL Server.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Работа с логом ошибок SQL ServerАвтор: 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. Добавьте в закладки постоянную ссылку.

Что такое ERRORLOG?! Некоторые специалисты, которые
сопровождают MS SQL Server первый раз слышат о нем или не подозревают, что он есть.

ERRORLOG – это
журнал MS SQL Server,
физически это текстовый файл. По умолчанию он находится в каталоге установке SQL Server в
папке Log, к примеру, в
«C:Program FilesMicrosoft SQL Server
MSSQL13.SQL2016 MSSQLLog». В нем регистрируются как информационные сообщения,
ошибки различной серьезности, пользовательские ошибки информация по dump-ам sql server и другая полезная
инфомарция, хотя бывает и не очень полезная.

Журнал создается каждый раз при
запуске службы SQL Server,
количество их регулируется настройками в SQL Server, желательно указывать 10 или более на важных системах, т.к при установке
обновлений, проблемах при нескольких попытках старта SQL Server, они перезаписываются
и в итоге вы можете потерять важную информацию при диагностике сервера.

Даже при установке обновлений SQL Server, происходит несколько рестартов
служб, что так же создает новый журнал.

В данный журнал записывается
информация как об ошибках работы сервера, информация о sql дампах,
безопасности, так и информация информационного характера.

Журналы можно просмотреть несколькими способами:

1.    

   Через SQL Server Management Studio, вкладка Management -> SQL Server Logs, дважды щелкнув на нужный файл.

2.      

Открыть текстовым любым текстовым редактором из
каталог Log.

Текущий всегда будет без
расширения и с именем ERRORLOG,
далее по возрастанию от 1 и выше, 1 это предпоследний.

3.      

Использовать хранимую процедуру.

exec master..xp_ReadErrorLog

Когда журнал большой, лучше его отфильтровать, к примеру
таким способом, меню Filter в Log File Viewer:

Или через T-SQL:

create table #t

( logdate datetime,

 processinfo char(15),

 text nvarchar(max)

)

insert into #t

exec xp_ReadErrorLog

select * from #t where text like‘%Error%’

drop table #t

Если сервер давно не
перезагружали или сервер имел много событий, файл журнала событий может вырасти
в размере и открытие его будет проблематичным. В данном случае, активный журнал
можно пересоздать командой:

EXEC sp_cycle_errorlog

После этого создастся новый
текущий журнал, а в файле отразится информация вида:

Attempting to cycle error log. This
is an informational message only; no user action is required.

The error log has been
reinitialized. See the previous log for older entries.

Чтобы держать файлы в порядке и
читабельными, желательно указанную команду прописать в sql задание на
раз в месяц.

Итак, что говорит нам SQL Server Log?

Возьмем, для примера, файл с
одного с рабочих серверов:

2017-06-18
12:26:50.31 Server      Microsoft SQL
Server 2016 (SP1-CU3) (KB4019916) — 13.0.4435.0 (X64)

                Apr 27 2017 17:36:12

                Copyright
(c) Microsoft Corporation

                Enterprise Edition: Core-based
Licensing (64-bit) on Windows Server 2016 Datacenter 6.3 <X64> (Build
14393: )

Сразу можно определить версию SQL Server, установленные
обновления и ОС, время старта SQL Server.
Довольно часто, обновления не ставят на сервер, но имеют проблемы. Как-то обратился клиент,
у него имелось куча проблем, попросил данный журнал SQL server, а у них версия SQL server 2008R2 RTM, при том что за окном уже SQL версии 2017 на подходе. Первое
рекомендация и необходимость дальнейшей работы – установить обновления
последния.

2017-06-18
12:26:50.32 Server      UTC adjustment:
3:00

Локальное время на сервере.

2017-06-18
12:26:50.32 Server      (c) Microsoft
Corporation.

2017-06-18
12:26:50.32 Server      All rights
reserved.

2017-06-18
12:26:50.32 Server      Server process ID
is 8112.

2017-06-18
12:26:50.32 Server      System
Manufacturer: ‘FUJITSU’, System Model: ‘PRIMERGY RX4770 M3’.

Вендор и модель сервера, тоже
важно. При виртуализации это здесь так же видно.

2017-06-18
12:26:50.32 Server      Authentication
mode is MIXED.

Вид аутефикации на сервере — здесь
смешанная.

2017-06-18
12:26:50.32 Server      Logging SQL
Server messages in file ‘C:SQLMSSQL13.MSSQLSERVERMSSQLLogERRORLOG’.

Каталог расположения этого самого журнала.

2017-06-18
12:26:50.32 Server      The service
account is ‘ADSQL_USER’. This is an informational message; no user action is
required.

Учетная запись, под которой
работает служба SQL Server. Сразу и легко определяес под кем работает служба,
далее можно у админов ОС запросить проверку прав в ОС или что-то подобное.

2017-06-18
12:26:50.32 Server      Registry startup
parameters:

                 -d
C:SQLMSSQL13.MSSQLSERVERMSSQLDATAmaster.mdf

                 -e
C:SQLMSSQL13.MSSQLSERVERMSSQLLogERRORLOG

                 -l
C:SQLMSSQL13.MSSQLSERVERMSSQLDATAmastlog.ldf

                 -T 2371

                 -T 4135

                 -T 2546

Параметры старта SQL server,
здесь видим флаги запуска службы SQL server, располжения системных баз данных.

2017-06-18
12:26:50.32 Server      Command Line
Startup Parameters:

                 -s «MSSQLSERVER»

2017-06-18
12:26:52.86 Server      SQL Server
detected 4 sockets with 24 cores per socket and 48 logical processors per
socket, 192 total logical processors; using 192 logical processors based on SQL
Server licensing. This is an informational message; no user action is required.

2017-06-18
12:26:52.86 Server      SQL Server is
starting at normal priority base (=7). This is an informational message only.
No user action is required.

Видим, сколько процессоров на
сервере и включен ли HT.

2017-06-18
12:26:52.86 Server      Detected 3193980
MB of RAM. This is an informational message; no user action is required.

Память на сервере, здесь 3 Тб.

2017-06-18
12:26:52.86 Server      Using locked
pages in the memory manager.

2017-06-18
12:26:52.86 Server      Large Page
Allocated: 32MB

2017-06-18
12:26:52.87 Server      Large Page
Allocated: 32MB

2017-06-18
12:26:52.87 Server      Large Page
Allocated: 32MB

2017-06-18
12:26:52.87 Server      Large Page
Allocated: 32MB

Видим, что учетной записи SQL
server предоставлены права блокировать память на сервере, а также выделение
больших страниц в памяти.

2017-06-18
12:26:57.71 Server      Machine supports
memory error recovery. SQL memory protection is enabled to recover from memory
corruption.

2017-06-18
12:27:00.82 Server      Default
collation: Cyrillic_General_CI_AS (us_english 1033)

2017-06-18
12:27:00.82 Server      Automatic
soft-NUMA was enabled because SQL Server has detected hardware NUMA nodes with
greater than 8 physical cores.

Включается soft-Numa в SQL 2016.

2017-06-18
12:27:00.90 Server      Buffer pool
extension is already disabled. No action is necessary.

Buffer pool extension- выключен. Далее идет определения DAC, soft-numa, параметры блокировок:

2017-06-18
12:27:01.04 Server     
InitializeExternalUserGroupSid failed. Implied authentication will be
disabled.

2017-06-18
12:27:01.04 Server      Implied
authentication manager initialization failed. Implied authentication will be
disabled.

2017-06-18
12:27:01.13 Server      The maximum
number of dedicated administrator connections for this instance is ‘1’

2017-06-18
12:27:01.13 Server      This instance of
SQL Server last reported using a process ID of 8116 at 6/18/2017 1:06:37 PM
(local) 6/18/2017 10:06:37 AM (UTC). This is an informational message only; no
user action is required.

2017-06-18
12:27:01.13 Server      Node
configuration: node 0: CPU mask: 0x0000000000555555:0 Active CPU mask:
0x0000000000555555:0. This message provides a description of the NUMA
configuration for this computer. This is an informational message only. No user
action is required.

…..

   2017-06-18 12:27:01.14 Server      Node configuration: node 15: CPU mask:
0x0000aaaaaa000000:3 Active CPU mask: 0x0000aaaaaa000000:3. This message
provides a description of the NUMA configuration for this computer. This is an
informational message only. No user action is required.

2017-06-18
12:27:01.31 Server      Using dynamic
lock allocation.  Initial allocation of
2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.

2017-06-18
12:27:01.31 Server      Lock partitioning
is enabled.  This is an informational
message only. No user action is required.

2017-06-18
12:27:01.34 Server      Database Instant
File Initialization: enabled. For security and performance considerations see
the topic ‘Database Instant File Initialization’ in SQL Server Books Online.
This is an informational message only. No user action is required.

2017-06-18
12:27:01.41 Server      CLR version
v4.0.30319 loaded.

2017-06-18
12:27:01.51 Server      Query Store
settings initialized with enabled = 1,

Включается компонент Query Store

Начинается старт системных бд:

2017-06-18
12:27:01.53 spid10s     Starting up
database ‘master’.

2017-06-18
12:27:01.53 Server      In-Memory OLTP
initialized on highend machine.

2017-06-18
12:27:01.59 Server      Common language
runtime (CLR) functionality initialized using CLR version v4.0.30319 from
C:WindowsMicrosoft.NETFramework64v4.0.30319.

2017-06-18
12:27:01.72 spid10s     CHECKDB for
database ‘master’ finished without errors on 2017-06-21 03:35:10.293 (local
time). This is an informational message only; no user action is required.

2017-06-18
12:27:01.72 spid10s     Resource governor
reconfiguration succeeded.

2017-06-18
12:27:01.72 spid10s     SQL Server Audit
is starting the audits. This is an informational message. No user action is
required.

2017-06-18
12:27:01.73 spid10s     Audit: Server
Audit: 65537, Initialized and Assigned State: START_FAILED

2017-06-18
12:27:01.73 spid10s     Audit: Server
Audit: 65537, Initialized and Assigned State: STARTED

2017-06-18
12:27:01.74 spid10s     SQL Server Audit
has started the audits. This is an informational message. No user action is
required.

2017-06-18
12:27:01.78 spid10s     Server name is
‘server1’. This is an informational message only. No user action is required.

Имя сервера, как не странно)

2017-06-18
12:27:01.80 spid10s     Database
mirroring has been enabled on this instance of SQL Server.

2017-06-18
12:27:01.80 spid20s     Always On: The
availability replica manager is starting. This is an informational message
only. No user action is required.

2017-06-18
12:27:01.81 spid20s     Always On
Availability Groups: Waiting for local Windows Server Failover Clustering
service to start. This is an informational message only. No user action is
required.

2017-06-18
12:27:01.81 spid20s     Always On
Availability Groups: Local Windows Server Failover Clustering service started.
This is an informational message only. No user action is required.

Сервер является частью кластера,
включен компонент AlwaysOn.

2017-06-18
12:27:01.81 spid12s     Starting up
database ‘mssqlsystemresource’.

2017-06-18
12:27:01.81 spid20s     Always On
Availability Groups: Waiting for local Windows Server Failover Clustering node
to start. This is an informational message only. No user action is required.

2017-06-18
12:27:01.81 spid20s     Always On
Availability Groups: Local Windows Server Failover Clustering node started.
This is an informational message only. No user action is required.

2017-06-18
12:27:01.81 spid20s     Always On
Availability Groups: Waiting for local Windows Server Failover Clustering node
to come online. This is an informational message only. No user action is
required.

2017-06-18
12:27:01.81 spid31s     Starting up
database ‘DB’.

2017-06-18
12:27:01.81 spid22s     Starting up
database ‘DB2’.

2017-06-18
12:27:01.81 spid25s     Starting up
database ‘DB3’.

2017-06-18
12:27:01.81 spid26s     Starting up
database ‘DB4’.

2017-06-18
12:27:01.82 spid24s     Starting up
database ‘msdb’.

Получаем список баз данных на
сервере и далее можно отследить как они инициализируются, без проблем или нет.

2017-06-18
12:27:01.82 spid16s     Server is
listening on [ ‘any’ <ipv6> 1433].

2017-06-18
12:27:01.82 spid16s     Server is
listening on [ ‘any’ <ipv4> 1433].

Получили TCP порты на которые
настроен SQL Server

2017-06-18
12:27:01.82 spid16s     Server local
connection provider is ready to accept connection on [
\.pipeSQLLocalMSSQLSERVER ].

2017-06-18
12:27:01.82 spid16s     Server local
connection provider is ready to accept connection on [ \.pipesqlquery ].

2017-06-18
12:27:01.82 Server      Server is
listening on [ ‘any’ <ipv6> 1434].

2017-06-18
12:27:01.82 Server      Server is
listening on [ ‘any’ <ipv4> 1434].

2017-06-18
12:27:01.82 Server      Dedicated admin connection support was
established for listening remotely on port 1434.

2017-06-18
12:27:01.83 spid31s     [INFO]
HkHostDbCtxt::Initialize(): Database ID: [13] ‘DB’. XTP Engine version is 2.9

В базе данных используются
компоненты InMemory

2017-06-18
12:27:01.83 spid12s     The resource
database build version is 13.00.4435. This is an informational message only. No
user action is required.

2017-06-18
12:27:01.83 spid16s     SQL Server is now
ready for client connections. This is an informational message; no user action
is required.

2017-06-18
12:27:01.83 Server      SQL Server is
attempting to register a Service Principal Name (SPN) for the SQL Server
service. Kerberos authentication will not be possible until a SPN is registered
for the SQL Server service. This is an informational message. No user action is
required.

Проблемы с SPN, возможные,
возможно SPN уже есть, просто нет прав на просмотр SPN.

2017-06-18
12:27:01.84 spid26s     [INFO]
HkHostDbCtxt::Initialize(): Database ID: [8] ‘DB3’. XTP Engine version is 2.9.

2017-06-18
12:27:01.87 spid12s     Starting up
database ‘model’.

2017-06-18
12:27:01.89 Server      The SQL Server
Network Interface library could not register the Service Principal Name (SPN) [
MSSQLSvc/server1.ad.ru ] for the SQL Server service. Windows return code:
0x2098, state: 15. Failure to register a SPN might cause integrated
authentication to use NTLM instead of Kerberos. This is an informational
message. Further action is only required if Kerberos authentication is required
by authentication policies and if the SPN has not been manually registered.

2017-06-18
12:27:01.89 Server      The SQL Server
Network Interface library could not register the Service Principal Name (SPN) [
MSSQLSvc/server1.ad.ru:1433 ] for the SQL Server service. Windows return code:
0x2098, state: 15. Failure to register a SPN might cause integrated
authentication to use NTLM instead of Kerberos. This is an informational
message. Further action is only required if Kerberos authentication is required
by authentication policies and if the SPN has not been manually registered.

2017-06-18
12:27:01.94 spid12s     CHECKDB for
database ‘model’ finished without errors on 2017-06-21 03:38:53.560 (local
time). This is an informational message only; no user action is required.

2017-06-18
12:27:01.94 spid12s     Polybase feature
disabled.

2017-06-18
12:27:01.94 spid12s     Clearing tempdb
database.

2017-06-18
12:27:02.06 spid12s     Starting up
database ‘tempdb’.

— стартовали системные бд, дальше
идут уже сообщения относящиеся к базам данных, работе сервера или ошибки.

Итак, мы прошлись по журналу ERRORLOG SQL Server, как видим, он
содержит много полезной информации и может служит начальной точкой при начале
диагностике проблем в MS SQL Server.

Если вас просят провести
диагностику сервера или решить проблемы, а с другой стороны специалист мало знаком
с SQL Server, просто попросите его
найти на сервере файл ERRORLOG,
заархивировать его и прислать вам, в итоге вы без лишних разговоров получите
много информации об сервере.

RRS feed

  • Remove From My Forums
  • Вопрос

  • Добрый день!

    Использую SQL Server 2008 x64 для базы данных области. При запуске процедуры из окна запроса, вижу весь вывод, всю историю ее работы в результах и сообщениях. Но при запуске этой же процедуры из под агента заданий по расписанию, вижу только часть вывода
    работы процедуры и затем:  …  Шаг завершился с ошибкой. И какая ошибка, где ее теперь искать…

    Подскажите, пожалуйста, как включить весь вывод в журнал агента или может, где-то есть полный журнал событий агента?

    Заранее благодарен!

    • Изменено
      httpal
      24 августа 2016 г. 2:21

Ответы

    • Помечено в качестве ответа
      httpal
      30 сентября 2016 г. 1:52

Все ответы

  • Здравствуйте,

    Уточните пожалуйста, если зайти используя MS SQL Server Management Studio:

    SSMS -> SQL Server Agent -> Error Log

    присутствуют какие-то ошибки?


    Best Regards, Andrei …
    MCP

  • Залогиньтесь на сервер под учёткой агента и запустите процедуру

  • SSMS -> Агент SQL Server -> Журналы ошибок

    Дата,Источник,Серьезность,Сообщение
    08/24/2016 14:47:03,,Предупреждение,[162] Внутренний запрос (от SetJobNextRunDate [причина: расписание не будет выполняться повторно]) на деактивацию расписания 45
    08/16/2016 10:00:23,,Предупреждение,[162] Внутренний запрос (от SetJobNextRunDate [причина: расписание не будет выполняться повторно]) на деактивацию расписания 45
    08/12/2016 15:20:59,,Предупреждение,[162] Внутренний запрос (от SetJobNextRunDate [причина: расписание не будет выполняться повторно]) на деактивацию расписания 45
    08/11/2016 12:20:26,,Предупреждение,[162] Внутренний запрос (от SetJobNextRunDate [причина: расписание не будет выполняться повторно]) на деактивацию расписания 45
    08/04/2016 15:04:33,,Предупреждение,[162] Внутренний запрос (от SetJobNextRunDate [причина: расписание не будет выполняться повторно]) на деактивацию расписания 45
    08/02/2016 11:14:53,,Предупреждение,[396] Не определено условие простоя процессора — расписания заданий типа OnIdle использоваться не будут
    08/02/2016 11:14:53,,Сведения,[129] SQLAgent$мойсервер запущена с помощью средства управления службами NT Windows
    08/02/2016 11:14:53,,Ошибка,[364] Служба Messenger не была запущена — уведомления NetSend отправлены не будут
    08/02/2016 11:14:52,,Сведения,[432] В кэше подсистем находится 12 подсистем
    08/02/2016 11:14:52,,Сведения,[339] Локальный компьютер мойсервер работает с Windows NT 6.1 (7601) Service Pack 1
    08/02/2016 11:14:52,,Сведения,[310] Обнаружено 24 процессоров и 12278 МБ ОЗУ
    08/02/2016 11:14:52,,Сведения,[103] В качестве библиотеки NetLib драйвером используется DBNETLIB.DLL; локальный сервер узла -HP2X64-20HP2X64_20
    08/02/2016 11:14:52,,Сведения,[102] ODBC-драйвер для SQL Server версии 10.00.5500
    08/02/2016 11:14:52,,Сведения,[101] SQL Server мойсервер версии 10.00.5500 (с ограничением на 0 соединений)
    08/02/2016 11:14:52,,Сведения,[100] Microsoft SQLServerAgent версии 10.0.5500.0 (сборка (неизвестно) unicode коммерческая): идентификатор процесса 9368

  • Уточните пожалуйста, если в
    журнале ошибок, присутствую ошибки по конкретному заданию, а не все подряд?


    Best Regards, Andrei …
    MCP

  • В данном случае нет.

    Вот журнал (правой кнопкой по джобу -> просмотр журнала) конкретного джоба, который меня интересует:

    Сообщение
    Выполняется от имени пользователя: NT AUTHORITYсистема….Обработался p01016081612o8.rar [SQLSTATE 01000] (Сообщение 0)  Обработался p01116080112o8.rar [SQLSTATE 01000]

    ……. 

    Обработался p22616081613o8.rar [SQLSTATE 01000] (Сообщение 0)  пустой файл:P2261608171.TXT [SQLSTATE 01000] (Сообщение 0)  пустой файл:P2261608271.TXT [SQLSTATE 01000] (Сообщение 0)  пустой файл:P2261608311.TXT [SQLSTATE 01000] (Сообщение
    0)  пустой файл:P2261608331.TXT [SQLSTATE 01000] (С…  Шаг завершился с ошибкой.

  • Уточните пожалуйста у Вас на сервере задание обслуживание (maintenance plan) выполняется или задание агента (job)?


    Best Regards, Andrei …
    MCP

  • Пробуйте просмотреть историю (View History) заданий (Job History) выполнения задания, посмотрите если присутствуют более детальные ошибки выполнения.


    Best Regards, Andrei …
    MCP

  • Спасибо за помощь.

    Вообще-то я туда и смотрю! И вопрос этой ветки и есть о View History!

    Правой кнопкой по выбранному job’у -> View History -> нажимаю на «+» чтоб развернуть описание -> выделяю его и смотрю подробное описание ниже.

    И это подробное описание всегда обрывается: «… Шаг завершился с ошибкой.», выводя не полный список.

  • Под рукой нет SQL Server 2008, уточните пожалуйста если вывод T-SQL также выводить весь результат?

    Пример:

    -- lists all job information for the NightlyBackups job.  
    USE msdb ;  
    GO  
    
    EXEC dbo.sp_help_jobhistory   
        @job_name = N'NightlyBackups' ;  
    GO  
    


    Best Regards, Andrei …
    MCP

  • Вот таких несколько строк:

    A65B9085-3F47-4376-B8FC-C010F099D028    CLINIC_NEW    0    20160829    23000    930    NULL    NULL    NULL    0   
    *******************

    Т.е. нужной для меня здесь информации я не вижу…

    • Изменено
      httpal
      29 августа 2016 г. 9:20

  • На сколько я понял, решения нет ???

  • На сколько я понял, решения нет ???

    — Решение должно быть, иногда тяжело понять проблемы не видя ее визуально.

    — Уточните пожалуйста в логах, логируются какие-то ошибки?

    C:Program FilesMicrosoft SQL ServerMSSQL10.<--Instance-->MSSQLLog

    например:
    C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLLog


    Best Regards, Andrei …
    MCP

  • Да, есть там что-то… Какие именно ошибки нужно посмотреть?

  • Я думаю, что вы не туда копаете…

    Все работает в штатном режиме как надо!!! Ошибок нет!!!

    Прошу вас внимательно прочитайте сл. текст!

       Есть процедура MY_PROC, в ней после определенных команд я делаю: print ‘обработался файл №…’ и таких сообщений за все время работы процедуры может быть 400 — 500. Если нажать в студии «создать запрос» и запустить
    эту процедуру руками: exec MY_PROC, то я увижу все 400 или 500 сообщений (в виде столбца) и, если была какая-то ошибка в процессе работы процедуры, например, после 447 сообщения, то я увижу в «окне сообщений» все генерируемые процедурой
    сообщения и в том числе ошибку после 447 сообщения.

       Если запустить эту же процедуру через job («запустить задание на шаге» или по расписанию), то, зайдя в «просмотр журнала» этого job’а, я увижу только где-то 80-120 сгенерированных процедурой сообщений: ‘обработался
    файл №…’, а остальные отсекаются. И ошибку на 447 я уже не увижу…

    Дык вот, есть ли возможность журналировать ВСЕ СООБЩЕНИЯ ПРОЦЕДУРЫ, запуская ее через job?

    • Изменено
      httpal
      7 сентября 2016 г. 6:52

    • Изменено
      SQxModerator
      7 сентября 2016 г. 10:30
      добавлено
  • Возможно отключено, я не нашел данных в этой таблице для конкретного job’а …

    Вообще два файла базы: .MDF и .LDF.

    Каждую ночь выполняется DBCC SHRINKFILE (db_log, TRUNCATEONLY);

    • Изменено
      httpal
      8 сентября 2016 г. 2:19

    • Помечено в качестве ответа
      httpal
      30 сентября 2016 г. 1:52
  • Спасибо, поймал ошибку!!!

Содержание

  1. Manage the SQL Server error log
  2. Summary
  3. Reinitializing SQL Server error logs
  4. Configuring the number and size of SQL Server Error Logs
  5. Reading the error logs
  6. More information
  7. Third-party information disclaimer
  8. Просмотр журнала ошибок SQL Server
  9. SCM Services — Configure SQL Server Error Logs
  10. To open the Configure SQL Server Error Logs dialog box
  11. SQL-Ex blog
  12. Как эффективно управлять журналами SQL Server
  13. Введение
  14. Журналы SQL Server и их местонахождение
  15. Метод 1: Использование расширенной процедуры xp_readerrorlog
  16. Метод 2: Использование функции SERVERPROPERTY()
  17. Метод 3: использование менеджера конфигурации SQL Server
  18. Конфигурирование числа файлов журнала SQL Server и их размеров
  19. Перезагрузка журналов ошибок вручную
  20. Файл журнала SQL Server Agent
  21. Заключение
  22. Обратные ссылки
  23. Комментарии

Manage the SQL Server error log

This article describes how to manage the SQL Server error log.

Original product version: В SQL Server
Original KB number: В 2199578

Summary

The Microsoft SQL Server error log contains much valuable information that is generated by the SQL Server. The error log contains informational messages, warnings, and information about critical events. The error log also contains information about user-generated messages and auditing information such as logon events (success and failure).

The error log is a valuable data point for SQL Server administrators. As an administrator, you must manage the size of the error logs so that you can use them when they’re needed.

The error log file is initialized every time that the instance of SQL Server is started. If the instance of SQL Server hasn’t been restarted for a long time, the error log file can grow large. If many exceptions (for example, access violations) or critical events (for example, SQL Server assertions) occur, these events can generate lots of information that is written to the SQL Server error log.

Reinitializing SQL Server error logs

You can use the sp_cycle_errorlog stored procedure to reinitialize the error logs periodically. For more information, see sp_cycle_errorlog (Transact-SQL).

Configuring the number and size of SQL Server Error Logs

For more information on how you can configure the size and number of SQL Server Error logs for an instance review Configure SQL Server Error Logs.

Reading the error logs

You can read the contents of the SQL Server or SQL Server Agent error log file and filter on keywords by using sp_read_errorlog. For example, you can find log messages in the current SQL Server error log that indicate a database is starting up by running the following command:

More information

For more information on configuring these values using T-SQL, see the following blog posts by Paul Randal and Jan Kare Lokna:

Third-party information disclaimer

Third-party information disclaimer

The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.

Источник

Просмотр журнала ошибок SQL Server

Область применения: SQL Server (все поддерживаемые версии) — только для Windows

Журнал ошибок сервера SQL Server позволяет убедиться, что процессы были завершены успешно (например, операции резервного копирования и восстановления, пакеты команд или другие скрипты и процессы). Это полезно при определении любых текущих или потенциальных проблем, включая сообщения автоматического восстановления (особенно если экземпляр SQL Server был остановлен и перезапущен), сообщения ядра и другие сообщения об ошибках на уровне сервера.

Журнал ошибок сервера SQL Server можно просмотреть, используя среду SQL Server Management Studio или любой текстовый редактор. Дополнительные сведения о просмотре журнала ошибок см. в разделе Open Log File Viewer. По умолчанию журнал ошибок содержится в файлах Program FilesMicrosoft SQL ServerMSSQL. n MSSQLLOGERRORLOG и ERRORLOG. n .

Новый журнал ошибок создается при каждом запуске экземпляра сервера SQL Server , хотя циклическую смену журнала ошибок можно организовать при помощи системной хранимой процедуры sp_cycle_errorlog без перезапуска экземпляра сервера SQL Server. Обычно сервер SQL Server хранит резервные копии шести предыдущих журналов и присваивает наиболее свежей копии расширение «.1», следующей расширение «.2» и т. д. Файл текущего журнала ошибок расширения не имеет.

Помните, что журнал ошибок SQL Server можно также просматривать на экземплярах SQL Server , которые находятся вне сети или не запускаются. Дополнительные сведения см. в разделе Просмотр автономных файлов журнала.

Источник

SCM Services — Configure SQL Server Error Logs

Applies to: SQL Server (all supported versions)

This topic describes how to view or modify the way SQL Server error logs are recycled.

To open the Configure SQL Server Error Logs dialog box

In Object Explorer, expand the instance of SQL Server, expand Management, right-click SQL Server Logs, and then click Configure.

In the Configure SQL Server Error Logs dialog box, choose from the following options.

a. Log files count

Limit the number of the error log files before they are recycled

Check to limit the number of error logs created before they are recycled. A new error log is created each time an instance of SQL Server is started. SQL Server retains backups of the previous six logs, unless you check this option, and specify a different maximum number of error log files below.

Maximum number of error log files

Specify the maximum number of archived error log files created before they are recycled. The default is 6, not including the current one. This value determines the number of previous backup logs that SQL Server retains before recycling them.

b. Log file size

Maximum size for error log file in KB

You can set the size amount of each file in KB. If you leave it at 0 the log size is unlimited.

Источник

SQL-Ex blog

Новости сайта «Упражнения SQL», статьи и переводы

Как эффективно управлять журналами SQL Server

В статье дается обзор журналов 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 для нахождения текущего местоположения журнала ошибок.

Этот запрос имеет следующие параметры:

  1. Файл журнала ошибок: значение 0 для текущего, 1 для Archive#1, 2 для Archive #2.
  2. Тип файла журнала: значение 0 для журнала ошибок SQL Server, 1 для агента SQL Server.
  3. Строка поиска 1
  4. Строка поиска 2
  5. Время от
  6. Время до
  7. Сортировка результатов — по возрастанию (N’ASC) или по убыванию (N’Desc)

Для моего демонстрационного экземпляра файл журнала ошибок находится в папке C:Program FilesMicrosoft SQL ServerMSSQL14.MSSQLSERVERMSSQLLogERRORLOG.

Метод 2: Использование функции SERVERPROPERTY()

Мы можем использовать в запросе функцию SERVERPROPERTY, и также определить местонахождение SQL Server ERRORLOG.

Метод 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 создает новый файл журнала и архивирует текущий файл в следующих случях.

  1. При перезапуске службы SQL.
  2. При перезагрузке журнала ошибок вручную.

Однако если вы часто перезапускаете серверы по неизвестным причинам, то можете потерять все исторические данные в архивных журналах, поскольку их поддерживается только шесть. Поскольку ошибки содержат ценную информацию, которая может помочь в решении проблем, вы можете не захотеть потерять эти важные данные. Тогда, возможно, вы захотите сохранять файлы журнала производственной системы в течение недели или даже месяца.

SQL Server позволяет сконфигурировать от 6 до 99 файлов журнала ошибок. Вы не можете указать значение меньше шести, поскольку в любом случае будет поддерживаться шесть архивных журналов ошибок.

Для изменения значения по умолчанию числа файлов журнала ошибок поставьте галочку в поле с названием “Limit the number of error log files before they are recycled”. Например, следующий скриншот показывает максимальное число файлов журнала ошибок, равное 30.

Это эквивалентно выполнению скрипта T-SQL, который использует расширенную хранимую процедуру и обновляет значение регистра.

Замечание. Следует перезапустить службу SQL, чтобы изменения вступили в силу.

Как утверждалось ранее, по умолчанию размер журнала ошибок не ограничен. Например, если вы не запускаете SQL Server в течение длительного периода и вручную не перегружаете файлы журнала, этот файл вырастет до громадных размеров. Поэтому в конфигурации журнала ошибок показано значение 0, соответствующее неограниченному размеру журнала.

Вы можете задать размер в Кб для ограничения размера журнала ошибок в соответствии с вашими требованиями. Например, здесь мы ограничиваем размер файла журнала в 1Гб.

Эквивалентный скрипт T-SQL обновляет ErrorLogSizeInKb в регистре SQL Server.

Перезагрузка журналов ошибок вручную

SQL Server позволяет вручную перегружать журналы ошибок для эффективного управления ими. Например, предположим, что вы увеличили число файлов журнала ошибок до 30. Тогда мы можем создать задание для агента SQL Server, который перегружает журналы ошибок в полночь. Тем самым мы имеем файл журнала ошибок на каждый день, если SQL Server не будет перезапущен в этом промежутке. Для перезагрузки вручную выполните системную хранимую процедуру sp_cycle_errorlog. Эту процедуру может выполнить пользователь с фиксированной серверной ролью sysadmin.

Файл журнала SQL Server Agent

Агент SQL Server также имеет отдельный журнал ошибок, подобный журналам SQL Server. Вы можете обнаружить его в папке SQL Server Agent – > Error logs.

Щелкните правой кнопкой на папке Error log и выберите команду Configure. Это даст местоположение журнала ошибок агента и уровень журнала агента.

Файл журнала агента имеет расширение *.OUT и хранится в папке log при конфигурации по умолчанию. Например, в моей системе файл журнала находится здесь: C:Program FilesMicrosoft SQL ServerMSSQL14.MSSQLSERVERMSSQLLogSQLAGENT.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 вручную.

Хранимая процедура архивирует текущий журнал ошибок агента, используя следующий процесс:

  • Создается новый текущий журнал ошибок агента.
  • Текущий журнал ошибок SQLAgent.out преобразуется в SQLAgent.1.
  • SQLAgent.1 преобразуется в SQLAgent.2

Заключение

Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Автор не разрешил комментировать эту запись

Источник

MS Информация журнала / записи журнала SQL могут быть вам знакомы и незнакомы. Знакомо, потому что вы, возможно, использовали его. Проверьте и обратите внимание на некоторую информацию / записи журнала, например , История заданий; это незнакомо, потому что означает, что вы никогда не сможете обращать внимание на управление информацией / записями журнала. Здесь я всегда использую термин информация / запись журнала вместо термина файл журнала. Вкратце, я хочу, чтобы все отличили его от файла журнала транзакций (ldf) . В Интернете, если вы используете файл журнала в качестве ключевого слова для поиска, вы можете найти информацию, относящуюся к журналу транзакций. . Фактически, это действительно называется файлом журнала. В этой статье я, вероятно, начну с классификации записей журнала, того, как просматривать записи журнала, местоположения записей журнала, настроек записей журнала и почему журнал ошибок будет увеличиваться , Как очистить записи журнала и так далее.

Классификация записей журнала

Согласно программе просмотра файлов журнала, журнал ошибок обычно классифицируется как SQL SERVER, агент SQL SERVER, журнал приложений Windows, почта базы данных и другие четыре типа записей журнала ошибок. Если вы также учитываете план обслуживания, план удаленного обслуживания и информацию журнала истории заданий, то всего существует 7 типов файлов информации журнала.

clip_image002

Среди них типы журналов приложений Windows делятся на системный журнал (System), журнал безопасности (Security), журнал приложений (Application), журнал PatchLink. Дождавшись нескольких, я открыл SSMS на сервере (Windows Server 2008 R2 Standard) и обнаружил, что есть еще HardwareEvents, Internet Explorer, Windows PowerShell. Дождитесь файлов журнала. Это файлы журнала системы. Вам не нужно слишком беспокоиться о том, сколько их видов.

clip_image004

Место регистрации

Расположение записей журнала SQL SERVER и записей прокси SQL SERVER следующее. Записи журнала SQL SERVER обычно хранятся в файле ERRORLOG.n (n — число), SQL Записи журнала агента SERVER находятся в таких файлах, как SQLAGENT.n. Конечно, это также связано с версией базы данных:

версия

путь

SQL SERVER 2005

Program FilesMicrosoft SQL ServerMSSQL.nMSSQLLOG

SQL SERVER 2008

C: Program Files Microsoft SQL Server MSSQL10.Имя экземпляра MSSQL LOG

SQL SERVER 2008 R2

C: Program Files Microsoft SQL Server MSSQL10_50.Имя экземпляра MSSQL LOG

SQL SERVER 2005 по умолчанию журнал ошибок находится в Program Files Microsoft SQL Server MSSQL.n MSSQL LOG ERRORLOG и ERRORLOG.n Файл. Отличие MSSQL.n:

        MSSQL.1:SQLSERVER

        MSSQL.2:SSAS

        MSSQL.3:SQLExpress

        MSSQL.4:SSRS

Поэтому в целом вам нужно обращать внимание только на файлы журналов в каталоге MSSSQL.1.

clip_image006

Итак, где же находятся записи журнала электронной почты базы данных? Где находятся данные журнала истории заданий и журнал приложений Windows? Вы никогда не задумывались об этом?

Информацию журнала почты базы данных можно запросить из представления msdb.dbo.sysmail_event_log, которое по существу хранится в таблице [dbo]. [Sysmail_log].

sysmail_event_log

  1.  SELECT log_id ,
  2.         CASE event_type
  3.           WHEN 0 THEN ‘success’
  4.           WHEN 1 THEN ‘information’
  5.           WHEN 2 THEN ‘warning’
  6.           ELSE ‘error’
  7.         END AS event_type ,
  8.         log_date ,
  9.         description ,
  10.         process_id ,
  11.         sl.mailitem_id ,
  12.         account_id ,
  13.         sl.last_mod_date ,
  14.         sl.last_mod_user
  15.     FROM[dbo].[sysmail_log] sl
  16. WHERE   ( ISNULL(IS_SRVROLEMEMBER(N’sysadmin’), 0) = 1 )
  17.         OR( EXISTS( SELECT    mailitem_id
  18.                       FROM      [dbo].[sysmail_allitems] ai
  19.                       WHERE     sl.mailitem_id = ai.mailitem_id ) )

Информация журнала истории заданий хранится в таблице msdb.dbo.sysjobhistory, где поле run_status представляет статус выполнения задания.

0 = Ошибка

1 = Успех

2 = Повторить

3 = Отменено

4= В процессе

Все журналы приложений Windows фактически находятся в в том же месте% SystemRoot% System32 Winevt Log. Как и файл журнала приложения, расположенный в% SystemRoot% System32 Winevt Logs Application.evtx, как показано ниже,

clip_image008

Просмотр записей журнала

Просмотр записей журнала может гарантировать, что процессы (например, операции резервного копирования и восстановления, пакетные команды или другие сценарии и процессы) завершены успешно. Эта функция может использоваться для обнаружения любых текущих или потенциальных проблемных областей, включая сообщения автоматического восстановления (особенно, когда экземпляр SQL Server был остановлен и перезапущен), сообщения ядра или другие сообщения об ошибках на уровне сервера.

Метод 1. Просмотрите файл журнала ошибок.

Для информации журнала SQL SERVER, SQL SERVER AGENT вы можете перейти непосредственно в каталог журнала, чтобы найти файлы журнала ERRORLOG, SQLAGENT, а также напрямую открыть и просмотреть; а также Как и запись журнала приложения Windows , перейдите в каталог% SystemRoot% System32 Winevt Log, найдите соответствующий файл журнала и откройте его напрямую.

Метод 2: просмотр записей журнала через SSMS

Просмотр журналов, относящихся к общей активности SQL Server

  1. В обозревателе объектов разверните«менеджмент»с участием«Журнал SQL Server», Двойной щелчок«текущий<Дата / Время>, ПокажетSQL Server«Агент SQL»с участием«Событие Windows»Журнал.

Просмотр журналов, связанных с заданием

  1. В обозревателе объектов разверните«Агент SQL Server», Щелкните правой кнопкой мыши«операция», Затем щелкните«Посмотреть историю», Он покажет«История вакансий»с участием«Агент SQL»Журнал.

Просмотр журналов, связанных с планом обслуживания

  1. В обозревателе объектов разверните«менеджмент», Щелкните правой кнопкой мыши«План обслуживания», Затем щелкните«Посмотреть историю», Он покажет«План обслуживания»«История вакансий»с участием«Агент SQL»Журнал.

Метод 3: просмотр с помощью скрипта

3.1 Файл журнала SQL SERVER можно просмотреть с помощью следующего сценария:

   -Просмотр номера архива файла журнала

    EXEC master.dbo.sp_enumerrorlogs

Вы можете использовать эту команду для просмотра размера файла журнала. Это очень полезно. Вы можете отсортировать файлы с ненормальными размерами.

— Просмотр содержимого журнала файла в соответствии с номером архива

   EXEC master.dbo.xp_readerrorlog 1

— Просмотр записей журнала SQL SERVER в соответствии с job_id

  SELECT * FROM  msdb.dbo.sysjobhistory WHERE job_id=’36E9232B-CD5B-4646-9BED-B8242090FFF9′

3.2 Информацию журнала истории заданий можно просмотреть с помощью следующей хранимой процедуры или напрямую запросить соответствующую таблицу.

Например, я хочу просмотреть историю задания «ServerDiskCapacityCheck»

Code Snippet

  1.  
  2.  
  3. USE msdb ;
  4.  
  5. GO
  6.  
  7. EXEC dbo.sp_help_jobhistory
  8.  
  9. @job_name = N’ServerDiskCapacityCheck’ ;
  10.  
  11. GO
  12.  
  13. »ò
  14.  
  15.   SELECT      j.name AS  [JOB_NAME] ,
  16.  
  17.             h.step_id AS  [Step] ,  
  18.  
  19.             h.step_name AS  [STEP_NAM] ,  
  20.  
  21.             h.MESSAGE AS  [Message] ,  
  22.  
  23.             [Status]    = CASE WHEN h.run_status = 0 THEN ‘Failed’  
  24.  
  25.             WHEN h.run_status = 1 THEN ‘Succeeded’  
  26.  
  27.             WHEN h.run_status = 2 THEN ‘Retry’  
  28.  
  29.             WHEN h.run_status = 3 THEN ‘Canceled’  
  30.  
  31.             END,  
  32.  
  33.             h.run_date AS  [RunDate] ,  
  34.  
  35.             h.run_time AS  [RunTime] ,  
  36.  
  37.             h.run_duration  AS  [RunDuration]
  38.  
  39.   FROM        sysjobs j
  40.  
  41.     INNER JOIN  sysjobhistory h ON h.job_id = j.job_id
  42.  
  43. WHERE h.run_date>=CONVERT(CHAR(8),GETDATE()-1,112) AND h.run_status<>1   
  44.  
  45.   /* WHERE    j.name = ‘Job_Name’ */
  46.  
  47.     ORDER BYh.run_date, h.run_time

3.3 Просмотр записи почты базы данных

SELECT * FROM  msdb.dbo.sysmail_event_log;

Управление записями журнала

Установите максимальное количество файлов журнала ошибок

1: вОбозреватель объектов, Подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните экземпляр.

2: В параметре «Управление» выберите «Журнал SQL SERVER», щелкните правой кнопкой мыши, чтобы выбрать конфигурацию. Кстати, во многих онлайн-материалах говорится, что SQL SERVER по умолчанию сохраняет первые 6 файлов журнала, но я проверил SQL SERVER 2005 и SQL SERVER 2008, и оба по умолчанию сохраняют 30. Иногда Проверять и экспериментировать нужно самому, а не всем. Предполагается, что этот оператор является конфигурацией SQL SERVER 2000.

clip_image010

Конечно, вы также можете использовать команду для установки:

USE [master]
 
GO
 
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'SoftwareMicrosoftMSSQLServerMSSQLServer', N'NumErrorLogs', REG_DWORD, 10
 
GO
 

Задайте каталог хранения файла журнала ошибок

1: вОбозреватель объектов, Подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните экземпляр.

2: Разверните агент «SQL SERVER».

3: Щелкните правой кнопкой мыши «Журнал ошибок» и выберите параметры конфигурации, как показано ниже:

clip_image012

4: В поле «файл журнала ошибок» введите новый путь и имя файла или используйте кнопку обзора (…) для поиска. После перезапуска службы агента SQL SERVER агент SQL SERVER записывает в новый файл журнала.

clip_image014

Установить журнал истории заданий

  1. вОбозреватель объектов, Подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните экземпляр.
  2. Щелкните правой кнопкой мыши«Агент SQL Server», Затем щелкните«Атрибуты»
  3. в«Свойства агента SQL Server»В диалоговом окне выберите«исторический рекорд»страница.
  4. Выберите один из следующих вариантов:
  • Выбрано«Ограничить размер журнала истории заданий», А затем введите максимальное количество строк в журнале истории заданий и максимальное количество строк на задание.
  • Выбрано«Автоматически удалять историю агента», А затем укажите период времени. Таким образом, записи истории до этого периода времени будут удалены из журнала.
  • clip_image016

Почему взрывается файл журнала ошибок?

Я говорю здесь не только о взрыве определенного файла журнала ошибок, но и о каталоге Program Files Microsoft SQL Server MSSQL.nПространство, занимаемое MSSQL LOG, резко возросло. Если вы обычно не обращаете внимания на эти журналы ошибок и никогда не ведете записи журнала ошибок, то вполне вероятно, что пространство, занимаемое им, очень велико, настолько велико, что это вас удивит. Я видел десятки гигабайт, поэтому конкретные причины могут быть следующими (если вы столкнулись с другими ситуациями, добавьте их):

1: при возникновении внутренней ошибки SQL будет создано много файлов DUMP, как показано ниже.

clip_image018

2: Сервер базы данных с высокой доступностью может редко останавливаться, и вы не выполняете регулярную очистку, очищаете эту информацию журнала ошибок, тогда рост файла ERRORLOG.n / SQLAGENT.n будет очень большим. Таким образом, администратору базы данных будет сложнее использовать журнал ошибок для поиска информации, а производительность будет снижена после загрузки и записи журнала.

3: На самом деле, есть другая ситуация: если IP-адрес вашей базы данных открыт во внешней сети, вы подвергнетесь атаке из-за большого количества попыток входа в sa, а также будет сгенерировано большое количество сообщений журнала ошибок аудита.

4: Некоторые файлы SQL SERVER PROFILE не удаляются .. Конечно, эта суть не имеет ничего общего с всплеском файлов журналов, но имеет какое-то отношение к размеру папки LOG.

Как очистить журнал ошибок:

Для журнала SQL SERVER, записи журнала SQL SERVER AGENT, Microsoft предоставляет хранимую процедуру sp_cycle_errorlog для реализации цикла журнала. Функция этой хранимой процедуры — закрыть текущий файл журнала ошибок и зациклить номер расширения журнала ошибок (как при перезапуске сервера). Каждый раз при запуске SQL Server текущий журнал ошибок будет переименован вerrorlog.1errorlog.1 Становитсяerrorlog.2errorlog.2 Становитсяerrorlog.3,И так далее. Последний errorlog.n будет удален.sp_cycle_errorlog Позволяет циклически просматривать файл журнала ошибок без необходимости останавливать и запускать сервер.

Кроме того: если журнал слишком велик, это означает, что вы не усекли журнал ошибок. Журнал ошибок можно усечь. Введите DBCC ERRORLOG в свою базу данных.

Каждый раз, когда выполняется текущий журнал ошибок, текущий журнал ошибок закрывается и создается новый журнал ошибок . Вы можете удалить только журнал ошибок ERRORLOGn. Журнал без номера является используемым журналом. Если вы удалите его, будет сообщено об ошибке. Он относительно большой, просто DBCC ERRORLOG, а затем он станет ERRORLOG + number, вы можете удалить его, и рекомендуется поместить эти ERRORLOG в другие буквы диска для лучшего управления.

Для журналов приложений Windows обычно есть настройки размера по умолчанию, и они могут быть перезаписаны по мере необходимости. Эти конфигурации обычно также являются оптимальными конфигурациями. Так что, если у вас нет особых потребностей, не беспокойтесь об этом.

clip_image020

Для регистрации почты хранимые процедурыsysmail_delete_log_spпредоставлятьУдалить события из почтового журнала базы данных. Удалить все события в журнале или удалить те события, которые соответствуют определенной дате или условию типа

sysmail_delete_log_sp [ [ @logged_before = ] logged_before ]

[, [ @event_type = ] event_type ]

 Удалите все журналы шагов задания агента SQL Server, указанные в параметре. Используйте эту хранимую процедуру для обслуживанияmsdbВ базеsysjobstepslogsСтол.

sp_delete_jobsteplog { [ @job_id = ] ‘job_id’ | [ @job_name = ] ‘job_name’ }

[ , [ @step_id = ] step_id | [ @step_name = ] ‘step_name’ ]

[ , [ @older_than = ] ‘date’ ]

[ , [ @larger_than = ] ‘size_in_bytes’ ]

Удалить историю вакансий

Удалить историю конкретного задания YourSQLDba_LogBackups.

USE msdb ;

GO

EXEC dbo.sp_purge_jobhistory

@job_name = N’YourSQLDba_LogBackups’ ;

GO

В следующем примере этот процесс будет выполнен без параметров для удаления всех записей истории.

USE msdb ;

GO

EXEC dbo.sp_purge_jobhistory ;

GO

Удалите все журналы шагов задания агента SQL Server, указанные в параметре. Используйте эту хранимую процедуру для обслуживанияmsdb В базеsysjobstepslogs стол.Если вы хотите хорошо поддерживать записи журнала, вы можете интегрировать вышеупомянутые идеи в хранимую процедуру, а затем настроить задание на регулярную очистку записей журнала.Далее давайте взглянем на метод YourSQLDba.

Code Snippet

  1. USE [YourSQLDba]
  2. GO
  3.  
  4. /****** Object:  StoredProcedure [yMaint].[LogCleanup]    Script Date: 05/28/2013 18:36:21 ******/
  5. SET ANSI_NULLS ON
  6. GO
  7.  
  8. SET QUOTED_IDENTIFIER ON
  9. GO
  10.  
  11. ——————————————————————————
  12. — yMaint.LogCleanup (for entries older than 30 days)
  13. — Mail logs
  14. — Backup history logs
  15. — Job history
  16. — Cycle SQL Server error log
  17. ——————————————————————————
  18. create proc [yMaint].[LogCleanup]
  19.   @jobNo Int
  20. as
  21. Begin
  22.   declare @d nvarchar(8)
  23.   declare @lockResult int
  24.   declare @sql nvarchar(max)
  25.  
  26.   Begin try
  27.  
  28.   exec yMaint.LockMaintDb@jobNo=@jobNo, @lockType=‘C’, @DbName = ‘LogCleanUpStep’, @Result = @lockResult output
  29.   If @lockResult > 0
  30.     Return;
  31.  
  32.   Set @sql = ‘Exec msdb.dbo.sysmail_delete_log_sp @logged_before = «<d>»;’
  33.   Set @sql = replace(@sql, ‘<d>’, convert(nvarchar(8), dateadd(dd, 30, getdate()), 112))
  34.   Set @sql = replace(@sql, ‘»‘, »»)
  35.   Exec yExecNLog.LogAndOrExec
  36.     @context = ‘yMaint.LogCleanup’
  37.   , @info = ‘Cleanup log entries older than 30 days, begins with mail’
  38.   , @sql = @sql
  39.   , @JobNo = @JobNo
  40.   
  41.   Set @sql = ‘EXECUTE msdb.dbo.sysmail_delete_mailitems_sp  @sent_before = «<d>»;’
  42.   Set @sql = replace(@sql, ‘<d>’, convert(nvarchar(8), dateadd(dd, 30, getdate()), 112))
  43.   Set @sql = replace(@sql, ‘»‘, »»)
  44.   Exec yExecNLog.LogAndOrExec
  45.     @context = ‘yMaint.LogCleanup’
  46.   , @info = ‘Cleanup log entries older than 30 days, for mailitems’
  47.   , @sql = @sql
  48.   , @JobNo = @JobNo
  49.  
  50.   — clean backup history
  51.   Set @sql = ‘exec  Msdb.dbo.sp_delete_backuphistory   @oldest_date = «<d>» ‘
  52.   Set @sql = replace(@sql, ‘<d>’, convert(nvarchar(8), dateadd(dd, 30, getdate()), 112))
  53.   Set @sql = replace(@sql, ‘»‘, »»)
  54.   Exec yExecNLog.LogAndOrExec
  55.     @context = ‘yMaint.LogCleanup’
  56.   , @info = ‘Cleanup log entries older than 30 days, for backup history’
  57.   , @sql = @sql
  58.   , @JobNo = @JobNo
  59.   
  60.   — clean sql agent job history
  61.   Set @sql = ‘EXECUTE  Msdb.dbo.sp_purge_jobhistory  @oldest_date = «<d>»‘
  62.   Set @sql = replace(@sql, ‘<d>’, convert(nvarchar(8), dateadd(dd, 30, getdate()), 112))
  63.   Set @sql = replace(@sql, ‘»‘, »»)
  64.   Exec yExecNLog.LogAndOrExec
  65.     @context = ‘yMaint.LogCleanup’
  66.   , @info = ‘Cleanup log entries older than 30 days, for job history’
  67.   , @sql = @sql
  68.   , @JobNo = @JobNo
  69.   
  70.   — clean job maintenance job history (SQL Server own maintenance)
  71.   Set @sql = ‘EXECUTE  Msdb.dbo.sp_maintplan_delete_log null,null,»<d>»‘
  72.   Set @sql = replace(@sql, ‘<d>’, convert(nvarchar(8), dateadd(dd, 30, getdate()), 112))
  73.   Set @sql = replace(@sql, ‘»‘, »»)
  74.   Exec yExecNLog.LogAndOrExec
  75.     @context = ‘yMaint.LogCleanup’
  76.   , @info = ‘Cleanup log entries older than 30 days, for SQL Server job maintenace plans’
  77.   , @sql = @sql
  78.   , @JobNo = @JobNo
  79.   
  80.   — archive current log, and start a new one
  81.   Set @sql = ‘Execute sp_cycle_errorlog’
  82.   Set @sql = replace(@sql, ‘<d>’, convert(nvarchar(8), dateadd(dd, 30, getdate()), 112))
  83.   Set @sql = replace(@sql, ‘»‘, »»)
  84.   Exec yExecNLog.LogAndOrExec
  85.     @context = ‘yMaint.LogCleanup’
  86.   , @info = ‘Recycle Sql Server error log, start a new one’
  87.   , @sql = @sql
  88.   , @JobNo = @JobNo
  89.  
  90.   Delete H
  91.   From
  92.     (
  93.     Select distinct JobNo
  94.     From  Maint.JobHistory
  95.     Where JobStart < dateadd(dd, 30, getdate())
  96.     ) as T
  97.     join
  98.     Maint.JobHistory H  
  99.     On H.JobNo = T.JobNo
  100.  
  101.   End try
  102.   Begin catch
  103.     exec yMaint.UnLockMaintDb@jobNo=@jobNo, @DbName = ‘LogCleanUpStep’
  104.     Exec yExecNLog.LogAndOrExec
  105.         @context = ‘yMaint.LogCleanup’
  106.       , @Info = ‘Error caught in proc’  
  107.       , @err = ‘?’
  108.       , @JobNo = @JobNo
  109.   End Catch
  110.  
  111.   exec yMaint.UnLockMaintDb@jobNo=@jobNo, @DbName = ‘LogCleanUpStep’
  112.  
  113. End — yMaint.LogCleanup
  114.  
  115. GO

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Sql операция create file вызвала ошибку операционной системы
  • Sql error 42p16 ошибка