Ручное "сжатие" внутренней базы Dr.Web® Enterprise Suite
Материал из wiki.drweb.com
1. Остановить ES сервер (Пуск->Программы->DrWeb Enterprise Server->Server control->Stop).
2. Скопировать куда-нибудь, где много места, базу (C:\Program Files\DrWeb Enterprise Server\var\dbinternal.dbs) и drwidbsh.exe (C:\Program Files\DrWeb Enterprise Server\bin\drwidbsh.exe). Лучше всего, что бы свободного места было раза в 4 или 5 больше, чем размер dbinternal.dbs.
3. Стартовать ES сервер (Пуск->Программы->DrWeb Enterprise Server->Server control->Restart).
4. Создать там, куда Вы скопировали базу и drwidbsh.exe, текстовый файл delold с таким содержимым:
BEGIN; DELETE FROM run WHERE beginrecvtime <= ?; DELETE FROM infection WHERE infectionrecvtime <= ?; DELETE FROM scanstat WHERE recievetime <= ?; DELETE FROM installation WHERE starttime <= ?; DELETE FROM procerror WHERE errrecvtime <= ?; DELETE FROM station_components WHERE modtime <= ?; DELETE FROM station_environment WHERE createtime <= ?; DELETE FROM station_vdb WHERE createtime <= ?; DELETE FROM station_status WHERE createtime <= ?; DELETE FROM station_running WHERE starttime <= ?; DELETE FROM station_offline WHERE starttime <= ?; -- таблица имеется только начиная с версии 4.33.2, и отсутствует в 5.00 DELETE FROM srv_run WHERE arrived <= ?; DELETE FROM srv_infection WHERE arrived <= ?; DELETE FROM srv_procerror WHERE arrived <= ?; DELETE FROM srv_scanstat WHERE arrived <= ?; DELETE FROM srv_installation WHERE arrived <= ?; DELETE FROM srv_unsent WHERE arrived <= ?; DELETE FROM srv_recvhistory WHERE arrived <= ?; DELETE FROM srv_names WHERE updatetime <= ?; DELETE FROM update_state WHERE rectime <= ?; DELETE FROM srv_status WHERE arrived <= ?; DELETE FROM deleted_stations WHERE created <= ?; DELETE FROM jobs_log WHERE completed <= ?; -- таблица имеется начиная с версии 5.00 DELETE FROM station_modules WHERE createtime <= ?; -- таблица имеется начиная с версии 5.00 DELETE FROM server_jobs_log WHERE completed <= ?; -- таблица имеется начиная с версии 5.00 DELETE FROM station_offline_cmd WHERE created <= ?; -- таблица имеется начиная с версии 5.00 DELETE FROM admin_activity WHERE createtime <= ?; -- таблица имеется начиная с версии 5.00 DELETE FROM activity_data WHERE createtime <= ?; -- таблица имеется начиная с версии 5.00 COMMIT; VACUUM;
Знак вопроса заменить на дату YYYYMMDDHHMMSSTTT, например 20060801000000000. Это удалит все данные до 01/08/2006.
5. Запустить drwidbsh.exe dbinternal.dbs
6. Выполнить команду .databases и убедиться, что база подключилась нормально.
7. Выполнить команду .read delold
8. Дождаться завершения процедуры (она может длиться несколько часов).
9. Выполнить команду .exit
10. Остановить ES сервер (Пуск->Программы->DrWeb Enterprise Server->Server control->Stop).
11. Сохранить куда-нибудь на всякий случай старую базу, а на ее место записать сжатую.
12. Стартовать ES сервер (Пуск->Программы->DrWeb Enterprise Server->Server control->Restart).
13. Подключиться из консоли и отредактировать задания на удаление старых данных из базы (п. 6.5.3 документации).
(Начиная с версии 4.33.2 процедура доступна через консоль)
См. так же ЧаВо: Dr.Web® Enterprise Suite
