
У меня есть личный проект, в котором Openwrt + Python + SQLite запущены на небольшом роутере, на котором почти нет места (16 Мб). Для хранения базы данных я использую USB/SDcard, подключенный к роутеру.
Периодически мне хотелось бы извлекать записи из базы данных и сохранять их на удаленном сервере MySQL Linux, чтобы освободить немного места.
Какое решение будет лучшим? Внедрить MySQL в маршрутизатор, чтобы сервер Linux мог удаленно подключаться к маршрутизатору и извлекать записи, или просто загружать файл .db и периодически конвертировать его на сервере Linux в MySQL? Есть еще идеи?
решение1
Попробуйте оценить или посчитать, вы действительно используете все пространство? По некоторым маркетинговым причинам мы думаем, что 8 Мб свободного места действительно мало (по сравнению с терабайтами доступных жестких дисков). Я прикинул, что моя домашняя автоматизация на GL-AR150 сохранит данные за следующие 5 лет.
На некоторых маршрутизаторах есть возможность добавить SD-карту, внешний USB-накопитель или HDD. Обычно я сохраняю некоторые снимки с моей веб-камеры наблюдения по триггерам. Почему бы не рассмотреть возможность размещения всей базы данных на внешнем хранилище?
Если у вас небольшой объем данных (не загружающий ваш широкополосный доступ на 100% в течение 2 дней), вы можете запланировать через cron загрузку данных на сервер Linux. По сути, скрипт вызывает удаленный файл php, который извлекает данные из вашей базы данных SQLite и вставляет их в базу данных MySQL. После этого он устанавливает флаг для загруженных строк, чтобы вы не извлекали их в следующий раз. Или, если у вас есть RTC, то флагом может быть дата и время вашего маршрутизатора Linux, которые вы храните в базе данных MySQL.