Size: a a a

pgsql – PostgreSQL

2021 March 17

СК

Сергей Кравчук... in pgsql – PostgreSQL
Gopneg
господа, у меня есть два сервака: мастер и стандбу
я хочу снимать бакупы со стандбу сервера
pg_start_backup
copy files
pg_stop_backup

затык в том что на стандбу сервере pg_start_backup не хочет работать, в принципе это очевидно было что не захочет
запускать очевидно надо на мастере, но вопрос в том, что стандбу не засинкан с мастером намертво, когда на стандбу будет засинкано все с мастера из журналов и возможно будет констистентно копировать файлы из data?

в доке не нашел как со стандбу снимать бакупы копированием файлов
а pg_base_backup чем не угодил ?
так бекап нужен ?
или дамп ?
источник

G

Gopneg in pgsql – PostgreSQL
не угодил тем что у меня все через 7zip уже сделано и работает, сжимает быстрее/лучше и контроля больше у меня над копированием
источник

G

Gopneg in pgsql – PostgreSQL
вопрос только в том что бакуп сейчас хочу с реплики снимать, что бы мастер не грузить
источник

G

Gopneg in pgsql – PostgreSQL
по идее pg_base_backup делает же тоже самое что pg_start_backup + копирование, ну не считая хвостов журнала, которые у меня один фиг копируются

вопрос только в том что бы быть увереным когда я могу на стандбу быть уверен что все засинкано и ждет бакупа
источник

G

Gopneg in pgsql – PostgreSQL
https://wiki.postgresql.org/wiki/Streaming_Replication

в принципе наверное можно сделать как написано тут
12. You can calculate the replication lag by comparing the current WAL write location on the primary with the last WAL location received/replayed by the standby. They can be retrieved using pg_current_xlog_location on the primary and the pg_last_xlog_receive_location/pg_last_xlog_replay_location on the standby, respectively.

но может есть попроще как-то способ, не высчитывая в цикле когда они там засинкаются
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
насколько могу судить..
pg_start_backup вносит изменения в инстанс базы ( могу ошибаться)
а значит не может быть запущен на стендбай сервере

но если у вас вопрос только в том как понять, синхронна ли реплика с мастером
то мы используем на реплике вот такой запрос для вычисления лага репликации
select extract(epoch FROM now()-pg_last_xact_replay_timestamp())::numeric as replication_lag
результат в секундах
источник

G

Gopneg in pgsql – PostgreSQL
ок, спасибо, буду в цикле ждать
источник

GG

Gennadiy Gorbunov in pgsql – PostgreSQL
Приветствую, подскажите в функции для дат ... (trunc(sysdate), 1006); что могут означать эти цифры?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Gopneg
вопрос только в том что бакуп сейчас хочу с реплики снимать, что бы мастер не грузить
> не угодил тем что у меня все через 7zip уже сделано и работает, сжимает быстрее/лучше и контроля больше у меня над копированием

Ну почему было не взять готовые решения (зачем обязательно изобретать велосипед), а? ;(
По вопросам:

> в доке не нашел как со стандбу снимать бакупы копированием файлов

Вот это внимательно / целиком прочитали?
https://www.postgresql.org/docs/current/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP

Экспериментировали?
И да, документация про это в самом деле не исчёрпывающая, насколько я помню.

> вопрос только в том что бы быть увереным когда я могу на стандбу быть уверен что все засинкано и ждет бакупа

Вкратце, всё равно придётся либо задействовать primary (по ссылке написано, как), либо ждать, либо вообще делать не stand-alone backups (т.е. рассчитывать на WAL archive... но почему бы и нет?).
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
Gennadiy Gorbunov
Приветствую, подскажите в функции для дат ... (trunc(sysdate), 1006); что могут означать эти цифры?
а документация функции что говорит об этом ?
источник

G

Gopneg in pgsql – PostgreSQL
Yaroslav Schekin
> не угодил тем что у меня все через 7zip уже сделано и работает, сжимает быстрее/лучше и контроля больше у меня над копированием

Ну почему было не взять готовые решения (зачем обязательно изобретать велосипед), а? ;(
По вопросам:

> в доке не нашел как со стандбу снимать бакупы копированием файлов

Вот это внимательно / целиком прочитали?
https://www.postgresql.org/docs/current/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP

Экспериментировали?
И да, документация про это в самом деле не исчёрпывающая, насколько я помню.

> вопрос только в том что бы быть увереным когда я могу на стандбу быть уверен что все засинкано и ждет бакупа

Вкратце, всё равно придётся либо задействовать primary (по ссылке написано, как), либо ждать, либо вообще делать не stand-alone backups (т.е. рассчитывать на WAL archive... но почему бы и нет?).
как только начинаешь юзать чота готовое, начинаются либо проблемы с совместимостью, либо с оплатой этой херни

а велосипед уже изобретен и работает на мастере

экспериментировать на базе в 700гб чот времени жалко, хотел вот конкретное место в доке увидеть как быть увереным
источник

GG

Gennadiy Gorbunov in pgsql – PostgreSQL
Сергей Кравчук
а документация функции что говорит об этом ?
Вот там как раз и не нашел ответа, там про дни, мес и года, но вот что за 1006....
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Сергей Кравчук
насколько могу судить..
pg_start_backup вносит изменения в инстанс базы ( могу ошибаться)
а значит не может быть запущен на стендбай сервере

но если у вас вопрос только в том как понять, синхронна ли реплика с мастером
то мы используем на реплике вот такой запрос для вычисления лага репликации
select extract(epoch FROM now()-pg_last_xact_replay_timestamp())::numeric as replication_lag
результат в секундах
Когда на долгое время пропадает активность, изменяющая БД, этот запрос начинает семафорить впустую. Более правильно снимать поля *lag из pg_stat_replication на мастере.
источник

G

Gopneg in pgsql – PostgreSQL
с мастера снимать лаг это наверное правильнее, сенкс
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
Михаил Шурутов
Когда на долгое время пропадает активность, изменяющая БД, этот запрос начинает семафорить впустую. Более правильно снимать поля *lag из pg_stat_replication на мастере.
есть такое, но да, снимать лаг реплики с мастера нам тоже показалось странным )
но с таким поведением приходится мериться, вопрос с границами алерта и временем работы триггеров в заббиксе
источник

G

Gopneg in pgsql – PostgreSQL
если инициировать бакуп все равно на мастере, то и лаг с него снимать уже ок
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Gopneg
как только начинаешь юзать чота готовое, начинаются либо проблемы с совместимостью, либо с оплатой этой херни

а велосипед уже изобретен и работает на мастере

экспериментировать на базе в 700гб чот времени жалко, хотел вот конкретное место в доке увидеть как быть увереным
> как только начинаешь юзать чота готовое, начинаются либо проблемы с совместимостью,

Совместимостью с чем?

> либо с оплатой этой херни

Все основные решения для backup PostgreSQL бесплатны, just FYI. ;)

> экспериментировать на базе в 700гб чот времени жалко

А Вы создайте тестовый кластер и реплику (в нормальных дистрибутивах это дело 5-10 минут, если что), и экспериментируйте — если уж "влезли" в это дело, такое должно быть очень полезно.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Gennadiy Gorbunov
Вот там как раз и не нашел ответа, там про дни, мес и года, но вот что за 1006....
А Вы уверены, что это вообще PostgreSQL?
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Gopneg
как только начинаешь юзать чота готовое, начинаются либо проблемы с совместимостью, либо с оплатой этой херни

а велосипед уже изобретен и работает на мастере

экспериментировать на базе в 700гб чот времени жалко, хотел вот конкретное место в доке увидеть как быть увереным
700 ГБ - это совсем не впечатляющий объём БД. И эксперимент - он таки нужен, при любых раскладах. Вот вам для затравки: https://ru-postgres.livejournal.com/66359.html
ЗЫ. pg_basebackup умеет в сжатие и выкачивать все необходимые WAL-ы, чтобы инстанс взлетел после восстановления в консистентном состоянии
источник

G

Gopneg in pgsql – PostgreSQL
у меня и так все консистентно взлетает после восстановления с мастера, проблема только со стандбу
источник