Ручное "сжатие" внутренней базы Dr.Web® Enterprise Suite — различия между версиями

Материал из wiki.drweb.com
Перейти к: навигация, поиск
м
м
Строка 30: Строка 30:
 
  VACUUM;
 
  VACUUM;
  
Знак вопроса заменить на дату YYYYMMDDHHMMSSTTT, например 20060801000000000. Это удалит все данные до 01/08/2006
+
Знак вопроса заменить на дату '''YYYYMMDDHHMMSSTTT''', например ''20060801000000000''. Это удалит все данные до 01/08/2006
  
 
5. Запустить drwidbsh.exe dbinternal.dbs
 
5. Запустить drwidbsh.exe dbinternal.dbs
  
6. Выполнить команду ''''.databases'''' и убедиться, что база подключилась нормально.
+
6. Выполнить команду '''.databases''' и убедиться, что база подключилась нормально.
  
7. Выполнить команду ''''.read '''delold'''''''
+
7. Выполнить команду '''.read delold'''
  
 
8. Дождаться завершения процедуры (она может длиться несколько часов).
 
8. Дождаться завершения процедуры (она может длиться несколько часов).
  
9. Выполнить команду ''''.exit''''
+
9. Выполнить команду '''.exit'''
  
 
10. Остановить [[Dr.Web® Enterprise Server|ES сервер]] (Пуск->Программы->DrWeb Enterprise Server->Server control->Stop).
 
10. Остановить [[Dr.Web® Enterprise Server|ES сервер]] (Пуск->Программы->DrWeb Enterprise Server->Server control->Stop).

Версия 12:50, 10 ноября 2006

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).

3. Стартовать ES сервер (Пуск->Программы->DrWeb Enterprise Server->Server control->Restart).

4. Создать там, куда Вы скопировали базу и drwidbsh.exe, текстовый файл delold с таким содержимым:

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 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 <= ?;
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 документации).

См. так же ЧаВо: Dr.Web® Enterprise Suite