В первой части этой серии статей мы узнали об основных двух процессах, из которых состоит сканирование онлайнового обслуживания баз данных, это процессы контрольного суммирования и обнуления страниц баз данных. Затем мы более подробно рассмотрели процесс контрольного суммирования, что он собой представляет, как он работает, как включить его, а также рассмотрели информацию журналов регистрации событий, которую он производит, чтобы можно было отслеживать его прогресс.
В этой второй и заключительной части мы рассмотрим ту же информацию о процессе обнуления страниц баз данных, а в конце затронем некоторую информацию производительности, связанную с этими процессами. Итак, давайте продолжим и посмотрим, что предлагает нам процесс обнуления страниц баз данных (БД), и как его включать, если это необходимо.
Обнуление страниц баз данных (БД)
Функция обнуления страниц БД присутствовала и в предыдущих версиях Exchange, и, возможно, вы сталкивались с ней, когда работали с Exchange еще до того, как Exchange 2007 был выпущен. Обнуление страниц представляет собой дополнительную функцию безопасности, которую можно использовать, чтобы сделать данные БД Exchange невозвратимыми, или, как говорят представители компании Microsoft, «данные невозвратимы конвенциональным способом». Это осуществляется путем переписывания неиспользуемых страниц баз данных нулями. Что подразумевается под неиспользуемыми страницами? Это страницы, которые ранее содержали данные, но эти данные теперь удалены, как в случае, когда пользователь удаляет ненужные сообщения из своего почтового ящика. Конечно, эти страницы БД не будут отмечены, как неиспользуемые до тех пор, пока не пройдут дополнительные сроки сохранности, как в случае с сроком сохранности удаленных объектов, который позволяет пользователям восстанавливать сообщения, которые они прежде удалили. Общеизвестно, что функция обнуления БД, как правило, используется только в тех организациях, которые нуждаются в более высоком уровне безопасности своей почтовой инфраструктуры, но если вы решили, что эта функция подходит для вашей организации, то продолжайте читать.
Хотя функция обнуления БД была доступна в RTM версии Exchange 2007, в версии SP1 теперь можно выполнять обнуление страниц во время онлайнового обслуживания. Вы можете поинтересоваться, почему это так важно. Если вы прочитали первую часть этой серии статей, то возможно вы помните, что процесс контрольного суммирования баз данных имел определенные проблемы, когда использовался совместно с такими технологиями непрерывной репликации, как Clustered Continuous Replication (CCR) в Exchange 2007 RTM. Функция обнуления БД также имеет определенные ограничения, когда используется с такими технологиями высокой доступности, как локальная непрерывная репликация (Local Continuous Replication – LCR) или CCR в инфраструктуре Exchange 2007 RTM. Проблема заключается в том, что изменения обнуления, сделанные на активной копии БД, не копируются на пассивную базу данных, используемую с LCR или CCR. Чтобы разрешить эту проблему, организациям приходилось либо отключать базы данных и вручную запускать утилиту ESEUTIL, или выполнять потоковое резервное копирование активной и пассивной копии БД. Как и в случае с контрольным суммированием, эти варианты далеки от совершенства. Для решения этой проблемы компания Microsoft сделала в Exchange 2007 SP1 так, что изменения могут копироваться с помощью технологий непрерывной репликации. Также при использовании LCR или CCR совместно с Volume Shadow Copy Service (VSS) резервными копиями процесс обнуления не мог применяться в Exchange 2007 RTM, поскольку он подходит только для потоковых резервных копий. Сделав процесс обнуления страниц частью онлайнового обслуживания, проблема была разрешена.
Включение обнуления страниц БД
Включение функции обнуления страниц БД, так же как и функции контрольного суммирования БД, требует внесения изменений в системный реестр, поскольку это опциональная функция. Этот подключ реестра не будет существовать по умолчанию на сервере Exchange 2007, поэтому его необходимо создать. Нужно внести следующее изменение:
Ключ: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem Имя: Zero Database Changes During Checksum Тип: DWORD Значение: 1
Фотография того, как должно выглядеть значение системного реестра, показана на рисунке 8. Как и в случае с ключом реестра контрольного суммирования, когда вы осуществили изменения реестра, вам нужно перезапустить службу Microsoft Exchange Information Store, чтобы изменения вступили в силу.
Увеличить
Рисунок 8: Ключ реестра для обнуления страниц БД
Записи журнала регистрации событий
Есть новые записи в логах, которые помогут вам обследовать прогресс функции обнуления страниц БД, как и в случае с контрольным суммированием. Сначала, когда процесс обнуления страниц запускается, регистрируется следующее событие:
Source: ESECategory: Online DefragmentationEvent ID: 718Description: Online maintenance is starting the database page zeroing background task for database <database name>.
Пример этого события показан на рисунке 9.
Рисунок 9: Событие 718
Когда процесс завершен, регистрируется следующее событие:
Source: ESECategory: Online DefragmentationEvent ID: 722
Description: Online maintenance database zeroing background task has completed for database <database name>. This pass started on <DATE> and ran for a total of <N> seconds, requiring <N> invocations over <N> days.
Поле описания продолжает предоставлять вам аннотацию работы, которая включает такую ключевую информацию, как количество прочитанных и обнуленных страниц. Пример такого события показан на рисунке 10. Обратите внимание, что я пролистал поле описания вниз, чтобы показать вам аннотацию работы полностью.
Рисунок 10: Событие 722
Два других события, с которыми вы можете столкнуться в журнале обнуления страниц, это событие 724, которое регистрируется в случае обнаружения ошибок во время процесса, и событие 729, которое регистрируется, когда процесс был приостановлен.
Воздействие на производительность
Как я говорил в первой части этой серии статей, нужно время, чтобы осознать воздействие на производительность при включении функции обнуления страниц, прежде чем применять ее. Если говорить конкретно, вы должны осознать, что применение этой функции на существующую большую базу данных, которая использовалась на протяжении некоторого времени, может отрицательно сказаться на производительности сервера. Это может быть следствием наличия большого количества неиспользованных страниц, которые необходимо обнулить, для чего, конечно же, потребуется определенное время и усилия, в результате значительно повысится обмен данными на диске. Гораздо разумнее будет включить функцию обнуления страниц, когда создается новая БД, поскольку усилия на обнуление всех неиспользуемых страниц будут значительно меньше. Этот процесс также может удвоить (а то и утроить) журнал регистрации транзакций, пока первый запуск будет доведен до конца. Конечно, когда первый запуск процесса будет завершен, все вернется в норму относительно генерирования логов транзакций.
Как говорится в информации, представленной компанией Microsoft на форуме TechEd IT в ноябре 2007, использование обнуления страниц привело к незначительному увеличению показателей счетчика % Временного процессора, а показания счетчика RPC Averaged Latency увеличились приблизительно на 20мс. Таким образом, обнуление страниц БД лучше использовать в то время, когда ваши пользователи менее всего пользуются почтовой инфраструктурой.
Как и в случае с контрольным суммированием, компания Microsoft предоставляет счетчики производительности для мониторинга процесса обнуления страниц БД. Это счетчики:
- MSExchangeDatabase\Online Maintenance (DB Scan) Pages Read/sec
- MSExchangeDatabase==>Instances\Online Maintenance (DB Scan) Pages Read/sec
Чтобы видеть эти счетчики, опять же, нужно включить расширенные счетчики производительности Extensible Storage Engine (ESE), как это делалось для процесса контрольного суммирования. Для подробного описания того, как это сделать, обратитесь к первой части этой серии статей.
Резюме
В двух частях этой серии статей мы рассмотрели процессы контрольного суммирования и обнуления страниц БД, подробно разбирая, что собой представляют эти процессы и как их включить в качестве части онлайнового обслуживания. В то время как процесс контрольного суммирования БД может быть очень полезным дополнением онлайнового обслуживания, процесс обнуления страниц БД может подойти не для всех организаций.