|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
Добрый день. СОдержание: 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' ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 14:02 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
- можно - см документацию - см документацию ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2020, 14:26 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
mefman, Я ее читал как на русском так и на английском языке. Там не дается описания ключей. Логично что Я задал этот вопрос здесь. Мне лично не понятно : %p заменяются полным путём к файлу, подлежащему архивации, а %f заменяются только именем файла. Что это означает на практике. Учитывая что в папке pg_wal огромное количество файлов их в смысле все указывать или дастаточно пути ? А при ресторе как быть тогда ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:47 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
noute, Дополню если у меня папка pg_wal весит 10 гигов. Могу ли я вписать ее в ahcive_comand для архивации gzip-ом или нет ?/var/lib/postgresql/10/main/pg_wal/ ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:35 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
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 не прописан. Типичная ошибка конфигурации. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 13:51 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
Melkij, Спасибо за ответ теперь стало понятно. Что не нужно подставлять путь до pg_wal. А делать по мануалу. В рамках которого база сама будет брать и сжимать Wal файлы. Единственное: два последних вопроса. 1. Правильно ли Я понимаю что нужно рассчитывать место для WAL файлов и в случае если я буду сжимать gzip-ом то и для архивов нужно расчитывать место ? 2. Ротацию логов база будет делать самостоятельно или нужно будет периодически подчишать файлы самостоятельно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 10:01 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
postgres просто запускает то, что написано в ahcive_comand и ожидает подтверждения успешности выполнения. После успешного выполнения, postgres'у совершенно пофигу на тот файл, что был скопирован и дальше никаких действий с ним postgres не будет делать => ротации логов в архивном каталоге не будет, а вот в pg_wal будет. Вам сперва надо понять, зачем вам эти wal файлы в архиве. Делаете ли вы бэкап базы так, чтобы можно было применить эти архивные wal файлы. Если вы не делаете верно бэкап, то эти wal файлы мусор и archive_mode можете вырубать. Но советую всё-таки иметь бэкапы и wal'ы за приемлемый для вас период и приемлемый для вас объем диска. Почитайте про pg_basebackup ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 12:42 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
noute Melkij, Спасибо за ответ теперь стало понятно. Что не нужно подставлять путь до pg_wal. А делать по мануалу. В рамках которого база сама будет брать и сжимать Wal файлы. Единственное: два последних вопроса. 1. Правильно ли Я понимаю что нужно рассчитывать место для WAL файлов и в случае если я буду сжимать gzip-ом то и для архивов нужно расчитывать место ? 2. Ротацию логов база будет делать самостоятельно или нужно будет периодически подчишать файлы самостоятельно ? 1)место куда идет архив базу вообще не касается (и если у вас вдруг архив на том же сервере и тем более на тех же дисках что и база - вы все неправильно сделали) и естественно под это надо место 2)каких именно? своих - автоматически как и раньше а wal архив базу не касается ее дело чтобы архивация сработала а что и как вы будете дальше с этим делать - ее не касается (т.е. ответ нет если вопрос про файлы в архиве). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 12:44 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
barman за вас всё сделает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 15:24 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 16:28 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
noute А можно самому подчишать эти файлы на лету Ни в коем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 16:37 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
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 сервере. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 16:37 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
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 хранить на тех же дисках - крайне странная затея с т.з. бекапа. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 22:33 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
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 можно как нибудь почистить ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 16:39 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
noute, см. процитированный ответ. Или выключите archive_mode или укажите archive_command. В обоих случаях база вычистит ненужные ей сегменты wal самостоятельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 17:01 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
noute Спасибо за советы. (Вы единственный кто реально дал дельные советы). А что если мне нужны pg_wal и Я не прописал archive_comand сами файлики в папке pg_wal можно как нибудь почистить ? а зачем они вам нужны? они копятся только потому что у вас не стоит работающая archive_comand конфигурация с archive_mode=on и без archive_command просто бессмысленная и не рабочая (wal файлы копятся). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 18:19 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
Добрый день. Спасибо всем тем кто отвечал на мой вопросы. Лично спасибо 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2020, 12:18 |
|
Дайте консультацию про archive_mode и archive_command.
|
|||
---|---|---|---|
#18+
noute нужно срочно что то делать То задать любой archive_command возвращающий код возврата успеха. Банально archive_command = '/bin/true'. Меняется по sighup, на чекпойнте старые wal будут удалены. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2020, 13:37 |
|
|
start [/forum/topic.php?fid=53&msg=39980550&tid=1994577]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 287ms |
total: | 407ms |
0 / 0 |