Сжатие журнала регистрации в формате SQLite (.lgd) с помощью программы "DB Browser for SQLite".

0. 70 04.06.17 14:34 Сейчас в теме
Если журнал регистрации базы 1С заметно увеличился, Вы не сможете оперативно искать в нем нужную информацию.
Более того, работа с таким журналом может вызывать блокировку работы всех пользователей.
Для предотвращения разрастания журнала необходимо устранять настройками запись ненужных событий и перемещать в архивы события с неактуальными датами.
Избавиться от уже записанной ненужной информации можно с помощью программы DB Browser for SQLite указанным в этой статье способом.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Jamms 07.06.17 08:23 Сейчас в теме
В линуксе если нужно просто дефрагментировать файл журнала (после сокращения, например), достаточно команды:
find /home/usr1cv8/ -iname "*.lgd" -exec sqlite3 {} VACUUM \;
2. DrSender 70 07.06.17 11:41 Сейчас в теме
В Windows тоже примерно так - если установить SQLite3:

(http://www.w3ii.com/ru/sqlite/sqlite_vacuum.html)

Руководство VACUUM
Ниже приводится простой синтаксис для выдачи команды VACUUM для всей базы данных из командной строки:

$sqlite3 database_name "VACUUM;"
Вы можете запустить VACUUM из SQLite запроса, а также следующим образом:

sqlite> VACUUM;
Вы также можете запустить VACUUM на конкретной таблице следующим образом:

sqlite> VACUUM table_name;


Но мне понравилось работать с DB Browser for SQLite - все удобно, наглядно.
3. DrSender 70 07.06.17 12:19 Сейчас в теме
Скопировал журнал для обработки на более мощный сервер. База журнала 25 Гб - по указанным в статье настройкам время выполнения:

Запрос успешно выполнен: delete from EventLog where metadataCodes="" (заняло 2151460мс, 141438660 строк изменено)
Запрос успешно выполнен: delete from EventLog where EventCode in (Select code from Filter); (заняло 321319мс, 2807 строк изменено)
Запрос успешно выполнен: delete from EventLog where MetadataCodes in (Select code from Filter); (заняло 292202мс, 2067792 строк изменено)

И примерно 10-20 минут на сжатие.
4. AlexO 130 08.09.18 17:49 Сейчас в теме
Странное "сжатие"... Сжатие - путем удаления?
Определить признаки для поиска ненужной информации журнала

Лог и подразумевает, что в него попадают все сообщения, там нет понятия "ненужная информация".
Есть "полная информация", и "отбор".
По каким вообще критериям здесь определяется "ненужная информация"?
Нормальная обрезка лога - это сохранение данных с даты до даты, усечение лога, и сжатие пустого пространства.
А тут - ну давайте, все сообщения вообще очистим, совсем хороший лог будет, в ноль, чистый и маленький.
Этот метод, кстати, и у Гилева описан, так что - неудивительно, что рабочий, но безграмотный в плане обработки БД. Там у него сообщения о фоновых заданиях удаляются - которые, например, вообще являются основными в базах, где все завязано на обмен.
5. DrSender 70 12.09.18 12:15 Сейчас в теме
Я показал методику с конкретными примерами. Каждый может удалить только то, что ему не нужно. Думаю, что каждый разберется, что ему оставить в логе.

Нас больше всего интересует история изменения объектов - кто, когда и каким способом, причем за достаточно длительный период - поэтому обрезать период неудобно.
6. ice-net 20 27.01.20 11:26 Сейчас в теме
(0) Спасибо, Очень полезно!
сильно разросся лог за 3 года около 30 ГБ, решили удалить все записи только по изменению регистров.

delete from EventLog where metadataCodes in ( select code from metadataCodes where (Name like '%РегистрСведений%') or (Name like '%РегистрНакопления%') );


Подскажите, не может Вы сталкивались с тем, что в колонке metadataCodes таблицы EventLog стоят значения разделенные пробелом и не соответсвуют данным в таблице metadataCodes ?
Оставьте свое сообщение
Вопросы с вознаграждением