коду, вроде бы только lsn читается из xtrabackup_checkpoints, больше никакие файлы не открываются, так что вообще можно одним этим файлом ограничиться дл создания инкрементального бекапа; сам предыдущй бекап и не нужен.
и да, prepare ничего не должен ломать.
https://github.com/MariaDB/server/blob/58aaa67064cc5d2747d5172b54feb592a5842700/extra/mariabackup/xtrabackup.cc#L6707
всё так?
И так и не так ) Если речь именно о mariabackup и версия MariaDB 10.2 и выше, то все так. Инкрементальному бэкапу нужно знать только LSN с которого начинать бэкап. Этот LSN он берет из предыдущего base бэкапа. Но предыдущий бэкап вообще не обязательно иметь, если вы знаете LSN, есть опция --incremental-lsn https://mariadb.com/kb/en/mariabackup-options/#-incremental-lsn Перед восстановлением инкрементального бэкапа все равно придется сначала готовить base бэкап, так что можно и заранее —prepare прогнать, должно работать. https://mariadb.com/kb/en/incremental-backup-and-restore-with-mariabackup/ Если версия MariaDB ниже 10.2, или если речь о xtrabackup, то —prepare гнать для base бэкапа нельзя, потому что база полностью отрекаверится, включая ролбэк транзакций и последующие инкрементальные бэкапы накатить не получится. В таком случае вместо —prepare нужно гнать —prepare —apply-log-only. И это тоже можно гнать заранее.
О, спасибо, что достаточно указать --incremental-lsn я просмотрел. А можете объяснить, кстати, почему xtrabackup треубет опции --apply-log-only, а современные версии mariabackup — нет?
без понятия, надо код смотреть, возможно у них --prepare просто всегда работает как --prepare --apply-log-only, просто не откатывает транзакции, но это только догадка
Обсуждают сегодня