|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Всем привет! Подскажите пожалуйста как правильно диагностировать и решить следующую проблему. Есть два сервера с одинаковым железом, первичная и вторичная реплики в группе AlwaysOn с синхронной фиксацией. На серверах крутится две БД примерно равные по объёму каждая по 600ГБ. Ночью выполняются задачи по оптимизации БД, это удаление старых данных и перестроение индексов. После таких оптимизаций она БД сильно отстаёт, очередь не зафиксированных транзакций после 7 часов работы может составлять порядка 150ГБ при всём при том, что вторая БД полностью синхронизирована. В БД которая сильно отстаёт много данных удаляется и вставляется в процессе оптимизаций. Общее количество вставленных и удалённых строк порядка 500-700 млн. Планы обслуживания у БД одинаковые. Базы лежат на одном и том же дисковом массиве, логи лежат на другом дисковом массиве, но тоже вместе, поэтому я не могу сказать, что дело в дисковой подсистеме. DBCC CHECKDB ошибок не показывает. На обеих базах настроена доставка журналов (Log shiping) на третий сервер. Во время ночных оптимизаций, я вижу, что размеры бэкапов логов транзакций, для передачи на третий сервер, примерно одинаковые по размеру. Это говорит о том, что размер изменений примерно одинаковый. Задержку сети тоже исключаю т.е. БД лежат на одних и тех же серверах. Скорее всего вопрос в каких-то блокировках которые мешают быстрой фиксации. Версия SQL Sever 2017 CU 14 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 10:37 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Mandarin, Переключайтесь на асинхронную фиксацию в момент перестроения индексов ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 10:53 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Alexander Titkin, Спасибо за совет. Попробую. Я забыл написать в первом топике, то что это началось относительно недавно, дней 7 назад, до этого такой проблем не было. Изменений в конфигурации и планах обслуживания не было. Что ещё можно проверить, как вы думаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 11:00 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Mandarin, Задержки можно проверить, например, запросом, который выполняется на первичной реплике: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Создайте джоб, который будет записывать результат в таблицу с каким-то интервалом. Или можете записать аналогичные счетчики производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 11:15 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Alexander Titkin Mandarin, Переключайтесь на асинхронную фиксацию в момент перестроения индексов Если я правильно понял документацию на тему "Синхронный/Ассинхронный режимы фиксации", то что вы предложили менять на ассинхронный режим, не повлияет на ситуацию, потому как транзакция на первичной реплике завершилась, данные передались на вторичную реплику. Реплики соединены напрямую сетевым кабелем, скорость между ними 20 ГБ/сек. А если данные передались то уже какая разница какой тип фиксации? Вопрос в том как быстро переданные данные восстанавливаются на вторичной реплике. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 11:23 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Владислав Колосов Mandarin, Задержки можно проверить, например, запросом, который выполняется на первичной реплике: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Создайте джоб, который будет записывать результат в таблицу с каким-то интервалом. Или можете записать аналогичные счетчики производительности. Спасибо. Какие выводы можно сделать из полученных цифр? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 11:24 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Mandarin, можно проверить достаточность скорости канала передачи данных и скорости дисков на вторичной реплике. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 16:56 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Если тормозит REDO, на это может влиять очень много факторов. Например, вы могли включить CDC, QS или началась популяция FT... Но первым делом, посмотрите, оптимально ли у вас настроено обслуживание. Например, многие до сих пор продолжают ребилдить все индексы, хотя базы уже на SSD или обновление статистики тупо настроено с фулсканом... Оптимизировав это вы можете сильно облегчить жизнь синхронизации реплик. Кстати, вполне возможно, что очередной деплой привёл к увеличению фрагментации или статистика стала быстрее протухать из-за изменившегося характера данных (тут подобного можно ещё много нафантазировать). Если "копать железо", то тут тоже многое может повлиять, например, выросла нагрузка на дисковый контроллер, и его кеш перестал справляться. На дешёвых контроллерах мы иногда ставили страйп в 64Кб, что бы нивелировать проседание REDO. Чисто логически, тоже можно найти причины. Например, выросло число обращений к репликам на чтение. Не всегда это бывает безобидно, особенно с явными транзакциями... тоже может тормозить процесс REDO. Сомневаюсь, что ваши политики DR пзволяют отказаться совсем от синхронного режима и автоматического перехода при отказе. Но можно синхронной оставить только одну реплику, а остальные сделать асинхронными, да ещ включить там trace flag 1448. Здорово будет, если удастся выполнить все условия для многопоточного REDO. А то бывает, добрые люди решают включить оптимзированные в памяти таблицы или версионность побаловаться, а потом незнаю, что делать с REDO и фантомными строками... В общем, вопрос не такой простой для решения.... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 11:38 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Александр Гладченко, Большое спасибо за развёрнутый ответ! Из всего что вы сказали, пока понятно только то, что нужно поменять политику перестроения индексов :) Базы лежат на SSD и индексы постоянно перестраиваются. Как определить когда нужно перестраивать, а когда реорганизовать индекс, если база лежит на ssd? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2020, 09:40 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Реиндексация нужна только для устранения фантомных строк. Всё остальное бессмысленно на SSD. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2020, 11:48 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Александр Гладченко, А откуда они берутся и как с ними бороться? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2020, 12:21 |
|
Медленная фиксация на вторичной реплике в группе доступности AlwaysOn
|
|||
---|---|---|---|
#18+
Если я не ошибаюсь фантомные записи удаляются в фоне, как это связанно с перестроением индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2020, 12:37 |
|
|
start [/forum/topic.php?fid=46&msg=39947947&tid=1686211]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 287ms |
total: | 432ms |
0 / 0 |