Ручное удаление логов транзакций
Ручное удаление логов транзакций на мой взгляд не самая правильная практика т.к. резервное копирование это основной метод, после его успешного завершения происходит подрезка логов.
В случае если обстоятельства сложились таким образом что бэкап сделать невозможно, или можно но уже поздно.
Ситуация перешла в стадию критической можно «раскинуть мозгами» и вспомнить что можно было сделать что бы этого не было.
Традиционные советы:
- использовать резервное копирование (вовремя…)
- переместить логи на другой диск (необходимо хоть иногда смотреть что происходит со свободным местом)
- размонтирование баз и удаление логов руками.
т.к. речь шла о ручном удалении рассмотрим пункт №3
1. если базы еще функционируют то размонтируем их
2. с помощью ESEUTIL /MH <путь к файлу базы данных> убеждаемся что база корректно закрыта
Clean Shutdown (чистое отключение) – база данных отключена нормально т.е. не выполненнные транзакции переданы в базу данных и в лог файлах нет необходимости
Dirty Shutdown (грязное отключение) – база была отключена некорректно т.е. потребуются некоторые лог файлы, без них хранилище не будет смонтировано.
3. с помощью ESEUTIL /MK <путь к файлу базы данных> смотрим последний сброшенный лог
eseutil /mk "D:\SG1\MailDatabase01\E00.chk" | find " Checkpoint:" <0xF,208,E2>
В нашем случае префикс log-файла E00 и 0xF фактически означает что суффикс 0000F. Поэтому искомым именем файла является E000000F.log и все что старше него можно удалять за ненадобностью.
Если доходит до подобного то помня о законе подлости я стараюсь не удалять логи а перемещать их в другое место и удаляю их только убедившись что БД удалось смонтировать.
Похожие статьи
Приглашаю присоединиться ко мне в следующих сервисах:
Вы можете оставить комментарий.