Установка только узла, в ограниченный режим. в экземпляре AOAG - PullRequest
0 голосов
/ 08 января 2019

У меня есть экземпляр AOAG, где клиент имеет доступ к узлу B (только для чтения) для получения отчетов. Время от времени нам приходится помещать базу данных на узле A в ограниченном режиме для применения обновлений или исправлений, что, в свою очередь, устанавливает базу данных на узле B в ограниченном режиме, что приводит к сбою отчетов клиентов. Можно ли установить базы данных узла A только в ограниченном режиме, оставив узел B доступным для клиентов, доступным только для чтения?

1 Ответ

0 голосов
/ 09 января 2019

Время от времени мы должны размещать базу данных на узле А в ограниченный режим для применения обновлений или исправлений, это, в свою очередь, устанавливает база данных на узле B в ограниченном режиме, вызывая клиентов сообщает об ошибке

Это звучит как дизайн базы данных, где вы можете установить флаг для блокировки пользователей из базы данных. Эта транзакция DML естественно будет копироваться на вторичную. Для таких вещей, как задания агента SQL, вы можете условно выполнить задание, если оно является или не является первичной репликой, с помощью sys.fn_hadr_is_paimary_replica, но это не сработает для условного выполнения чего-то вроде оператора UPDATE.

Можно ли установить базы данных узла А только в ограниченном режиме, оставляя узел B доступным для клиентов только для чтения доступ

Да. В идеале вы просто запустите это:

ALTER DATABASE [your_database]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

Но тогда вы получите сообщение об ошибке:

Операция не может быть выполнена в базе данных "your_database", потому что он участвует в сеансе зеркального отображения базы данных или доступности группа. Некоторые операции не разрешены в базе данных, которая участие в сеансе зеркального отображения базы данных или в доступности группа.

Таким образом, некоторые опции:

  • Удалите вторичное устройство из AG, примените исправления, прочитайте вторичное устройство и подождите, пока оно не догонит
  • Восстановите еще одну копию БД на сервере, которую ваши клиенты будут использовать во время простоя
...