wal-g для того чтобы сливать wal’ы на S3-совместимый сторадж, то нужно его прикручивать на все 3 ноды или как?
на все 3 ноды, мастер может переместиться, команда одна а вот исполняемого файлы на ноде может и не быть.
Одномоментно, как я понимаю, будет писать только одна нода или все 3 сразу в один и тотже бакет?
только одна, ведь она будет вызывать archive-command
Ага. Понял. Т.е., если, допустим, по крону бежит какой-нибудь wal-g backup-push для basebackup’ов, то его нужно пускать только на текщем мастере?
бэкап с мастера или с реплики ? Вы немного не понимаете концепцию этих инструментов. Все изменения будут храниться в архивах WAL от полного бэкапа, до установленных вами ограничений. Вал будет писаться всегда и только мастером. А вот бэкап можно снимать и с реплики.
Тогда разъясните, plz. Головой понимаю, что всякие backup’ы нужно снимать с реплики чтобы избежать нагрузки на мастер. Но, пока, не понимаю концепцию до конца. Мастер через archive-command отправляет wal’ы в S3, также все изменения разъездаются на две реплики, с одной из которых нужно делать basebackup, с каким-то квантом времени.
есть восприятие полного / дифференциального / инкрементального бэкапов ? Так же концепция PITR ?
Да, все эти слова знаю и что они означают понимаю
wal-g / pgbackrest / pg_probackup как раз подразумевают эту концепцию. Есть полный бэкап на какое то время, после него складывается WAL (через архивную команду) до следующего бэкапа. А дальше вам решать, между двумя бэкапами должен быть WAL или нет, и когда этот WAL схлапывать. Дифф и инк бэкапы всегда смотрят на полный.
Вот этот “полный бэкап на какое то время”, на какой ноде делать? Допустим, я его делаю на реплике, которая может быть синхронной, тогда проблем нет и асинхронной, что подразумевает, что не всё с мастера в неё могло доехать.
да на любой как угодно. Лучше конечно на мастере. Лаги всё равно поймаете, и так то бэкап запускает команду, вроде как pg_start_backup (около такой) Запускает её на мастере, это начало точки бэкапа. И без разницы, с мастера вы будете бэкап делать или с реплики, всё равно начальные файлы с мастера возьмутся а далее уже сама дата с реплики ( ну или с мастера как удобно)
Но, как я понял, archive_command исполняется только на мастере и basebackup, одновременно, можно делать только с одной ноды. Верно?
Только с одной да.
А как вы думали делать с двух нод ? Что это будет ?
Я думал, что должен быть конфликт, поэтому и уточнял.
Верно, файлы начнут перезаписывать друг друга - это не очень интересно. Поэтому да, только с одной ноды, а мастер это будет иди реплика - решать вам.
только не забывайте реально "схлопывать" WAL, иначе он будет по размеру больше, чем база и бэкап базы.
Под “схлопывать” мы понимаем удаление старых, которые были до последнего basebackup?
удаление WAL на каком то из бэкапов. Между полным бэкапом, и дифф к примеру, может пройти 3 ТБ WAL, смысл их хранить если вам не нужно будет откатываться где то между полным и дифф бэкапом, вот тут и вступает PITR, восстановление на момент времени от полного бэкапа.
Обсуждают сегодня