Максимальный размер базы данных

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Максимальный размер базы данных

Сообщение Ko/|xo3HUk » Чт дек 10, 2015 10:04 am

Доброго всем времени суток!
Нигде не нашел упоминаний о том какой максимальный размер базы данных может быть установлен, с каким размером БД спокойно справится 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-базой данных?
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Максимальный размер базы данных

Сообщение zelevova » Чт дек 10, 2015 11:00 am

База ограничена размерами носителя на котором она располагается.
Когда итог наблюдается сам sql сервер еще живой?
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Максимальный размер базы данных

Сообщение Ko/|xo3HUk » Чт дек 10, 2015 11:07 am

Полуживой. Когда это происходит - phpmyadmin ещё работает, можно таблицы поправить/очистить, но несколько раз при очередном запросе к таблице процесс подвисал и приходилось через putty перезагружать малинку.
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Максимальный размер базы данных

Сообщение Ko/|xo3HUk » Чт дек 10, 2015 11:14 am

zelevova писал(а):База ограничена размерами носителя на котором она располагается.
Т.е. размером директории /tmp? Т.к. база в папке /tmp находится. SD-карта у меня на 32ГБ.
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Максимальный размер базы данных

Сообщение zelevova » Чт дек 10, 2015 11:28 am

Ko/|xo3HUk писал(а):Т.е. размером директории
Размером того раздела на котором расположена база.
Ko/|xo3HUk писал(а):при очередном запросе к таблице процесс подвисал и приходилось через putty перезагружать малинку.
А если перегружать не всю малинку а только процесс сервера sql?
После перезагрузки опять 30 часов нормально работает или нужно базу чистить?
Сколько свободного места остается на разделе с базой? Можно посмотреть командой df -h
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Максимальный размер базы данных

Сообщение Ko/|xo3HUk » Чт дек 10, 2015 11:49 am

Перезагрузка 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
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Максимальный размер базы данных

Сообщение zelevova » Чт дек 10, 2015 12:02 pm

Тут нужно ковырять в направлении: mysql и свободное место на разделе.
А оперативной памяти хватает под все временные файловые системы? Может место как бы еще числится, а реально записать не хватает места?
Еще место может резервироваться под нужды root пользователя. Можно пробовать каким-нибудь безправным пользователем туда скопировать файлов что бы под завязку /tmp забить.
За это сообщение автора zelevova поблагодарил:
Ko/|xo3HUk (Чт дек 10, 2015 1:21 pm)
Рейтинг: 1.16%
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Максимальный размер базы данных

Сообщение Ko/|xo3HUk » Чт дек 10, 2015 1:22 pm

Вот кстати сейчас опять попробовал - не мог зайти даже в 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! 
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: Максимальный размер базы данных

Сообщение zelevova » Чт дек 10, 2015 4:17 pm

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 часов падать будет или эти параметры не связанны?
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Максимальный размер базы данных

Сообщение Victor_S » Чт дек 10, 2015 4:19 pm

Есть такая проблема с мажордомо. Если датчиков много и часто опрашиваем база растет и программа начинает просто жутко тормозить. Нужно во-первых четко решить какая информация и в каком объеме действительно необходима для хранения. И во-вторых, Сергей где-то выкладывал скрипт по оптимизации базы данных. Там нужно прописать свои условия и периодически запускать.
Ответить