ошибка изоляции моментального снимка при использовании sp_setapprole в реплике группы доступности только для чтения - PullRequest
0 голосов
/ 03 мая 2018

Я исследую группы доступности 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 почти нет информации для меня.

1 Ответ

0 голосов
/ 26 июля 2019

Просто чтобы подвести итог (для тех, кто может столкнуться с подобными проблемами): Это была ошибка 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...