Автор Тема: Файл sqlite3.db  (Прочитано 3655 раз)

Оффлайн eovchinnikov

  • Начинающий
  • *
  • Сообщений: 14
    • Email
Файл sqlite3.db
« : 13.11.2012 14:14:12 »
Добрый день.

Помогите, пожалуйста, решить проблему.
У меня в каталоге /var/lib/ulogd есть файл sqlite3.db
Подскажите как можно уменьшить его размер? На данный момент он "весит" больше 55Гб, его можно просто удалить или пересоздать?
Система Alt Server 5, используется только для почты и FTP

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Re: Файл sqlite3.db
« Ответ #1 : 13.11.2012 14:28:31 »
Если я в этом что-то понимаю, то по такому пути должна располагаться база по учету трафика (как подсказывает гугл). У вас на сервере ведётся хоть какой-то учёт трафика (по айпи или ещё как) ?

Оффлайн eovchinnikov

  • Начинающий
  • *
  • Сообщений: 14
    • Email
Re: Файл sqlite3.db
« Ответ #2 : 13.11.2012 14:51:55 »
Уже отключил. Теперь эту базу можно просто удалить с диска без последствий?

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Re: Файл sqlite3.db
« Ответ #3 : 13.11.2012 15:54:45 »
Уже отключил. Теперь эту базу можно просто удалить с диска без последствий?
Если вам более не нужны результаты учёта, то да, можете удалять. Если вдруг снова понадобится включить учёт, то понадобятся дополнительные телодвижения для создания пустой базы (сам учёт, вроде бы, работает с уже созданным шаблоном базы).

Оффлайн valobasoff

  • Завсегдатай
  • *
  • Сообщений: 399
Re: Файл sqlite3.db
« Ответ #4 : 12.03.2013 10:10:15 »
а как очистить эту базу корректно ?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Файл sqlite3.db
« Ответ #5 : 12.03.2013 10:51:57 »
а как очистить эту базу корректно ?
Рассылки ALT Linux рулят: http://comments.gmane.org/gmane.linux.altlinux.office-server/42
service ulogd stop
echo "create table ulog_tmp as select * from ulog; delete from ulog;
insert into ulog select * from ulog_tmp; drop table ulog_tmp;" | sqlite3 /var/lib/ulogd/sqlite3.db
Андрей Черепанов (cas@)

Оффлайн valobasoff

  • Завсегдатай
  • *
  • Сообщений: 399
Re: Файл sqlite3.db
« Ответ #6 : 12.03.2013 11:39:14 »
выполнил команды, размер файла не уменьшился, переместил файл и снова выполнил команды, без ошибок, но файл не создался. стартанул службу ulogd, создался файл нулевой длины(владелец root, заменил на как было ulogd), после этого снова выполнил команды получил то, что ниже, файл по прежнему нулевой.
# echo "create table ulog_tmp as select * from ulog; delete from ulog; insert into ulog select * from ulog_tmp; drop table ulog_tmp;" | sqlite3 /var/lib/ulogd/sqlite3.db
Error: near line 1: no such table: ulog
« Последнее редактирование: 12.03.2013 11:42:12 от valobasoff »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Файл sqlite3.db
« Ответ #7 : 12.03.2013 19:20:36 »
выполнил команды, размер файла не уменьшился, переместил файл и снова выполнил команды, без ошибок, но файл не создался. стартанул службу ulogd, создался файл нулевой длины(владелец root, заменил на как было ulogd), после этого снова выполнил команды получил то, что ниже, файл по прежнему нулевой.
# echo "create table ulog_tmp as select * from ulog; delete from ulog; insert into ulog select * from ulog_tmp; drop table ulog_tmp;" | sqlite3 /var/lib/ulogd/sqlite3.db
Error: near line 1: no such table: ulog
Не стоит тупо копировать. В новой версии формат наверняка отличается. Я лишь привёл для аналогии.
Андрей Черепанов (cas@)

Оффлайн valobasoff

  • Завсегдатай
  • *
  • Сообщений: 399
Re: Файл sqlite3.db
« Ответ #8 : 13.03.2013 09:45:06 »
а где можно про это почитать ? что-то гугл совсем не помог в решении..
неплохо было бы кстати в альтераторе кнопку сделать очистки...а то сервер за 2 года съел полностью раздел var на 10 гигов, и в итоге сеть легла, некуда было писать выданые ip ((

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Файл sqlite3.db
« Ответ #9 : 13.03.2013 12:12:11 »
а где можно про это почитать ? что-то гугл совсем не помог в решении..

Вот правильный рецепт:
service ulogd stop
echo "delete from ulog_daily;vacuum;" | sqlite3 /var/lib/ulogd/sqlite3.db
service ulogd start

Вы и сами могли зайти через sqlite3 /var/lib/ulogd/sqlite3.db и поиграть командами. Собственно про очистку БД от удалённых значений я нашёл на http://stackoverflow.com/questions/2143800/change-sqlite-file-size-after-delete-from-table

Цитировать
неплохо было бы кстати в альтераторе кнопку сделать очистки...а то сервер за 2 года съел полностью раздел var на 10 гигов, и в итоге сеть легла, некуда было писать выданые ip ((
Повешайте багу, чтобы не забыть.
Андрей Черепанов (cas@)

Оффлайн valobasoff

  • Завсегдатай
  • *
  • Сообщений: 399
Re: Файл sqlite3.db
« Ответ #10 : 13.03.2013 15:56:16 »
# echo "delete from ulog_daily;vacuum;" | sqlite3 /var/lib/ulogd/sqlite3.db
Error: near line 1: disk I/O error
выполняется долго, пробовал выполнять по отдельности и сначала vacuum, в результате та-же ошибка. Подозреваю не хватает ресурсов для обработки 10гигового файла, в разделе всего 70 мегов осталось. tmpfs всего 1гиг, своп ещё 1 гиг. Добавил свопа 11 гигов в виде файла, но в результате та-же ошибка.
как можно вылезти из ситуации ?
# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda1                               partition       1044184 124096  -1
/var/srv/swapfile                       file            11534328        0       -2
# df
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
udevfs             5,0M         136K  4,9M            3% /dev
/dev/sda2          4,0G         492M  3,3G           13% /
shmfs             1010M            0 1010M            0% /dev/shm
tmpfs             1010M          25M  985M            3% /tmp
/dev/sda3           39G         186M   37G            1% /home
/dev/sda5           19G         1,9G   17G           11% /usr
/dev/sda6           12G          11G   72M          100% /var
/dev/sdb1          1,4T         585G  721G           45% /var/srv
/dev/loop0         4,3G         4,3G     0          100% /var/srv/public/netinst/mnt
# fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders, всего 156301488 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x489dfd65

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *          63     2088449     1044193+  82  Linux своп / Solaris
/dev/sda2         2088450    10474379     4192965   83  Linux
/dev/sda3        10474380    92389814    40957717+  83  Linux
/dev/sda4        92389815   156296384    31953285    5  Расширенный
/dev/sda5        92389878   132632639    20121381   83  Linux
/dev/sda6       132632703   156296384    11831841   83  Linux

Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, всего 2930277168 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2d8f5f15

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdb1              63  2930272064  1465136001   83  Linux
[root@ls1 srv]# free
             total       used       free     shared    buffers     cached
Mem:       2066520    1511724     554796          0      27112    1338428
-/+ buffers/cache:     146184    1920336
Swap:     12578512     124088   12454424
« Последнее редактирование: 13.03.2013 16:52:31 от valobasoff »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Файл sqlite3.db
« Ответ #11 : 13.03.2013 16:30:19 »
# echo "delete from ulog_daily;vacuum;" | sqlite3 /var/lib/ulogd/sqlite3.db
Error: near line 1: disk I/O error
выполняется долго, пробовал выполнять по отдельности и сначала vacuum, в результате та-же ошибка. Подозреваю не хватает ресурсов для обработки 10гигового файла, в разделе всего 70 мегов осталось. tmpfs всего 1гиг, своп ещё 1 гиг. Добавил свопа 11 гигов в виде файла, но в результате та-же ошибка.
Зайдите sqlite3 /var/lib/ulogd/sqlite3.db
и выполните команды вручную.
P.S. Запихивание code в spoiler с прокруткой по одной строчке — гарантированный способ отвратить от чтения.
Андрей Черепанов (cas@)

Оффлайн valobasoff

  • Завсегдатай
  • *
  • Сообщений: 399
Re: Файл sqlite3.db
« Ответ #12 : 13.03.2013 16:37:53 »
Зайдите sqlite3 /var/lib/ulogd/sqlite3.db
и выполните команды вручную.
P.S. Запихивание code в spoiler с прокруткой по одной строчке — гарантированный способ отвратить от чтения.
Я так и делал, и менял последовательность команд, ошибка та-же вылезает. И если следить регулярным запуском df в процессе выполнения команды vacuum, то видно как "тает" раздел tempfs, а /var очень медленно меняется. И наоборот если запускаю delete from ulog_daily;
ЗЫ:у меня спойлер раскрывается строк на 10 , как задать количество строк в спойлере ?
« Последнее редактирование: 13.03.2013 16:44:10 от valobasoff »

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Re: Файл sqlite3.db
« Ответ #13 : 13.03.2013 16:46:18 »
ЗЫ:у меня спойлер раскрывается строк на 10 , как задать количество строк в спойлере ?
Имеется ввиду вложенный в спойлер тег code. Лучше уж code без спойлера или спойлер но без кода.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Файл sqlite3.db
« Ответ #14 : 13.03.2013 19:35:22 »
Я так и делал, и менял последовательность команд, ошибка та-же вылезает. И если следить регулярным запуском df в процессе выполнения команды vacuum, то видно как "тает" раздел tempfs, а /var очень медленно меняется. И наоборот если запускаю delete from ulog_daily;
Тогда просто возьмите мой очищенный файл (уберите расширение .txt):
Андрей Черепанов (cas@)