Если вы видите что-то необычное, просто сообщите мне. Skip to main content

Новая страница

Когда на слейве делаешь su - postgres -c "su - postgres -c "pg_basebackup --host=... --username=... --pgdata=/var/lib/postgresql/data ..." ты указываешь pgdata - путь куда будут писаться бекапы мастера и он должен соответствовать вот тому, что я там написал (/var/lib..), т.к. это главная папка постгри, откуда он читает. Так вот. Перед тем, как выполнять эту команду, папку надо почистить. Причем эта папка неявно доступа по энв переменной $PGDATA и я соответственно так и делал (я уж умный дохуя) rm -r $PGDATA/data/* , и он ругался на resource busy и прочее, надо бы из под докера делать su, делать rm -r, и после этого выполнять команду на бекап и все заебись

Еще если вдруг понадобится тебе на будущее - ставь в postgresql.conf wal_keep_segments не нулевой, побольше (он в МБайтах) - размер хранимого журнала WAL - журнал записей транзакций наскок я понял (если ты знаешь лучше то ок), так вот, если он нулевой, то если в мастере есть записи, а слейв стартануть позже - то WAL обнулится и будет ошибка кароче, вот как-то так