Проблемы
Рассмотрим следующий сценарий.
-
Вы используете Microsoft SQL Server 2016, 2014 или 2012.
-
У вас есть база данных, которая входит в группу доступности AlwaysOn.
-
В первичной реплике файлы базы данных сжимаются, чтобы уменьшить их размер.
-
Первичная реплика отправляет все изменения, которые записываются в журнал транзакций, во вторичную реплику.
-
На вторичной реплике потоки повторения применяют изменения из журнала транзакций к базе данных, которая входит в группу доступности.
В этом случае реплика приостанавливается. Кроме того, может появиться сообщение об ошибке, подобное следующему:
<метка времени> spid41s Error: 3456, серьезность: 21, состояние: 1. <отметки времени> spid41s не удалось вернуть запись журнала (#), для идентификатора транзакции (#), на странице (#), базы данных "<dbname>" (идентификатор базы данных #). Страница: LSN = (#), единица распределения = #, тип = #. Журнал: код операции = #, контекст #, PrevPageLSN: (#). Восстановите базу данных из резервной копии или восстановите базу данных. <метка времени> перемещение данных групп доступности spid41s AlwaysOn для базы данных "<dbname>" приостановлено по следующей причине: "System" (идентификатор источника 2; Строка источника: "SUSPEND_FROM_REDO"). Чтобы возобновить движение данных в базе данных, необходимо возобновить базу данных вручную. Сведения о том, как возобновить работу базы данных доступности, можно найти в статье SQL Server Books Online. <метку времени> spid41s Error: 3313, серьезность: 21, состояние: 2. <отметки времени> spid41s во время повторного выполнения зарегистрированной операции в базе данных "<dbname>" произошла ошибка, связанная с ИДЕНТИФИКАТОРом записи журнала (#). Как правило, в службе журнала событий Windows конкретный сбой уже зарегистрирован как ошибка. Восстановите базу данных из полной резервной копии или восстановите базу данных.
Причина
Эта проблема возникает в том случае, если изменения применяются во время повторного выполнения, если ядро СУБД обнаруживает неупорядоченные регистрационные номера LSN на системных страницах (GAM, PFS).
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server:
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Мы рекомендуем вам загрузить и установить последние накопительные обновления для SQL Server.
Обновление препятствует возникновению этой проблемы. Если проблема уже возникла, выполните указанные ниже действия, чтобы повторно присоединиться к группе доступности AlwaysOn.
-
Удаление существующей вторичной реплики AlwaysOn.
-
Чтобы удалить незанятое место из базы данных, выполните следующую команду в уязвимых файлах данных:
DBCC SHRINKFILE(<file_id>, TRUNCATEONLY)
-
Создавайте резервные копии файлов базы данных и журнала.
-
Восстановите базу данных и журналы в дополнительной реплике AlwaysOn.
-
Присоединитесь к группе доступности AlwaysOn.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.