Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:Azure SQL Database
В активной георепликации геосекундарная реплика постоянно получает и применяет записи журнала транзакций из первичной. Если вторичная реплика не может применять журналы транзакций так быстро, как основной создает их, образуется невыполненная очередь (очередь повтора) и увеличивается временной интервал (лаг повтора). Эта ситуация может повлиять на актуальность данных только для чтения на вторичном сервере и увеличить время переключения.
- Очередь повтора: количество записей журнала транзакций, которые механизм георепликации отправляет вторичному узлу, но еще не применены.
- Задержка повтора: промежуток времени между фиксацией транзакции на основном сервере и завершением воспроизведения на вторичном сервере.
Георепликация асинхронна. Задержка повтора на вторичной реплике не вызывает ожидания на основной реплике, но может привести к тому, что данные на вторичной реплике будут отставать.
Симптомы
- Устаревшие данные на вторичном сервере для рабочих нагрузок, предназначенных только для чтения (отчеты, аналитика или перенаправленные операции чтения).
- Более длительное время переключения на резервный ресурс, которое увеличивает целевое время восстановления (RTO).
- Постоянное давление на ресурсы вторичной системы снижает её способность наверстывать упущенное.
- Убедитесь, что задержка повтора в DMV sys.dm_database_replica_states увеличивается, если
redo_queue_size > 0растет иsecondary_lag_secondsувеличивается.
Почему невыполненная работа переопределений растет
Хотя вторичная база данных доступна только для чтения, она по-прежнему сохраняет журнал транзакций для внутренних операций, включая воспроизведение записей журнала из первичной базы данных. При увеличении очереди перезаписи вторичный сервер должен хранить больше данных журнала транзакций.
Эта ситуация может привести к следующему:
- Рост журнала транзакций на вторичной системе.
- Более высокое потребление хранилища, что может повлиять на затраты и производительность.
- Возможные сценарии регулирования при превышении пороговых значений.
Влияние несоответствия размера реплики
Необходимо настроить основную и георезервную реплику с той же целью обслуживания (SLO), резервным копированием, уровнем вычислений (выделенным или бессерверным) и размером вычислительных ресурсов (DTU или виртуальными ядрами).
Если вы настраиваете базу данных-получатель с меньшим размером вычислительных ресурсов, чем база данных-источник, может возникнуть следующее:
- Состязание ресурсов на вторичных ресурсах (ЦП, ввод-вывод), что замедляет выполнение операций повторного воспроизведения.
- Неспособность следить за скоростью создания журнала транзакций основной системы.
- Увеличение размера очереди повтора, что ухудшает задержку и снижает эффективность репликации.
Рекомендации
Чтобы уменьшить задержку повторного входа и обеспечить работоспособность репликации и эффективное использование журналов в дополнительном объекте:
Выравнивание размера SLO и вычислений. Убедитесь, что резервная база данных имеет такой же уровень эффективности, как первичная.
- Настройте георепликацию: активная георепликация
- Масштабирование одной базы данных: Масштабирование ресурсов одной базы данных в Azure SQL Database
- Масштабирование эластичного пула: Масштабирование ресурсов эластичного пула в Azure SQL Database
- Рекомендации по затратам: Планирование и контроль затрат на Azure SQL Database
Регулярно отслеживайте. Используйте динамические административные представления (DMVs), такие как sys.dm_database_replica_states, для мониторинга задержки перезаписи и размера очереди. Повторная задержка подтверждается, когда
redo_queue_size > 0растет, аsecondary_lag_secondsувеличивается.Оптимизация рабочих нагрузок:
- Уменьшите длительные транзакции на вторичных серверах и снижайте высокие скачки генерации логов на первичном сервере.
- Избегайте перестроения больших индексов во время пиковых периодов. Перестроение может захватывать блокировки изменения схемы (SCH-M), которые могут блокировать поток повтора на вторичном сервере и способствовать накапливанию очереди повторного выполнения.
- Уменьшите длительные транзакции на вторичных серверах и снижайте высокие скачки генерации логов на первичном сервере.