Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Во время переключения ролей интервал времени, в течение которого зеркальное отображение базы данных не будет обслуживаться, зависит от типа переключения ролей и его причины.
При автоматическом переключении при отказе на время прерывания работы службы влияют два фактора: время, необходимое зеркальному серверу для распознавания сбоя основного экземпляра сервера, то есть время обнаружения ошибки, а также время, необходимое для переключения базы данных, то есть время переключения при отказе.
При принудительном режиме обслуживания, хотя сбой уже произошел, его обнаружение и реагирование на него зависят от оперативности реакции человека. Однако оценка потенциального прерывания обслуживания ограничена оценкой времени зеркального сервера для переключения ролей после того, как команда принудительного обслуживания выполнена.
Примечание.
Чтобы сократить время, требуемое для обнаружения специальных условий, например некоторых типов ошибок, необходимо определить предупреждения для этих условий.
При ручном аварийном переключении учитывается только время, необходимое для переключения базы данных после подачи команды аварийного переключения.
Определение ошибки
Время, за которое система заметит ошибку, зависит от типа ошибки. Например, сетевая ошибка будет замечена практически сразу, а определение того, что сервер не отвечает на запросы, занимает 10 секунд (время ожидания по умолчанию).
Дополнительные сведения об ошибках, которые могут вызвать сбой во время сеанса зеркального отображения базы данных, а также об обнаружении тайм-аута в режиме высокой безопасности с автоматическим переключением при отказе см. в статье Возможные неполадки при зеркальном отображении базы данных.
Время переключения на резерв
Время переключения при отказе в основном складывается из времени, которое требуется бывшему зеркальному серверу для применения записей журнала, оставшихся в его очереди повторного выполнения, а также небольшого дополнительного времени (дополнительные сведения о том, как зеркальный сервер обрабатывает записи журнала, см. в разделе Зеркальное отображение базы данных (SQL Server)). Сведения об оценке времени отработки отказа см. в статье «Оценка частоты повторов при отработке отказа» далее в этом подразделе.
Внимание
Если переключение при отказе происходит во время транзакции, в ходе которой были созданы, а затем изменены индекс или таблица, такое переключение может занять больше времени, чем обычно. Например, переключение при отказе во время следующей последовательности операций может увеличить время переключения при отказе: BEGIN TRANSACTION, CREATE INDEX в таблице и SELECT INTO в таблице. Возможность увеличения времени переключения при отказе во время такой транзакции сохраняется до тех пор, пока она не будет завершена инструкцией COMMIT TRANSACTION или ROLLBACK TRANSACTION.
Очередь повторов
Перемотка базы данных вперёд включает применение всех записей журнала, которые в данный момент находятся в очереди повторного выполнения на зеркальном сервере. Очередь повторного выполнения состоит из записей журнала, записанных на диск на зеркальном сервере, но еще не примененных к зеркальной базе данных.
Время переключения при отказе для базы данных зависит от того, насколько быстро зеркальный сервер может применить журнал из очереди повтора, что, в свою очередь, определяется главным образом аппаратными ресурсами системы и текущей нагрузкой. Теоретически, основная база данных может стать настолько загруженной, что основный сервер будет доставлять журналы на зеркальный сервер быстрее, чем тот сможет выполнять накат. В этой ситуации переключение при отказе может занять значительное время, пока зеркальный сервер применяет записи журнала из очереди REDO. Чтобы узнать текущий размер очереди повторного выполнения, используйте счетчик Очередь повторного выполнения в объекте производительности «Зеркальное отображение базы данных». Дополнительные сведения см. в статье SQL Server, Database Mirroring Object.
Оценка частоты повторов при отработке отказа
Количество времени, необходимое для наката записей журнала (частота повторов), можно оценить с помощью тестовой копии рабочей базы данных.
Метод оценки времени наката во время переключения при отказе зависит от числа потоков, которые зеркальный сервер использует на фазе повторного выполнения. Количество потоков зависит от следующих факторов:
В выпуске SQL Server Standard зеркальный сервер всегда использует один поток для переката базы данных.
В выпуске SQL Server Enterprise зеркальные серверы на компьютерах с менее чем пятью ЦП также используют только один поток. При наличии пяти или более процессоров зеркальный сервер распределяет операции повторного выполнения между несколькими потоками при переключении на резервный сервер (это называется параллельным повторным выполнением). Параллельные повторы оптимизированы для использования одного потока на каждые четыре процессора.
Оценка скорости redo в однопоточном режиме
При использовании однопоточных повторов накат зеркальной базы данных во время отработки отказа занимает примерно столько же времени, как при восстановлении резервной копии журнала для наката такого же объема записей. Чтобы оценить время переключения при отказе, создайте тестовую базу данных в среде, в которой вы планируете использовать зеркалирование. Затем возьмите резервные копии журналов из рабочей базы данных. Чтобы измерить скорость повтора для этой резервной копии журнала транзакций, засеките, сколько времени потребуется на восстановление этой резервной копии журнала в тестовую базу данных с параметром WITH NORECOVERY.
Зная частоту повторов зеркального сервера, можно оценить время, которое понадобится для перехода на другую базу данных в заданный момент времени, разделив объем текущих журналов на зеркальном сервере (этот объем можно измерить с помощью счетчика производительности Очередь повтора ) на частоту повторов. В нормальных условиях, если зеркальный сервер успевает обрабатывать нагрузку, поступающую от основного сервера, очередь повтора мала или близка к нулю, а переключение при отказе занимает всего несколько секунд.
Оценка частоты параллельных повторов
В редакции SQL Server Enterprise параллельная операция повтора оптимизирована для использования одного потока на каждые четыре ЦП. Чтобы оценить время наката параллельных повторов, лучше использовать работающую тестовую систему, а не тестовую базу данных. При наблюдении за очередью повторного выполнения на зеркальном сервере увеличьте нагрузку на главный сервер. При нормальной работе очередь повторного выполнения близка к нулю. Увеличьте нагрузку на основной сервер, пока очередь повтора не начнет постоянно расти; система будет находиться на пике частоты повторов, а счетчик производительности Повтор байты/с в этот момент будет показывать максимальное значение частоты повторов. Дополнительные сведения см. в статье SQL Server, Database Mirroring Object.
Оценка прерывания обслуживания при автоматическом переключении при отказе
На следующем рисунке показано, как время обнаружения ошибки и время переключения при отказе влияют на общее время, необходимое для завершения автоматического переключения на сервер Partner_B. Переключение при отказе требует времени на восстановление базы данных на этапе REDO, а также немного времени, чтобы вернуть базу данных в онлайн-режим. Стадия отката, когда выполняются откаты всех незафиксированных транзакций, происходит после того, как новая основная база данных переходит в режим в сети и продолжает работу после перехода. База данных доступна на этапе отката.
См. также
Режимы работы зеркального отображения базы данных
Переключение ролей во время сеанса зеркального отображения базы данных (SQL Server)
Наблюдение за зеркальным отображением базы данных (SQL Server)