Ошибка изоляции моментального снимка с использованием sp_setapprole в реплике группы доступности только для чтения

Я исследую группы доступности SQL Server Always On и столкнулся с проблемой при установке роли приложения в базе данных реплики только для чтения. Что меня действительно раздражает, так это поведение, и я не знаю, как интерпретировать сообщение об ошибке.

Все, что я делаю, это звоню

DECLARE @cookie varbinary(8000);

EXEC sys.sp_setapprole
    @rolename = 'TestRole', -- sysname
    @password = 'password', -- sysname
    @fCreateCookie = 1, -- bit
    @cookie = @cookie OUTPUT; -- varbinary(8000)

EXEC sys.sp_unsetapprole @cookie = @cookie; -- varbinary(8000)

который отлично работает с первой попытки. На второй и всех следующих попытках я получаю следующую ошибку:

Сообщение 3961, уровень 16, состояние 1, процедура sp_setapprole, строка 44 [Строка пакетного запуска 25] Сбой транзакции изоляции моментального снимка в базе данных AGTest, поскольку объект, к которому обращается оператор, был изменен оператором DDL в другой параллельной транзакции с момента запуска этой транзакции. Это запрещено, потому что метаданные не являются версионными. Одновременное обновление метаданных может привести к несогласованности при смешивании с изоляцией моментальных снимков.

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

Я протестировал разные настройки уровня изоляции (хотя я не хотел бы менять его для более поздней производительной базы данных), но это не сработало. В настоящее время у меня нет дальнейшего подхода к проблеме, и у Google почти нет информации для меня.

0 ответов

Подводя итог (для тех, кто может столкнуться с подобными проблемами): это был SQL Serverошибка, которая была исправлена ​​Microsoft после того, как я отправил запрос в службу поддержки (SP2 CU4). К сожалению, исправление, похоже, доступно только для SQL Server 2016, 2017 не унаследовало его - я надеюсь, что оно будет частью 2019 года, иначе мне придется создать новое обращение в службу поддержки.

https://support.microsoft.com/en-us/help/4469908/error-3961-when-you-use-application-roles-read-only-secondary-replicas

Другие вопросы по тегам