Зеркалирование базы данных – это функция высокой доступности в SQL Server, которая обеспечивает избыточность и возможности аварийного восстановления для ваших баз данных. В случае сбоя, такого как отключение питания или отказ оборудования, зеркалирование базы данных позволяет автоматически или вручную переключиться на вторичный сервер, обеспечивая минимальное время простоя и потерю данных.
Когда происходит переключение на вторичный сервер в зеркалировании базы данных, за кулисами происходит несколько событий, чтобы обеспечить плавный переход на вторичный сервер. Давайте ближе рассмотрим эти события:
1. Происходит переключение
Переключение происходит, когда основная база данных становится недоступной. Это может быть вызвано различными причинами, такими как отключение питания, сбой сети, сбой хранения или отказ оборудования.
2. Обнаружение сбоя
Сбой обнаруживается свидетелем и зеркальным сервером. Тайм-аут по умолчанию для связи между основной, зеркальной и свидетельской базами данных составляет около 10 секунд. Если свидетель не получает ответа от основной базы данных в течение этого времени ожидания, он считается недоступным. Важно настроить тайм-аут осторожно, чтобы избежать ложных переключений.
3. Фаза восстановления
Во время фазы восстановления зеркальный сервер применяет все транзакции из очереди восстановления, чтобы полностью восстановить базу данных. База данных находится в режиме восстановления во время этой фазы.
4. Принятие решения
Зеркальный сервер сотрудничает со свидетелем и принимает решение о переключении на зеркальный сервер. Это решение обычно занимает около 1 секунды для подтверждения. Если основной сервер возвращается до завершения фазы восстановления, переключение не требуется.
5. Зеркало принимает роль основного сервера
После переключения зеркальный сервер принимает роль основного сервера и делает свою базу данных онлайн. Клиенты теперь подключаются к новому основному серверу.
6. Фаза отмены
Если в журнале транзакций есть незавершенные транзакции, они откатываются во время фазы отмены.
Процесс ручного переключения включает в себя эти события, начиная с переключения и заканчивая тем, что зеркальный сервер принимает роль основного сервера и обслуживает свою базу данных клиентам. Однако фаза восстановления играет важную роль в этом сценарии.
Чтобы оценить время, необходимое для применения журналов в очереди восстановления зеркальной базы данных, вы можете отслеживать очередь восстановления (в КБ) и байты восстановления/сек с помощью системных мониторов. Разделив очередь восстановления (в КБ) на байты восстановления/сек, вы можете получить оценку времени, необходимого для фазы восстановления. Другой вариант – отслеживать событие изменения состояния зеркалирования базы данных с помощью SQL-трассировки на основном и зеркальном серверах. Столбцы Start time и Text data предоставляют ценную информацию о процессе переключения.
Понимание событий, которые происходят в фоновом режиме при переключении в зеркалировании базы данных, поможет вам лучше управлять и устранять неполадки в вашей среде SQL Server. Реализуя зеркалирование базы данных и зная процесс переключения, вы можете обеспечить высокую доступность и минимизировать время простоя для ваших критических баз данных.
Мы надеемся, что этот статья помогла вам ясно понять события, которые происходят в фоновом режиме при переключении в зеркалировании базы данных.