Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Дайте консультацию про archive_mode и archive_command. / 18 сообщений из 18, страница 1 из 1
10.07.2020, 14:02
    #39978133
noute
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
Добрый день.

СОдержание:
1. Описание системы
2. Моя ситуация
3. Вопросы



1. Описание системы:
a postgreSQL-10.
b Ubuntu 18
c Настроено каскадная репликация.


2. Моя ситуация
Проблема в папке pg_wal которая теперь весит уже добрых 10 гг.
Там у меня WAL файлы по 16 мегабайт.
В postgresql.conf - у меня стоит значения:
wal_keep_segments = 64
archive_mode = on.
Но archive_command не прописан.



3. Вопросы
********************************
Внимание вопросы
********************************
a.
Можно ли прописать значения архивирования gzip-ом и запустить
на лету без перезапуска базы ? Или нужен даунтайм ?
archive_command = 'gzip < %p > /var/lib/pgsql/archive/%f'

b.
Понимаю что нужен restore_command ЧТо нужно еще указать ?
restore_command = 'gunzip < /mnt/server/archivedir/%f > %p'

c.
Обьясните синтакисис команды Я ее не понимаю что означает %f и %p
'gzip < %p > /var/lib/pgsql/archive/%f'
restore_command = 'gunzip < /mnt/server/archivedir/%f > %p'
...
Рейтинг: 0 / 0
10.07.2020, 14:26
    #39978149
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
- можно
- см документацию
- см документацию
...
Рейтинг: 0 / 0
13.07.2020, 09:47
    #39978802
noute
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
mefman,

Я ее читал как на русском так и на английском языке. Там не дается описания ключей.
Логично что Я задал этот вопрос здесь.
Мне лично не понятно :
%p заменяются полным путём к файлу, подлежащему архивации, а %f заменяются только именем файла.

Что это означает на практике. Учитывая что в папке pg_wal огромное количество файлов их в смысле все указывать или дастаточно пути ?
А при ресторе как быть тогда ?
...
Рейтинг: 0 / 0
13.07.2020, 12:35
    #39978892
noute
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
noute,

Дополню если у меня папка pg_wal весит 10 гигов.
Могу ли я вписать ее в ahcive_comand для архивации gzip-ом или нет ?/var/lib/postgresql/10/main/pg_wal/ ??
...
Рейтинг: 0 / 0
13.07.2020, 13:51
    #39978955
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
noute
noute,

Дополню если у меня папка pg_wal весит 10 гигов.
Могу ли я вписать ее в ahcive_comand для архивации gzip-ом или нет ?/var/lib/postgresql/10/main/pg_wal/ ??

Вы не должны ничего трогать в pg_wal.

noute
Учитывая что в папке pg_wal огромное количество файлов

Неважно. Содержимым pg_wal база управляет самостоятельно.

archive_command штука очень простая - база берёт указанную строку в конфиге, заменяет в ней %p и %f и вызывает как команду shell. Всё остальное - делайте что хотите. Лишь бы взяли вот именно этот один конкретный файл WAL и куда-то надёжно сохранили. И это задача админа написать такую команду.
restore_command соответственно штука такая же - только оно умеет вдобавок ещё %r. Некая произвольная команда shell, которую выполнит база когда захочет будучи в recovery взять сегмент wal и для которой в результате должен появиться файл сегмента по пути %p

noute
archive_mode = on.
Но archive_command не прописан.

Типичная ошибка конфигурации.
...
Рейтинг: 0 / 0
14.07.2020, 10:01
    #39979313
noute
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
Melkij,

Спасибо за ответ теперь стало понятно. Что не нужно подставлять путь до pg_wal. А делать по мануалу.
В рамках которого база сама будет брать и сжимать Wal файлы.

Единственное: два последних вопроса.
1. Правильно ли Я понимаю что нужно рассчитывать место для WAL файлов и в случае если я буду сжимать gzip-ом то и для архивов нужно расчитывать место ?
2. Ротацию логов база будет делать самостоятельно или нужно будет периодически подчишать файлы самостоятельно ?
...
Рейтинг: 0 / 0
14.07.2020, 12:42
    #39979401
D0KX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
postgres просто запускает то, что написано в ahcive_comand и ожидает подтверждения успешности выполнения.
После успешного выполнения, postgres'у совершенно пофигу на тот файл, что был скопирован и дальше никаких действий с ним postgres не будет делать => ротации логов в архивном каталоге не будет, а вот в pg_wal будет.
Вам сперва надо понять, зачем вам эти wal файлы в архиве. Делаете ли вы бэкап базы так, чтобы можно было применить эти архивные wal файлы.
Если вы не делаете верно бэкап, то эти wal файлы мусор и archive_mode можете вырубать. Но советую всё-таки иметь бэкапы и wal'ы за приемлемый для вас период и приемлемый для вас объем диска.
Почитайте про pg_basebackup
...
Рейтинг: 0 / 0
14.07.2020, 12:44
    #39979403
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
noute
Melkij,

Спасибо за ответ теперь стало понятно. Что не нужно подставлять путь до pg_wal. А делать по мануалу.
В рамках которого база сама будет брать и сжимать Wal файлы.

Единственное: два последних вопроса.
1. Правильно ли Я понимаю что нужно рассчитывать место для WAL файлов и в случае если я буду сжимать gzip-ом то и для архивов нужно расчитывать место ?
2. Ротацию логов база будет делать самостоятельно или нужно будет периодически подчишать файлы самостоятельно ?


1)место куда идет архив базу вообще не касается (и если у вас вдруг архив на том же сервере и тем более на тех же дисках что и база - вы все неправильно сделали) и естественно под это надо место
2)каких именно? своих - автоматически как и раньше а wal архив базу не касается ее дело чтобы архивация сработала а что и как вы будете дальше с этим делать - ее не касается (т.е. ответ нет если вопрос про файлы в архиве).
...
Рейтинг: 0 / 0
15.07.2020, 15:24
    #39979976
big-trot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
barman за вас всё сделает
...
Рейтинг: 0 / 0
15.07.2020, 16:28
    #39980022
noute
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
Maxim Boguk
noute
Melkij,

Спасибо за ответ теперь стало понятно. Что не нужно подставлять путь до pg_wal. А делать по мануалу.
В рамках которого база сама будет брать и сжимать Wal файлы.

Единственное: два последних вопроса.
1. Правильно ли Я понимаю что нужно рассчитывать место для WAL файлов и в случае если я буду сжимать gzip-ом то и для архивов нужно расчитывать место ?
2. Ротацию логов база будет делать самостоятельно или нужно будет периодически подчишать файлы самостоятельно ?


1)место куда идет архив базу вообще не касается (и если у вас вдруг архив на том же сервере и тем более на тех же дисках что и база - вы все неправильно сделали) и естественно под это надо место
2)каких именно? своих - автоматически как и раньше а wal архив базу не касается ее дело чтобы архивация сработала а что и как вы будете дальше с этим делать - ее не касается (т.е. ответ нет если вопрос про файлы в архиве).


1. Спасибо за ответ. Теперь стало понятно. Да так как Я джун был не вкурсе про WAL-ы и они у меня на тех же дисках что и сама База Данных.
2. Ну под логов Я имел в виду WAL-ы в папке pg_wal. Если Я пропишу archive_command. В том плане что база будет gzip-ом сжимать архивы в нужную папку и автоматически удалять файлы которые сжала в папке pg_wal. Но из вашего ответа Я понял что нет.

P.S
А можно самому подчишать эти файлы на лету ? Там команда же даже есть pg_archivecleanup на сколько Я понимаю ее нужно запускать с ключом -d и указывать директорию. (Мануал читал - но блин страшно.)

Пример:
pg_archivecleanup -d /home/postgres/archive 00000002000000000000006B
...
Рейтинг: 0 / 0
15.07.2020, 16:37
    #39980028
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
noute
А можно самому подчишать эти файлы на лету

Ни в коем случае.
...
Рейтинг: 0 / 0
15.07.2020, 16:37
    #39980030
noute
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
D0KX
postgres просто запускает то, что написано в ahcive_comand и ожидает подтверждения успешности выполнения.
После успешного выполнения, postgres'у совершенно пофигу на тот файл, что был скопирован и дальше никаких действий с ним postgres не будет делать => ротации логов в архивном каталоге не будет, а вот в pg_wal будет.
Вам сперва надо понять, зачем вам эти wal файлы в архиве. Делаете ли вы бэкап базы так, чтобы можно было применить эти архивные wal файлы.
Если вы не делаете верно бэкап, то эти wal файлы мусор и archive_mode можете вырубать. Но советую всё-таки иметь бэкапы и wal'ы за приемлемый для вас период и приемлемый для вас объем диска.
Почитайте про pg_basebackup


Спасибо за ответ. Да делаю ручками бэкап pg_basebackup с ключом -D
А так же делаю дамп базы pg_dump.
Просто у Меня Я так понимаю ошибка в конфигураций:
1. Это то что pg_wal на тех же дисках что и База
2. archive_mode=on тогда как archive_command не прописан.
3. Из-за этого очень быстро растет папка pg_wal. И Я не знаю как ее подчистить на master сервере.
...
Рейтинг: 0 / 0
15.07.2020, 22:33
    #39980181
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
noute
2. archive_mode=on тогда как archive_command не прописан.
3. Из-за этого очень быстро растет папка pg_wal. И Я не знаю как ее подчистить на master сервере.

Да, это причина и закономерное следствие.
Выключите archive_mode если он вам не нужен - тогда база сможет удалить ненужные для обеспечения crash recovery wal.
Либо дайте любой archive_command который будет возвращать успешный код возврата - база вызовет эту команду для сегментов wal и сможет удалить ненужные для обеспечения crash recovery wal.
Будет эта команда реально вести архив WAL или нет - базу не волнует.

noute
1. Это то что pg_wal на тех же дисках что и База

pg_wal может жить там же где база. А вот архив wal хранить на тех же дисках - крайне странная затея с т.з. бекапа.
...
Рейтинг: 0 / 0
16.07.2020, 16:39
    #39980550
noute
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
Melkij
noute
2. archive_mode=on тогда как archive_command не прописан.
3. Из-за этого очень быстро растет папка pg_wal. И Я не знаю как ее подчистить на master сервере.

Да, это причина и закономерное следствие.
Выключите archive_mode если он вам не нужен - тогда база сможет удалить ненужные для обеспечения crash recovery wal.
Либо дайте любой archive_command который будет возвращать успешный код возврата - база вызовет эту команду для сегментов wal и сможет удалить ненужные для обеспечения crash recovery wal.
Будет эта команда реально вести архив WAL или нет - базу не волнует.

noute
1. Это то что pg_wal на тех же дисках что и База

pg_wal может жить там же где база. А вот архив wal хранить на тех же дисках - крайне странная затея с т.з. бекапа.



Спасибо за советы. (Вы единственный кто реально дал дельные советы).
А что если мне нужны pg_wal и Я не прописал archive_comand сами файлики в папке pg_wal можно как нибудь почистить ?
...
Рейтинг: 0 / 0
16.07.2020, 17:01
    #39980564
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
noute,

см. процитированный ответ. Или выключите archive_mode или укажите archive_command. В обоих случаях база вычистит ненужные ей сегменты wal самостоятельно.
...
Рейтинг: 0 / 0
16.07.2020, 18:19
    #39980591
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
noute

Спасибо за советы. (Вы единственный кто реально дал дельные советы).
А что если мне нужны pg_wal и Я не прописал archive_comand сами файлики в папке pg_wal можно как нибудь почистить ?


а зачем они вам нужны? они копятся только потому что у вас не стоит работающая archive_comand
конфигурация с archive_mode=on и без archive_command просто бессмысленная и не рабочая (wal файлы копятся).
...
Рейтинг: 0 / 0
20.07.2020, 12:18
    #39981739
noute
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
Добрый день. Спасибо всем тем кто отвечал на мой вопросы.
Лично спасибо Melkij,

Вопрос можно закрыть. Проблема решина.
Кому интересно:
1 Ошибка была в развертываний и в частности связана с опциями archive_mode=on
тогда как archive_command не была указана.
2. pg_wal у меня хранится там же где и база.
3. Это в свою очередь привело к росту файлов.

Как решить эту проблему.
1. Фундаментально - нужно решить нужен ли вам WAL или нет.
Если да то указывать archive_command и желательно не хранить на тех же дисках.
Если нет то указать archive_mode=off

2. Если вы все таки имеете такую же проблему как у Меня и нужно срочно что то делать то советую прочитать https://www.percona.com/blog/2019/07/10/wal-retention-and-clean-up-pg_archivecleanup

эта команда pg_archivecleanup
Позволяет зачишать файлы.
В начале нужно будет скопировать всю папку pg_wal
сделать бэкап pg_dump а так же pg_basebackup
и уже запускать pg_archivecleanup
...
Рейтинг: 0 / 0
20.07.2020, 13:37
    #39981781
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дайте консультацию про archive_mode и archive_command.
noute
нужно срочно что то делать

То задать любой archive_command возвращающий код возврата успеха. Банально archive_command = '/bin/true'. Меняется по sighup, на чекпойнте старые wal будут удалены.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Дайте консультацию про archive_mode и archive_command. / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]