Страница 1 из 2
Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 10:04 am
Ko/|xo3HUk
Доброго всем времени суток!
Нигде не нашел упоминаний о том какой максимальный размер базы данных может быть установлен, с каким размером БД спокойно справится Raspberry Pi 2B? Понятно что чем больше БД, тем она неповоротливей будет.
Для исследований решил сделать следующее: есть Ардуино Мега 2560, которая собирает данные с 13-ти датчиков тока + измеряет опорное напряжение и выдаёт время с момента запуска (uptime). Итого 15 переменных. Передаю эти 15 значений каждые 2 секунды на МЖД и сохраняю историю. Итог: через ~30 часов база встает колом с сообщениями:
Warning: mysqli_connect(): (HY000/2003): Can't connect to MySQL server on '127.0.0.1' (111) in /var/www/lib/mysqli.class.php on line 109
Warning: mysqli_select_db() expects parameter 1 to be mysqli, boolean given in /var/www/lib/mysqli.class.php on line 111
Warning: mysqli_errno() expects parameter 1 to be mysqli, boolean given in /var/www/lib/mysqli.class.php on line 365
Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /var/www/lib/mysqli.class.php on line 365
Fatal error: Call to a member function DbSafe() on a non-object in /var/www/lib/mysqli.class.php on line 463
При этом размер таблицы phistory ~18МБ.
Как можно посчитать - сколько переменных и с какой периодичностью можно сохранять в БД чтобы она не превышала допустимый размер? Где в свойствах БД можно указать её максимальный размер? Планируется ли стандартный модуль с RRD-базой данных?
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 11:00 am
zelevova
База ограничена размерами носителя на котором она располагается.
Когда итог наблюдается сам sql сервер еще живой?
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 11:07 am
Ko/|xo3HUk
Полуживой. Когда это происходит - phpmyadmin ещё работает, можно таблицы поправить/очистить, но несколько раз при очередном запросе к таблице процесс подвисал и приходилось через putty перезагружать малинку.
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 11:14 am
Ko/|xo3HUk
zelevova писал(а):База ограничена размерами носителя на котором она располагается.
Т.е. размером директории /tmp? Т.к. база в папке /tmp находится. SD-карта у меня на 32ГБ.
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 11:28 am
zelevova
Ko/|xo3HUk писал(а):Т.е. размером директории
Размером того раздела на котором расположена база.
Ko/|xo3HUk писал(а):при очередном запросе к таблице процесс подвисал и приходилось через putty перезагружать малинку.
А если перегружать не всю малинку а только процесс сервера sql?
После перезагрузки опять 30 часов нормально работает или нужно базу чистить?
Сколько свободного места остается на разделе с базой? Можно посмотреть командой df -h
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 11:49 am
Ko/|xo3HUk
Перезагрузка mysql не помогает. Перезагрузка малины - тоже. Только после того как очистил таблицу phistory - всё заработало, но прошло снова полтора суток - и опять веб-интерфейс рухнул. Свободного места в /tmp - 44%:
Код: Выделить всё
pi@raspberrypi /tmp/mysql $ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 30G 5.0G 23G 18% /
/dev/root 30G 5.0G 23G 18% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 93M 528K 93M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 186M 0 186M 0% /run/shm
/dev/mmcblk0p1 56M 15M 42M 26% /boot
tmpfs 100M 56M 45M 56% /tmp
tmpfs 30M 0 30M 0% /var/tmp
tmpfs 20M 20M 0 100% /var/log
tmpfs 100M 0 100M 0% /var/cache/apt/archives
tmpfs 20M 108K 20M 1% /var/www/cached
pi@raspberrypi /tmp/mysql $ df /tmp/mysql/
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 102400 56704 45696 56% /tmp
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 12:02 pm
zelevova
Тут нужно ковырять в направлении: mysql и свободное место на разделе.
А оперативной памяти хватает под все временные файловые системы? Может место как бы еще числится, а реально записать не хватает места?
Еще место может резервироваться под нужды root пользователя. Можно пробовать каким-нибудь безправным пользователем туда скопировать файлов что бы под завязку /tmp забить.
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 1:22 pm
Ko/|xo3HUk
Вот кстати сейчас опять попробовал - не мог зайти даже в phpmyadmin. В веб-интерфейсе те же ошибки про mysql. Перезагрузка mysql помогла - смог зайти в phpmyadmin, веб-интерфейс поднялся. Очень долго не стартовали скрипты. Сервис majordomo перегружал - не помогает, циклы висят. Потом всё-таки стартанули, но через некоторое время опять ошибки про mysql.
Кстати, после перезапуска mysql - он жалуется на ошибки:
Код: Выделить всё
[spoiler=][code]pi@raspberrypi /tmp/mysql $ sudo /etc/init.d/mysql restart
[ ok ] Stopping MySQL database server: mysqld.
[ ok ] Starting MySQL database server: mysqld . ..
[info] Checking for tables which need an upgrade, are corrupt or were not closed cleanly..
[/code][/spoiler]
Забил директорию (от юзера "pi") /tmp на 100% - mysql не смог подняться
Код: Выделить всё
pi@raspberrypi /var/www/saverestore $ sudo service mysql restart
[ ok ] Stopping MySQL database server: mysqld.
[FAIL] /etc/init.d/mysql: ERROR: The partition with /tmp/mysql is too full! ... failed!
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 4:17 pm
zelevova
Ko/|xo3HUk писал(а):[info] Checking for tables which need an upgrade, are corrupt or were not closed cleanly..
Тут ругается что таблица какая то битая. Обычно это из-за внезапного обрушения сервера или отключения питания.
Ko/|xo3HUk писал(а):[FAIL] /etc/init.d/mysql: ERROR: The partition with /tmp/mysql is too full! ... failed!
Ну а вот тут конкретно на нехватку места ругается. До этого не ругался значит дело не в месте на разделе.
А если данные писать не каждые 2 секунды, а например каждые 4? за 60 часов падать будет или эти параметры не связанны?
Re: Максимальный размер базы данных
Добавлено: Чт дек 10, 2015 4:19 pm
Victor_S
Есть такая проблема с мажордомо. Если датчиков много и часто опрашиваем база растет и программа начинает просто жутко тормозить. Нужно во-первых четко решить какая информация и в каком объеме действительно необходима для хранения. И во-вторых, Сергей где-то выкладывал скрипт по оптимизации базы данных. Там нужно прописать свои условия и периодически запускать.