Изменения схемы «нарушают» группы доступности или они обрабатываются прозрачно?


11

Моя организация планирует принять группы доступности SQL Server 2012, и я пытаюсь понять, как это повлияет (если таковые имеются) на процесс обновления нашего приложения.

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

Я пытаюсь понять, является ли решение HA / DR прозрачно обрабатывает изменения схемы (новые столбцы, индексы добавляются во вторичные) или требуется ручное вмешательство для создания схемы в каждом экземпляре, а затем снова включить Always On.

Я предполагаю, что часть переноса данных обрабатывается прозрачно, но я также хотел бы подтвердить это.

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

В двух словах; В любом выпуске моего приложения я могу изменить очень большую таблицу (от 10 до 100 миллионов записей), добавив в нее столбцы. Некоторые столбцы могут быть «совершенно новыми», поэтому они могут использовать функцию изменения схемы Enterprise Online. Другие столбцы могут быть рефакторингом существующего столбца (FullName разделяется на FirstName и LastName), и для каждой строки таблицы будет выполняться миграция для заполнения этих полей. Требует ли какой-либо из этих вариантов поведения администраторы баз данных для изменения конфигурации AlwaysOn, или это обрабатывается по умолчанию, и все вторичные серверы получают операторы DDL и DML «бесплатно»?

Спасибо за любую ясность, которую вы можете предоставить.


Более подробная информация здесь от Remus, dba.stackexchange.com/questions/179402/...

Ответы:


9

Изменения схемы и изменения данных по сути одинаковы. Сегодня это работает как традиционное зеркалирование: то, что произошло в журнале на первичном сервере, происходит на вторичном. Не все, что происходит в Вегасе, должно оставаться в Вегасе. :-)

Вы можете быть осторожны, когда у вас есть приложение, которое указывает на основное, и вы обновляете его, чтобы соответствовать изменениям схемы. Но у вас может быть другое приложение, которое указывает на вторичное устройство (например, с намерением только для чтения), и это изменение приложения также должно быть синхронизировано.

Другая потенциальная ошибка - когда ваша база данных, которая является частью группы доступности, имеет ссылки на объекты в других базах данных (например, статическая таблица поиска, которая хранится в базе данных утилит). Если они меняются, и AG зависит от этих объектов, вам нужно будет нажать эти изменения вручную. То же самое верно для заданий, входов в систему на уровне сервера, связанных серверов и т. Д. - всего, что находится за пределами базы данных и / или не поддерживает транзакции. Пользователи базы данных могут стать осиротевшими (содержащиеся в стороне пользователи). Я знаю, что это, вероятно, очевидно, но хотел бы перечислить это явно для полноты.


Содержащие логины должны переноситься с базой данных, правильно? (Я полагаю, вы имели в виду серверные логины.)
Джон Зигель

1
@JonSeigel содержал пользователей, да. Нет такой вещи, как содержащиеся логины. Не привередливый, просто хочу убедиться, что ожидание правильное. Конечно, для этого необходимо, чтобы на всех узлах была включена аутентификация базы данных, и для баз данных фактически задано значение CONTAINMENT = PARTIAL.
Аарон Бертран

Ах, теперь я вижу . Спасибо, я не очень много работал с новыми вкусностями 2012 года.
Джон Зигель

@JonSeigel Я обновил ответ, чтобы вызвать их явно.
Аарон Бертран

Спасибо Аарон. Были высказаны некоторые опасения по поводу изменений схемы, нарушающих репликацию, и я хотел подтвердить, что AlwaysOn (зеркальное отображение, как вы описали) не демонстрирует такого поведения. Я предполагаю, что это недоразумение или связано конкретно с репликацией.
Мэтт О'Брайен

0

Больше ответов здесь от Remus, пользователи просят, возможно, удалить запросы к вторичной реплике и проверить состояние размера очереди повторов в таблице: sys.dm_hadr_database_replica_states AlwaysOn DDL и изменения схемы

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.