Проблемы
Предположим, что вы используете группу доступности AlwaysOn в Microsoft SQL Server 2012. При изменении доступа к дополнительной реплике с "чтение" на "непрочтенные" на страницах, использующих сжатие страниц в данной реплике, возникает повреждение.Базы данных доступности, которые сталкиваются с этой проблемой во вторичной реплике, не могут быть восстановлены из-за ошибки на этапе повтора синхронизации. Вторичная реплика не будет синхронизироваться с первичной репликой и сообщит о состоянии синхронизации "SUSPEND_FROM_REDO". Кроме того, в журнале ошибок SQL Server, на котором размещена дополнительная реплика, появляются следующие сообщения об ошибках:
<дата> <время> SPID<идентификатор> ошибка: 17066, уровень серьезности: 16, состояние: 1. <дата> <время> spid> <0 ID> утверждения SQL Server: file: <Page. cpp>, Line = 3898 Failed assertion = '! pageFull '. Эта ошибка может быть связана со временем. Если после повторного выполнения инструкции ошибка повторится, используйте DBCC CHECKDB, чтобы проверить базу данных на наличие структурной целостности, или перезапустите сервер, чтобы убедиться в том, что структуры данных в памяти не повреждены. <дата> <время> SPID<идентификатор> ошибка: 3624, уровень серьезности: 20, состояние: 1. ID <Дата> <. Подробности см. в журнале ошибок SQL Server. Как правило, сбой утверждения вызывается из-за ошибки программного обеспечения или повреждения данных. Чтобы проверить, не повреждена ли база данных, попробуйте выполнить команду DBCC CHECKDB. Если вы согласились отправлять дампы в Microsoft во время установки, мини-дамп будет отправлен в корпорацию Майкрософт. Обновление может быть доступно в Microsoft в новейшем пакете обновления или в QFE от службы технической поддержки. <дата> <время> SPID<ID>, перемещение данных групп доступности AlwaysOn для базы данных "<Database Name>" приостановлено по следующей причине: "System" (идентификатор источника 2). Строка источника: "SUSPEND_FROM_REDO"). Чтобы возобновить движение данных в базе данных, необходимо возобновить базу данных вручную. Сведения о том, как возобновить работу с базой данных доступности, можно найти 1786:4978584:74 в статье SQL Server Books Online. <дата> <время> SPID<идентификатор> ошибка: 3313, серьезность: 21, состояние: 2. <Дата> <время> Код SPID> <0 идентификатора> при выполнении операции, записанной в базу данных. <> имя базы данных Как правило, в службе журнала событий Windows конкретный сбой уже зарегистрирован как ошибка. Восстановите базу данных из полной резервной копии или восстановите базу данных. <дата> <время> SPID<ID> параметр "возобновить базу данных": Resume<Date> <время> SPID> <0 ID> AlwaysOn перемещение данных групп доступности для базы данных "<имя базы данных>" возобновлено. Это информационное сообщение. Действия пользователя не требуются. дата <> <время> SPID<идентификатора> Неуточненные транзакции откатываются в базу данных <имя базы данных> для изменения состояния групп доступности AlwaysOn. Предполагаемое завершение отката: 100%. Это информационное сообщение. Никаких действий не требуется. <дата> <время> SPID<ID> подключение к группам доступности AlwaysOn с базой данных в базе данных, которая была удалена, в реплике доступности с помощью идентификатора реплики "<имя базы данных>". Это информационное сообщение. Действий от пользователя не требуется. <дата> <время> SPID<идентификатор> запуск базы данных "<имя базы данных>". <Дата> <время> SPID> <2 ID> восстановление базы данных "<781 " Этап 1 из 3. Это информационное сообщение. Действия пользователя не требуются.................
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Накопительное обновление 6 для SQL server 2012 с пакетом обновления 2 (SP2 ), накопительное обновление 16 для SQL Server 2012 SP1
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Дополнительная информация
Описанные выше проблемы могут возникать при изменении доступа на чтение для дополнительной реплики. Вы можете настроить доступ для чтения баз данных доступности во вторичной реплике с помощью следующих двух методов:
-
Настройка доступа на чтение с помощью команды "изменить группу доступности".
ALTER AVAILABILITY GROUP [AGName]MODIFY REPLICA ON N'<SRV>' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = NO))
-
Настройте доступ на чтение, изменив параметры в обозревателе объектов среды SQL Server Management Studio (SSMS):
-
Подключитесь к серверу, а затем откройте папку Доступность AlwaysOn.
-
Откройте папку группы доступности.
-
Щелкните группу доступности правой кнопкой мыши и выберите пункт Свойства.
-
Измените для вспомогательной реплики вторичное свойство для прочтения, азатем нажмите кнопку ОК.
-
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".