Форум программистов, компьютерный форум, киберфорум
Python: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
17 / 17 / 6
Регистрация: 11.11.2015
Сообщений: 146

Как правильно настроить backups БД из кода программы

28.04.2023, 12:14. Показов 777. Ответов 2

Студворк — интернет-сервис помощи студентам
Всем двс, у меня в коде бота есть вызов по расписанию на бэкап моих таблиц БД(MySQL), выглядит примерно так:

На старте бота:
Python
1
2
3
4
5
    
    scheduler = AsyncIOScheduler()
    scheduler.start()
    # запускаем бэкап на БД - раз в 4 часа
    scheduler.add_job(backup_tables, trigger='interval', hours=4, id='auto_backup_tables', replace_existing=True)
Сама процедура:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
async def backup_tables():
    if not DCfg.CURRENT_LINUX_OS:
        return
    output_dir_base = '/home/user123456/sql_backups/'
    output_file = output_dir_base + 'backup_' + datetime.datetime.now().strftime('%Y-%m-%d--%H-%M') + '.sql'
    if os.path.exists(output_file):
        DCfg.log_warning(f'WARNING: Trying to save backup at the same place, file: {output_file} ')
        return
    pwd = get_pwd()
    DCfg.log_info(f'INFO: Launch backup, output file: {output_file} ')
    # MYSQL DUMP
    backup_cmd = f"mysqldump -h localhost --port 3306 -u user123456 -p{pwd} 'db_apsbot' 'white_list' 'customers' 'orders' 'offers' 'sellers_list' > '{output_file}' "
    process = await subprocess.create_subprocess_shell(backup_cmd)
    await process.wait()
    return_code = process.returncode
    if (return_code != 0):
        DCfg.log_error(f'ERROR: Backup failed, output file: {output_file} ')
Вопросы у меня больше по правильности концепции.
1. Раз в 4 часа взято от фонаря, возможно хватит и раз в сутки. Цель бота - собирать заказы на разные товары(условно), заказов может быть 50 в день а может и 1000. В ближайшие полгода-год точно НЕ больше 2-3тыс в день. По факту БД очень небольшого размера и бэкапы не забьют весь диск. С другой стороны желательно бы удалять более ранние бэкапы и я собираюсь в мой код встроить автоматическое удаление всего, что старше 2-3х дней.
И теперь главный вопрос - правильно ли настраивать такую вещь ИЗНУТРИ бегущей программы(бота), либо сделать полностью внешнюю процедуру?
2. Есть ли смысл добавить в код бота некое отслеживание по изменению таблиц, например, если по конкретной таблице не было изменений за последний период(4 часа), то мы не включаем ее в список бэкапа?
Либо всю процедуру написать в баш-скрипте(работаю в Убунте), пользуясь проверкой CHECKSUM?
3. Как мне вытащить более подробную инфу об ошибке(кода ошибки не всегда достаточно) из вызова mysqldump , если что-то свалилось?
Всем спасибо за мысли вслух.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.04.2023, 12:14
Ответы с готовыми решениями:

Как правильно создать проект исходя из данного исходного кода программы?
Дан пример кода программы состоящей из 5 файлов( regres.cpp, MainInterpol.h, MainInterpol.cpp, RezultInterpol.h, RezultInterpol.cpp). ...

Как правильно настроить?
Имеется дома интернет оптоволокно,оптика подключена к медиаконвеутору,медиаконвектор патч кордом к вай фай роутеру tplink wr841.к роутеру...

Как настроить QT правильно?
Подскажите, пожалуйста, как настроить Qt под Андроид, вроде бы скачиваю все и указываю путь но по-прежнему всех галочек нет. Может...

2
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
30.04.2023, 16:04
Мне кажется - правильно настроить резервное копирование, в том числе очистку ранних бэкапов средствами самой БД. Особенно если это какой то долгоиграющий клиентский сервис. Ну и наверное лучше брать постгрес, а не мускул.
1
17 / 17 / 6
Регистрация: 11.11.2015
Сообщений: 146
30.04.2023, 17:37  [ТС]
Мне кажется - правильно настроить резервное копирование, в том числе очистку ранних бэкапов средствами самой БД. Особенно если это какой то долгоиграющий клиентский сервис.
Ок, поищу как это делает MySQL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.04.2023, 17:37
Помогаю со студенческими работами здесь

Как правильно настроить findpeaks?
Добрый день У меня такая проблема, обнаружил полезную функцию findpeaks с помощью которой хотел определить границы участков с...

Как настроить правильно сеть
Имею компьютер с двумя сетевыми картами и windows 7 так же имею роутер dlink dir 615 необходимо настроить интернет по такому пути. кабель...

Как правильно настроить Wi-Fi сеть?
Доброго времени! Надо с настройкой вай-фай сети разобраться. Вернее правильно сконфигурировать, т.к. возможно в чём-то я ошибаюсь и сеть...

Как правильно настроить цикл?
у меня поле 9 на 9, по диагонали цикл идет for (int i=0,j=8;i<8,j>0;i++,j--) { if (StringGrid1->Cells==" X ") ...

Как правильно настроить роутер?
Где брать настройки, которые нужно вводить?? Купили роутер, не можем подключить((((((


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru