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

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

marc_s's user avatar

marc_s

729k175 gold badges1327 silver badges1455 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 FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLLog»
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

911 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

7118 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

729k175 gold badges1327 silver badges1455 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 FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLLog»
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

911 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

7118 silver badges10 bronze badges

1

Thats about 25% of the server space.

First and foremost, you really need to increase the size of your drive or move the error logs to a different drive. ~40GB for a C: drive might’ve been an okay default years ago, but you can quickly burn through that with misc files from applications — as you’re seeing.

You can easily configure this via SQL Server Configuration Manager:

enter image description here

by modifying the directory for the -e parameter, which controls the error log destination.


How can I remove the archive logs as I don’t need them and reduce the
size in which the archive files grow to before recycling.

You can of course just delete the files manually, but it sounds like you really want to reduce the number of logs used and/or reduce their size.

The steps contained in the above link detail how to do this in SQL Server Management Studio:

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

  2. 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.

enter image description here

  • Remove From My Forums
  • Question

  • Hi,

    I am using SQL Server 2008 & I want to delete Error Logs or SQL Server logs which are

    older.How should I do that?

    Please provide me the solution……..


    Chetan Anil Patil SQL DBA

Answers

  • Use sp_cycle_agent_errorlog for SQLAgent log 


    Balmukund Lakhani | Please mark solved if I’ve answered your question, vote for it as helpful to help other user’s find a solution quicker

    ———————————————————————————
    This posting is provided «AS IS» with no warranties, and confers no rights.

    ———————————————————————————
    My Blog: http://blogs.msdn.com/blakhani

    Team Blog: http://blogs.msdn.com/sqlserverfaq

    • Marked as answer by

      Monday, January 31, 2011 10:37 AM

Thats about 25% of the server space.

First and foremost, you really need to increase the size of your drive or move the error logs to a different drive. ~40GB for a C: drive might’ve been an okay default years ago, but you can quickly burn through that with misc files from applications — as you’re seeing.

You can easily configure this via SQL Server Configuration Manager:

enter image description here

by modifying the directory for the -e parameter, which controls the error log destination.


How can I remove the archive logs as I don’t need them and reduce the
size in which the archive files grow to before recycling.

You can of course just delete the files manually, but it sounds like you really want to reduce the number of logs used and/or reduce their size.

The steps contained in the above link detail how to do this in SQL Server Management Studio:

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

  2. 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.

enter image description here

Thats about 25% of the server space.

First and foremost, you really need to increase the size of your drive or move the error logs to a different drive. ~40GB for a C: drive might’ve been an okay default years ago, but you can quickly burn through that with misc files from applications — as you’re seeing.

You can easily configure this via SQL Server Configuration Manager:

enter image description here

by modifying the directory for the -e parameter, which controls the error log destination.


How can I remove the archive logs as I don’t need them and reduce the
size in which the archive files grow to before recycling.

You can of course just delete the files manually, but it sounds like you really want to reduce the number of logs used and/or reduce their size.

The steps contained in the above link detail how to do this in SQL Server Management Studio:

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

  2. 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.

enter image description here

278 / 197 / 62

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

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

1

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


День добрый. Можно файлы простым выделением удалить или надо процедуру провести? C:Program FilesMicrosoft SQL ServerMSSQL10_50.SQLEXPRESSMSSQLLog

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

SQL Server 2008 R2

0

3317 / 2027 / 722

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

Сообщений: 4,972

01.03.2019, 17:15

2

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

0

278 / 197 / 62

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

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

01.03.2019, 18:44

 [ТС]

3

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

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

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

0

3317 / 2027 / 722

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

Сообщений: 4,972

01.03.2019, 19:20

4

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

Решение

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

1

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

marc_s's user avatar

marc_s

721k173 gold badges1320 silver badges1442 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

85513 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 FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLLog»
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

811 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

6718 silver badges10 bronze badges

1

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

В MS SQL очистка журнала транзакций необходима в том случае, если настроена полная модель восстановления базы данных. Если журнал транзакций переполнился, то ваша база данных откажется работать и будет выдавать ошибку: «журнал транзакций для базы данных заполнен». Почему такое происходит и как этого избежать? Рассмотрим два решения, которые помогут быстро устранить ошибку и продолжить работу с базой.

Увеличиваем размер журнала транзакций.

Запускаем SQL Server Management Studio, заходим в свойства базы и выбираем пункт [Файлы].

img 2018 02 22 14 45 12

Для типа файла «Журнал» увеличиваем максимальный размера файла для авторасширения.

img 2018 03 07 11 29 12

Сжимаем файл журнала транзакций.

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

Запускаем SQL Server Management Studio, заходим в свойства базы и выбираем пункт [Параметры]. Модель восстановления выбираем «Простая» и нажимаем ОК.

img 2018 03 07 17 15 27

Далее правой клавишей мышки по базе и выбираем из контекстного меню [Задачи] — [Сжать] — [Файлы]

img 2018 03 07 17 18 26

Тип сжатия: Журнал
Операция сжатия: Реорганизовать файлы, перед тем как освободить неиспользуемое место
И указываем размер до которого необходимо сжать, например 0.

img 2018 03 07 17 28 26

Теперь нужно вернуться в свойства базы к пункту [Параметры] и переключить модель восстановления на «Полная».

  • Remove From My Forums
  • Question

  • Hi,

    I am using SQL Server 2008 & I want to delete Error Logs or SQL Server logs which are

    older.How should I do that?

    Please provide me the solution……..


    Chetan Anil Patil SQL DBA

Answers

  • Use sp_cycle_agent_errorlog for SQLAgent log 


    Balmukund Lakhani | Please mark solved if I’ve answered your question, vote for it as helpful to help other user’s find a solution quicker

    ———————————————————————————
    This posting is provided «AS IS» with no warranties, and confers no rights.

    ———————————————————————————
    My Blog: http://blogs.msdn.com/blakhani

    Team Blog: http://blogs.msdn.com/sqlserverfaq

    • Marked as answer by

      Monday, January 31, 2011 10:37 AM

  • Как оценить критичность ошибки
  • Как оценивается тотальный диктант сколько ошибок
  • Как оформить пушкинскую карту если выдает ошибку
  • Как оформить перерасчет отпускных при счетной ошибке
  • Как оформить ошибку 404 на сайте