powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / pg_basebackup и размер бэкапа
14 сообщений из 14, страница 1 из 1
pg_basebackup и размер бэкапа
    #40081717
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На двух серверах Ubuntu 18.04 установлен PostgreSQL 11.8 и настроена потоковая репликация. На обоих серверах в одно и то же время запускается pg_basebackup. При этом итоговый размер бэкапа на ведомом сервере почти в три раза меньше, чем на ведущем: 98 против 275 Гб. Предположительно, это произошло после того, как из одной таблицы было удалено около 200-250 Гб данных. VACUUM FULL этой таблицы не выполнялся. Физический размер базы, если смотреть с помощью du, одинаков на обоих серверах. Почему же столь существенно разнятся размеры бэкапов?
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40081728
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук,

любопытно бы поинтересоваться, а зачем вам в принципе pg_basebackup отдельно primary и standby?

В любом случае, возьмите результат pg_basebackup и сравните, что именно отличается и в каких директориях.
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40081730
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij
Безенчук,

любопытно бы поинтересоваться, а зачем вам в принципе pg_basebackup отдельно primary и standby?

В любом случае, возьмите результат pg_basebackup и сравните, что именно отличается и в каких директориях.

Это как в том анекдоте про человека с десятком билетиков и "проездным", на случай если другие потеряет...
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40081740
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук,

WAL-ы накопились?
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40081778
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На всякий случай проверьте, что ни чего лишнего (не относящегося к постгрес) не лежит в ../main/
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082032
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij

В любом случае, возьмите результат pg_basebackup и сравните, что именно отличается и в каких директориях.

Сравнил. Различиями можно пренебречь. Если сравнивать листинги бэкапов пофайлово, то в листинге архива большего размера дополнительно присутствует 8 файлов из директории pg_commit_ts. Если же сравнивать размеры файлов в бэкапах, то различается менее 1% файлов, что не даёт возможности понять, куда делись 180 Гб.


Павел Лузанов
WAL-ы накопились?
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082038
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Лузанов
WAL-ы накопились?

Нет, не накопились. Даже наоборот - на слейве размер директории pg_wal на 100 Мб больше.

А не может ли быть так, что при удалении около 200 Гб данных из таблицы и применении WAL на слейве, произошла какая-то реорганизация данных и некоторые файлы-сегменты не содержат в себе никакой информации и поэтому очень существенно сжались gzip?
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082046
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук
Melkij

В любом случае, возьмите результат pg_basebackup и сравните, что именно отличается и в каких директориях.

Сравнил. Различиями можно пренебречь

Безенчук
При этом итоговый размер бэкапа на ведомом сервере почти в три раза меньше, чем на ведущем: 98 против 275 Гб

Эти два утверждения полностью противоречат друг другу. Исправьте одно из них.
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082055
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сначала я получил листинги архивов:
tar tvzf /mnt/backup/master.tar.gz > master
tar tvzf /mnt/backup/slave.tar.gz > slave

Затем я их отсортировал по 6 полю (директория/имя файла) и выбрал только поля 3 (размер файла) и 6 (директория/имя файла):
sort -k 6 master | awk '{print $3,$6}' > master.sort
sort -k 6 slave | awk '{print $3,$6}' > slave.sort

Потом сделал вот так:
diff -y --suppress-common-lines master.sort slave.sort

Итог (слева - мастер, справа - слейв):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
234 backup_label                                              | 233 backup_label
231 backup_label.old                                          | 229 backup_label.old
278528 base/1/2840                                            | 286720 base/1/2840
253952 base/13125/2840                                        | 278528 base/13125/2840
180224 base/16385/10300176                                    | 8192 base/16385/10300176
24576 base/16385/10300176_fsm                                 | 16384 base/16385/10300176_fsm
10870784 base/16385/14791290                                  | 10878976 base/16385/14791290
7430144 base/16385/161077395                                  | 7438336 base/16385/161077395
4022272 base/16385/166142015                                  | 4014080 base/16385/166142015
735264768 base/16385/16795.328                                | 735076352 base/16385/16795.328
1785856 base/16385/16840                                      | 7880704 base/16385/16840
36470784 base/16385/17111676                                  | 36495360 base/16385/17111676
62529536 base/16385/189529                                    | 62611456 base/16385/189529
1359872 base/16385/224558829                                  | 1474560 base/16385/224558829
1220608 base/16385/224560702                                  | 1318912 base/16385/224560702
139264 base/16385/224561153_fsm                               | 147456 base/16385/224561153_fsm
317227008 base/16385/224562734                                | 317923328 base/16385/224562734
9084928 base/16385/224565429                                  | 9101312 base/16385/224565429
232005632 base/16385/224565433                                | 232398848 base/16385/224565433
1261568 base/16385/224566103                                  | 1253376 base/16385/224566103
237568 base/16385/224566144                                   | 245760 base/16385/224566144
298516480 base/16385/224566145.3                              | 298508288 base/16385/224566145.3
672972800 base/16385/224567144                                | 675553280 base/16385/224567144
2506752 base/16385/224567332                                  | 2514944 base/16385/224567332
303104 base/16385/224570291                                   | 311296 base/16385/224570291
253952000 base/16385/224570338                                | 254640128 base/16385/224570338
253353984 base/16385/224575661                                | 254115840 base/16385/224575661
720543744 base/16385/224575832.1                              | 729841664 base/16385/224575832.1
63184896 base/16385/224576969                                 | 63234048 base/16385/224576969
1777664 base/16385/224577331                                  | 1785856 base/16385/224577331
1744896 base/16385/224580409                                  | 1753088 base/16385/224580409
229376 base/16385/224580516                                   | 237568 base/16385/224580516
245760 base/16385/97911513                                    | 319488 base/16385/97911513
73728 base/16385/97911518                                     | 90112 base/16385/97911518
2400256 base/16385/97911525                                   | 2441216 base/16385/97911525
34455552 base/16385/97911528                                  | 35045376 base/16385/97911528
303104 base/7359856/2840                                      | 294912 base/7359856/2840
262144 pg_commit_ts/117C5                                     | 81920 pg_commit_ts/117C5
262144 pg_commit_ts/117C6                                     <
262144 pg_commit_ts/117C7                                     <
262144 pg_commit_ts/117C8                                     <
262144 pg_commit_ts/117C9                                     <
262144 pg_commit_ts/117CA                                     <
262144 pg_commit_ts/117CB                                     <
262144 pg_commit_ts/117CC                                     <
106496 pg_commit_ts/117CD                                     <
88 postgresql.auto.conf                                       | 111 postgresql.auto.conf
385 recovery.conf                                             < 
385 recovery.conf.pcmk                                        | 386 recovery.conf.pcmk
385 recovery.done                                             | 386 recovery.done

...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082057
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук,

Вы их распакуйте и сравнивнине несжатый размер.
Если он сильно отличается от того что файлы на диске занимают - это одно.
Если не отличается а сжатые размеры отличаются сильно - надо смотреть что там с сжатием такое странное.

Ну и комманда которой снимали base backup была бы полезной.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082062
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

pg_basebackup -v -z -Z1 -X stream -F t -c fast -P -D /mnt/backup

На счёт распаковки и сравнения - понял, сделаю позже.
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082226
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Распаковал, сравнил.

Размер директории с базой отличается на 2 Мб. Наиболее существенно различаются pg_wal: у слейва она больше на 8 Гб.

Уровень сжатия одинаков в обеих командах создания бэкапов - Z1.
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082234
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безенчук
Распаковал, сравнил.

Размер директории с базой отличается на 2 Мб. Наиболее существенно различаются pg_wal: у слейва она больше на 8 Гб.

Уровень сжатия одинаков в обеих командах создания бэкапов - Z1.


Очень странно... а у вас реплика от мастера не отвалилась случайно?
Если нет дальше уже придется файлы сравнивать на сжимаемость и на совпадение.

PS: а попробуйте распакованные base backup заново запаковать в tar/bzip2 например и сравнить размеры (проверить сжимаемость base backup независимыми средствами).

PPS: кстати а зачем вы -X stream делаете? обычно base backup делается с расчётом на рабочий wal архив.
А для снятия snapshot данных для долговременного хранения используется pg_dump который легко может в 5 раз меньше места занимать а то и в 20 (и такое я видел) по сравнению с base backup физическим (да и доставать с него отдельные таблицы удобнее).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
pg_basebackup и размер бэкапа
    #40082593
Безенчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk

PS: а попробуйте распакованные base backup заново запаковать в tar/bzip2 например и сравнить размеры (проверить сжимаемость base backup независимыми средствами).

Попробовал запаковать в tar + сжать bzip2:
Архив мастера занимает 164 Гб, архив слейва - 59. То есть, данные со слейва сжимаются сильнее. При сжатии bzip2 я не указал степень компрессии, поэтому использовалась степень сжатия по умолчанию.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / pg_basebackup и размер бэкапа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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