Очистка журнала ошибок sql

How to clear error logs using a query in SQL Server without restarting the server instance?

marc_s's user avatar

marc_s

734k176 gold badges1332 silver badges1460 bronze badges

asked Jan 4, 2017 at 8:34

Rushang's user avatar

3

ahmed abdelqader's user avatar

answered Jan 4, 2017 at 8:38

anon's user avatar

anonanon

85512 silver badges22 bronze badges

1

clear error logs using a query in SQL Server without restarting the server instance:

SP_CYCLE_ERRORLOG

After run the command, please check: «C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log»
and delete old file (like: ERRORLOG.1, ERRORLOG.2 …).
I open SQL port 1433, so my ERRORLOG about 20Gb. Some one scan my Sql password. Don’t open port 1433 to internet.

answered Nov 28, 2019 at 3:51

Datusa's user avatar

DatusaDatusa

1011 silver badge3 bronze badges

You can run: sp_cycle_errorlog

That will start a new log file.

If you want to really delete log entries, you’d have to run that command seven times. By default there are seven logs cycled through. But often DBAs change that to maximum possible of 99.

answered Sep 19, 2018 at 3:44

Mark Varnas's user avatar

Mark VarnasMark Varnas

7119 silver badges10 bronze badges

1

How to clear error logs using a query in SQL Server without restarting the server instance?

marc_s's user avatar

marc_s

734k176 gold badges1332 silver badges1460 bronze badges

asked Jan 4, 2017 at 8:34

Rushang's user avatar

3

ahmed abdelqader's user avatar

answered Jan 4, 2017 at 8:38

anon's user avatar

anonanon

85512 silver badges22 bronze badges

1

clear error logs using a query in SQL Server without restarting the server instance:

SP_CYCLE_ERRORLOG

After run the command, please check: «C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log»
and delete old file (like: ERRORLOG.1, ERRORLOG.2 …).
I open SQL port 1433, so my ERRORLOG about 20Gb. Some one scan my Sql password. Don’t open port 1433 to internet.

answered Nov 28, 2019 at 3:51

Datusa's user avatar

DatusaDatusa

1011 silver badge3 bronze badges

You can run: sp_cycle_errorlog

That will start a new log file.

If you want to really delete log entries, you’d have to run that command seven times. By default there are seven logs cycled through. But often DBAs change that to maximum possible of 99.

answered Sep 19, 2018 at 3:44

Mark Varnas's user avatar

Mark VarnasMark Varnas

7119 silver badges10 bronze badges

1

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

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

Author Gerard Mainardi

Keep in mind of course that once that file is deleted, you wont be able to do any research about past problems that it included!  Something that I think works really well is the following:

In SQL Server Management Studio, open the MANAGEMENT folder, then right click on SQL SERVER LOGS and say CONFIGURE.  Check the LIMIT ERROR LOGS box and set the number to 30 (a month’s worth).  Now, set up a new job in the SQL Agent that runs sp_cycle_errorlog every night at midnight.

This way, you will always have a rolling 30 days (a month works for me, maybe you need more history) of logs, and its very easy to find what you need each day, since each log will contain just the one day worth of history.  Makes it way easier to manage than having gigantic error logs with 40 days of junk to sort through when you’re looking for one specific day of data.  It also helps keep the files from getting gigantic!

If you’re interested in setting this up and need any help configuring the SQL Agent job, let me know and I’ll post a step by step.

Hope this helps!


3 found this helpful
thumb_up
thumb_down

302 / 215 / 68

Регистрация: 08.11.2010

Сообщений: 1,858

1

01.03.2019, 17:10. Показов 16338. Ответов 3


Студворк — интернет-сервис помощи студентам

День добрый. Можно файлы простым выделением удалить или надо процедуру провести? C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Log

Как правильно удалить журналы ошибок SQL Server ErrorLog

SQL Server 2008 R2



0



3344 / 2045 / 731

Регистрация: 02.06.2013

Сообщений: 5,026

01.03.2019, 17:15

2

Мешают столь копеечные файлы?



0



302 / 215 / 68

Регистрация: 08.11.2010

Сообщений: 1,858

01.03.2019, 18:44

 [ТС]

3

Цитата
Сообщение от invm
Посмотреть сообщение

Мешают столь копеечные файлы?

30 ГБ файл занимает.



0



3344 / 2045 / 731

Регистрация: 02.06.2013

Сообщений: 5,026

01.03.2019, 19:20

4

Лучший ответ Сообщение было отмечено allukard как решение

Решение

Можно либо перезапустить службу сервера, либо выполнить sp_cycle_errorlog
После этого логи циклически сдвинутся и ваш 30ГБ файл будет поименован как errorlog.1
Все файлы errorlog.N можно удалить. Но если сомневаетесь, то сначала можете их куда-нибудь переместить.



1



Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Очистка диска файлы дампа памяти для системных ошибок
  • Очиститель дайсон выдает ошибку
  • Очистка воды ошибка 102
  • Очистить ошибки на порту huawei
  • Очистить ошибки на порту cisco

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: