Как очистить журнал ошибок 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

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

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

RRS feed

  • Remove From My Forums
  • Question

  • 1. SQL logs are continuously growing, how can I perform truncate of logs?

    2. I am using MS DPM 2019 server for backup solution. But logs are not getting shrink and after backup no claim of space. how can I clear the logs by backup ?


    Arif

Answers

  • Hi azahri miya,

    >1.How can I know if logs are truncated?

    • Marked as answer by
      azahri miya
      Thursday, July 23, 2020 10:19 AM

All replies

  • I remember DPM could behave a little fishy when using it with SQL server. Although I don’t recall exactly what you report. Although I did a quick search to freshen my memory, and I realize that the problem I ran into was that when you changed the recovery
    model from SIMPLE to FULL whitout removing/adding the database to DPM, DPM do not understand the change in recoverymodel and will not backup your logs….

    I saw others reporting that you need to run incremental backups to truncate logs, that though, sounds a little bogus, and I don’t remember ever having to do that when I worked in an environement using DPM…

  • Hi azahri miya,

    >1.SQL logs are continuously growing, how can I perform truncate of logs?

    Log truncation occurs automatically after the following events, except when

    delayed for some reason:
    Under the simple recovery model, after a checkpoint.
    Under the full recovery model or bulk-logged recovery model, after a log backup, if a checkpoint has occurred since the previous backup.

    >2.I am using MS DPM 2019 server for backup solution. But logs are not getting shrink and after backup no claim of space. how can I clear the logs by backup ?

    Log truncation does not reduce the size of the physical log file. To reduce the physical size of a physical log file, you must

    shrink the log file. For information about shrinking the size of the physical log file, see

    Manage the Size of the Transaction Log File.

    Helpful blog:sql-server-transaction-log-backup-truncate-and-shrink-operations 

    BR,
    MIAOYUXI


    MSDN Community Support
    Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
     MSDN Support, feel free to contact MSDNFSF@microsoft.com

  • What is recovery model for datbase.

    You need check check why log is not reuse, try check any open transaction.

    select log_reuse_wait_desc from sys.databases
    DBCC opentran

    https://social.technet.microsoft.com/wiki/contents/articles/37872.sql-server-installation-on-centos-linux.aspx

  • The physical size of the log file never gets smaller unless you manually shrink the file.   The backup sets the space INSIDE the file as «reusable».  It does not make the file smaller.

  • Hi azahri miya,

    Is the reply helpful?

    BR,

    MIAOYUXI


    MSDN Community Support
    Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to
     MSDN Support, feel free to contact MSDNFSF@microsoft.com

  • Hi azahri miya,

    I’m following this open case.

    Is the reply helpful?

    BR,

    MIAOYUXI


    MSDN Community Support Please remember to click «Mark as Answer» the responses that resolved your issue, and to click «Unmark as Answer» if not. This can be beneficial to other community members reading this thread. If you have any
    compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

  • Thank you for your help. So I got answer that even if logs are truncate, it does reduce/shrink physical log files to save the disk space.

    1. How can I know if logs are truncated?

    2. How to perform logs shrinking?


    Arif

  • Hi azahri miya,

    >1.How can I know if logs are truncated?

    • Marked as answer by
      azahri miya
      Thursday, July 23, 2020 10:19 AM

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