Журналы транзакция – это основной компонент Exchange-сервера, который важен для его надлежащей работы. Данная статья призвана помочь вам понять, что это такое и как ими управлять.
Одним из наиболее важных компонентов Exchange-сервера являются журналы транзакций. Exchange-сервер был разработан для записи всех транзакций в эти файлы журналов и выполнять изменения баз данных при разрешении системы. Пользователи могут получать и отправлять сообщения без участия базы данных благодаря данному методу предварительной записи в журналы.
При отправке сообщения транзакция сначала записывается в журнал. Пока транзакция не передалась в базу данных Exchange (Exchange database — EDB), эти данные существуют только в системной памяти и журналах транзакций. В случае аварии вы теряете содержимое памяти, и все, что у вас остается, это записи в журнале транзакций. Эти журналы важны для восстановления поврежденного Exchange-сервера, в независимости от того, небольшая это ошибка, исправляемая перезагрузкой, или более серьезная, требующая разработки плана по восстановлению. То же самое касается и других транзакций: полученных сообщений, удаленных элементов и сообщений, перемещенных в другие папки.
Поэтому рекомендуется хранить файлы транзакций на системе избыточного хранения данных, как, например, массив RAID 1, чтобы в случае отказа аппаратного обеспечения данные не пропали. Потеря набора журналов транзакций не повлияет на восстановление из резервной копии, но вы потеряете все сообщения и изменения, произведенные с момента последнего резервного копирования.
При запуске Exchange-сервера запускается служба Microsoft Information Store (Store.exe). ESE проверяет базы данных для определения статуса совместимости. Данная информация хранится с отметкой в заголовке базы данных и определяет, было ли завершение работы хранилища произведено должным образом (совместимо) или же в журналах транзакций есть незавершенные транзакции. Если вы хотите определить статус совместимости базы данных, используйте приложение ESEUTIL и добавьте к нему переключатель /MH, который и проверить заголовок базы данных и выдаст отчет о статусе.
C:\Program Files\Exchsrvr\bin\eseutil /mh “Путь\к\файлу.edb”
При запуске этой команды вы увидите важную информацию о статусе базы данных (Рисунок 1), а также информацию и статусе резервной копии (Рисунок 2).
Рисунок 1: Статус базы данных
Рисунок 2: Время создания резервной копии базы данных
Если ESE определит любую несовместимость, начнется выполнение так называемого легкого восстановления. При легком восстановлении журналы транзакций проверяются для определения незанесенной в базу данных транзакции. При наличии нескольких баз данных в одной группе хранилища процесс усложняется. Все базы данных в группе используют одни и те же журналы транзакций, и может быть, что базы данных находятся в разных статусах. К счастью для администраторов, ESE управляет всем этим в фоновом режиме без необходимости малейшего вмешательства.
Открыть журнал транзакций для просмотра можно в любом текстовом редактора, таком как Блокнот или WordPad, но в них не так много понятного текста. Большинство информации журнала – это сочетание двоичных и непечтающихся символов (Рисунок 3).
Рисунок 3: Просмотр журнала транзакций
Не много можно понять, но это не значит, что просмотр журнала транзакций – бесполезное занятие, поскольку в нем все-таки можно найти полезную информацию. Если просмотреть файл, вы увидите информацию заголовка (Рисунок 4) и данные, но поскольку размер журнала ограничен 5МБ, данные могут закончиться в другом журнале транзакций. Для примера, скажем, что пользователь отослал файл Excel размером 6 МБ; первые 500КБ могут записаться в журнал транзакций, заполнить его и дать команду на создание нового журнала. Следующий журнал может быть заполнен следующими 5МБ файла Excel, а остальные данные попадут в третий журнал транзакций.
Рисунок 4: Заголовки сообщения
Вместе с информацией заголовков вы увидите и время создания журнала, а также уникальную подпись, сопоставляющую журнал транзакций с базой данных. Эта подпись важна, поскольку она гарантирует, что транзакции попадут в нужную базу данных. Если вы попытаетесь провести транзакции в другую базу данных, результат может быть катастрофическим.
Для выгрузки информации заголовка журнала мы используем ту же самую утилиту ESEUTIL, которую мы использовали для просмотра статуса базы данных, но теперь с переключателем /ML.
C:\Program Files\Exchsrvr\bin\eseutil /ml “Путь\к\журналу.log”
Запуск этой команду выдаст заголовок журнала транзакций, и мы сможем узнать важную информацию. Посмотрим на первую половину выгрузки (Рисунок 5) и на значение этих данных, а затем взглянем на вторую половину.
Рисунок 5: Заголовок журнала
Начиная с самого начала, мы увидим:
Обратите внимание на разницу между значениями Creation time и Prev gen time. В нашем примере разница во времени равна 49 минутам 37 секундам, что говорит нам о невысокой загрузке сервера. Если показания времени не намного отличаются друг от друга, это значит, что сервер загружен.
Вторая половина файла (Рисунок 6) содержит информацию о базе данных. Каждая группа хранилища обладает собственными журналами транзакций, и в каждую группу хранения входит несколько баз данных. Данная часть журнала определяет, к какой базе данных принадлежит этот журнал.
Рисунок 6: Привязки к базам данных
Для управления журналами транзакций и Exchange-сервером следуйте следующим советам:
Источник http://www.msexchange.org