Как настроить горячее инкрементное резервное копирование Mysql?
Работаю с множеством порталов Б24, есть базы и более 30Гб в несжатом виде.
Не первый день уже ищу варианты создания на горячую инкрементных бэкапов, чтобы частота создания было от 30мин, без тормозов в работе.
Нашел множество разных вариантов, каждый из которых для отладки и проверки требует не мало времени.
Нужна помощь с выбором.
Итак варианты такие:
1. Перенести БД на диск ZFS. Из минусов, для баз с большим количеством запросов, ощутимо падает производительность, даже на NVMe винтах с IOPS более 1Млн.
2. Использовать MySQL Enterprise. Купить возможности нет, из-за санкций, ломаную нигде не нашел(((
3. Перенести БД на Maria и использовать Mariabackup. Слишком мало информации, о том как это работает, да ещё и противоречивая.
4. Организовать бэкам на InnoDB undo log. Вообще не ознакамливался с данной темой, но на сколько знаю из опыта работы с базой mssql 1С логи сжирают место на диске с сумасшедшей скоростью, существенно замедляют работу и так же требуют резервного копирования.
5. Полная репликация в slave базу, которую бэкапить обычным mysqldump. Но тут вопрос, пока реплика бэкапится, она же не будет принимать запросы и соответственно возникнет рассинхрон с оригиналом(
Но тут вопрос, пока реплика бэкапится, она же не будет принимать запросы и соответственно возникнет рассинхрон с оригиналом
Почему Вас это беспокоит? Логи-то с мастера она получать будет. А как закончит бэкапить - накатит логи, и опять всё ровно. Если совсем боитесь - ну сделайте два слейва, один всегда синхронный, второй иногда бэкапится.
А так - согласен с предыдущим оратором. Percona XtraBackup 8.x.
На мой взгляд, пятый вариант с репликацией в slave — самый простой, надёжный и легко реализуемый. А про рассинхрон Akina всё правильно объяснил: после окончания backupа всё всё равно синхронизируется.