Параллельный редо завершен

Вопрос или проблема

При просмотре журналов событий Windows я вижу следующие сообщения почти непрерывно –

Запуск базы данных 'Database'.
Параллельная повторная запись начата для базы данных 'Database' с размером пула рабочих потоков [1].
Параллельная повторная запись завершена для базы данных 'Database' с размером пула рабочих потоков [1].

Эти сообщения появляются одновременно и повторяются непрерывно каждую секунду.

Может кто-то объяснить, что такое Параллельная Повторная Запись и почему она постоянно запускается и останавливается, вызывая необходимость перезапуска базы данных?

База данных используется веб-приложением ASP.NET на основе Entity Framework, работающим на IIS. Windows Server 2016 Standard и SQL Server 14.0.100 (Sql Server 2017 Express Edition).

Попробуйте установить автоматическое закрытие на false, это можно сделать в разделе параметров свойств БД.

Вот ссылка для объяснения. Кто-то прокомментировал нечто подобное в теме ниже.
https://dba.stackexchange.com/questions/239181/messages-about-parallel-redo

Ответ или решение

Параллельная переработка: Почему ваша база данных постоянно перезапускается?

Когда вы рассматриваете сообщения в журналах событий Windows, вы сталкиваетесь с периодическими записями, указывающими на запуск и shutdown параллельной переработки для вашей базы данных. Эти сообщения, как правило, выглядят так:

Starting up database 'Database'.
Parallel redo is started for database 'Database' with worker pool size [1].
Parallel redo is shutdown for database 'Database' with worker pool size [1].

Эти записи появляются часто, что может указывать на проблемы, требующие внимания. В этом посте я объясню, что такое параллельная переработка и почему она может вызывать постоянные перезапуски базы данных.

Что такое параллельная переработка?

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

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

Причины повторного включения и остановки параллельной переработки

Постоянные сообщения о начале и завершении параллельной переработки могут быть симптомом одной из следующих причин:

  1. Авто-закрытие базы данных: Одной из наиболее распространённых причин перезапусков базы данных является неправильная настройка параметров базы данных, когда установлено значение "Auto Close" (авто-закрытие) в "True". Это приводит к тому, что база данных закрывается после завершения всех соединений, и каждый раз, когда приложение пытается получить доступ к базе данных, она вновь открывается. Это вызывает циклы, в которых параллельная переработка активируется и затем останавливается.

    Решение: Настройте параметр "Auto Close" на "False". Чтобы сделать это, выполните следующие шаги:

    • Откройте SQL Server Management Studio (SSMS).
    • Найдите вашу базу данных в дереве объектов.
    • Щёлкните правой кнопкой мыши по базе данных и выберите "Свойства".
    • Перейдите на вкладку "Опции" и найдите параметр "Auto Close".
    • Установите значение "False" и сохраните изменения.
  2. Недостаточная производительность ресурсов: Если во время работы базы данных наблюдается нехватка ресурсов (процессорного времени, памяти), это может привести к тому, что SQL Server не может поддерживать параллельную переработку, вызванную высокими нагрузками. Если ресурсы ограничены, это также может повлиять на краткосрочные операции параллельной переработки, вызывая их постоянное начало и завершение.

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

  4. Всеобъемлющие или долгосрочные транзакции: Подобные операции могут влиять на нормальную работу базы данных и вызвать повторы в цикле переработки.

  5. Ошибки или сбой в уже выполненных транзакциях: Если имеются ошибки в ранее выполненных транзакциях, это может привести к некорректному восстановлению состояния базы данных.

Заключение

Чтобы остановить постоянные сообщения о запуске и завершении параллельной переработки, в первую очередь проверьте, установлен ли параметр "Auto Close" в вашей базе данных на "True". Убедитесь, что ресурсы вашего сервера достаточны, и анализируйте производительность на предмет потенциальных конфликтов транзакций. Это может значительно улучшить состояние работы вашей базы данных и уменьшить количество ненужных перезапусков.

Используя приведённые рекомендации и управляя настройками вашей базы данных, вы сможете обеспечить стабильную и надёжную работу вашего приложения на ASP.NET с использованием Entity Framework. Это, в свою очередь, улучшит пользовательский опыт и снизит риск возникновения потенциальных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...