Size: a a a

DBA - русскоговорящее сообщество

2021 March 14

ВН

Валерий Новиков... in DBA - русскоговорящее сообщество
если смотреть отдельно размеры таблиц, там не получается 1025MB
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Валерий Новиков
если смотреть отдельно размеры таблиц, там не получается 1025MB
м.б. VACUUM давно не было?
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Валерий Новиков
из-за чего может быть такое, что SELECT pg_size_pretty( pg_database_size( db_name ) ); выдаёт 1025 MB, а несжатый бекап весит 600 MB?
Или индексы большие (pg_dump не дампит индексы, только их определения), в то время как pg_database_size выдаёт размер с учётом индексов.
источник

ВН

Валерий Новиков... in DBA - русскоговорящее сообщество
хм, индексов там достаточно, да
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Валерий Новиков
хм, индексов там достаточно, да
А, так это dump, а не backup — размеры могут сильно отличаться в любую сторону, это нормально.
источник

ВН

Валерий Новиков... in DBA - русскоговорящее сообщество
🤔
а чем дамп отличается от бэкапа..
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Валерий Новиков
хм, индексов там достаточно, да
ну вот и причина, скорее всего
Часто бывает наоборот — несжатый архив больше чем pg_database_size
Это связано с тем, что поля text, json, jsonb, bytea хранятся в бд  в сжатом виде, и при дампе без сжатия "раздуваются"
источник

ВН

Валерий Новиков... in DBA - русскоговорящее сообщество
сейчас Читал про разницу между дампом и бэкапом.
"Разница в том, что в случае повреждения файлов или операционной системы из бэкапа можно все восстановить. А дамп используется для разбора причин возникновения сбоя."

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

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Валерий Новиков
сейчас Читал про разницу между дампом и бэкапом.
"Разница в том, что в случае повреждения файлов или операционной системы из бэкапа можно все восстановить. А дамп используется для разбора причин возникновения сбоя."

получается, если дамп сделан через pg_dump, в случае повреждения базы через этот дамп ее не получится восстановить?
Ох.. как-то всё слишком безапелляционно сказано, не бывает так в реальном мире...
По моим представлениям бэкапы (или "дампы" — это, в общем смысле и отрыве от конкретной СУБД, всё игры слов) делятся на два типа: логический и физический.
pg_dump реализует логический бэкап (именно поэтому он, например, не бэкапит значения индексов), а физический — это просто копирование файлов бд (которое, без остановки бд и сброса всех логов транзакций может привести к неконсистентной копии —  в случае высоконагруженной БД точно приведет — но это другая тема)
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Валерий Новиков
🤔
а чем дамп отличается от бэкапа..
Примерно всем. ;)
Дамп — просто последовательность SQL-команд для успешного (в обычном случае) воссоздания базы.
А backup — это "физическая" копия данного кластера БД.
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
PavelDmitrenko
Ох.. как-то всё слишком безапелляционно сказано, не бывает так в реальном мире...
По моим представлениям бэкапы (или "дампы" — это, в общем смысле и отрыве от конкретной СУБД, всё игры слов) делятся на два типа: логический и физический.
pg_dump реализует логический бэкап (именно поэтому он, например, не бэкапит значения индексов), а физический — это просто копирование файлов бд (которое, без остановки бд и сброса всех логов транзакций может привести к неконсистентной копии —  в случае высоконагруженной БД точно приведет — но это другая тема)
Ну так все современные СУБД используют WAL (этот принцип, названия / детали реализаций отличаются), и, с учётом этого, возможно снимать консистентные backup-ы.
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Yaroslav Schekin
Примерно всем. ;)
Дамп — просто последовательность SQL-команд для успешного (в обычном случае) воссоздания базы.
А backup — это "физическая" копия данного кластера БД.
Позвольте не согласиться.
открываем https://www.postgresql.org/docs/9.1/backup.html
и видим, что под заголовком "Backup and Restore" скрывается и описание работы с pg_dump, и описания создания копии на уровне файловой системы, таким образом, в понятие "бэкап" входит и термин "дамп". Всё это игры слов кмк
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Yaroslav Schekin
Примерно всем. ;)
Дамп — просто последовательность SQL-команд для успешного (в обычном случае) воссоздания базы.
А backup — это "физическая" копия данного кластера БД.
А то, что вы описали — последовательность sql и "физическая" копия — это разные режимы работы pg_dump (за исключением того, что "бинарная" копия в терминологии постгре не является аналогом "физической" копии)
источник

A

Alexey in DBA - русскоговорящее сообщество
Че там постгре уже научилась делать бекап одной бд для разворачивания на новом кластере?
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Yaroslav Schekin
Ну так все современные СУБД используют WAL (этот принцип, названия / детали реализаций отличаются), и, с учётом этого, возможно снимать консистентные backup-ы.
Без полной остановки БД (со сбросом логов транзакций) копированием файлов БД на уровне файловой системы консистентные бэкапы снимать нельзя. Они могут получится консистентными (и то придётся подрезать логи) только случайно, если база не нагружена записью.
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
PavelDmitrenko
Позвольте не согласиться.
открываем https://www.postgresql.org/docs/9.1/backup.html
и видим, что под заголовком "Backup and Restore" скрывается и описание работы с pg_dump, и описания создания копии на уровне файловой системы, таким образом, в понятие "бэкап" входит и термин "дамп". Всё это игры слов кмк
Нет, не позволю. ;)

> и видим, что под заголовком "Backup and Restore" скрывается и описание работы с pg_dump

Эта документация написана не DBA (и чести проекту PostgreSQL не делает, IMNSHO), и я лично уже отсылал предложения о её исправлении, кстати.

> Всё это игры слов кмк

Вам "к" неправильно. ;)
Потому что backup — это такая штука, на основании которой можно построить recovery strategy, а на дампах в нетрирвиальном случае можно "построить" только её серьёзный провал.

> это разные режимы работы pg_dump

Нет. pg_dump вообще не снимает копий такого рода (физических/файловых), Вы путаете.
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
PavelDmitrenko
Без полной остановки БД (со сбросом логов транзакций) копированием файлов БД на уровне файловой системы консистентные бэкапы снимать нельзя. Они могут получится консистентными (и то придётся подрезать логи) только случайно, если база не нагружена записью.
Да, я знаю. И написал то же самое, нет?
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Yaroslav Schekin
Нет, не позволю. ;)

> и видим, что под заголовком "Backup and Restore" скрывается и описание работы с pg_dump

Эта документация написана не DBA (и чести проекту PostgreSQL не делает, IMNSHO), и я лично уже отсылал предложения о её исправлении, кстати.

> Всё это игры слов кмк

Вам "к" неправильно. ;)
Потому что backup — это такая штука, на основании которой можно построить recovery strategy, а на дампах в нетрирвиальном случае можно "построить" только её серьёзный провал.

> это разные режимы работы pg_dump

Нет. pg_dump вообще не снимает копий такого рода (физических/файловых), Вы путаете.
И всё же я буду верить официальной документации (по крайней мере до тех  пор, пока она не измениться), а не частному мнению. Простите.
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Alexey
Че там постгре уже научилась делать бекап одной бд для разворачивания на новом кластере?
Нет, не научился, конечно (и не научится, если принцип работы WAL не изменят кардинально).
И СУБД называется постргес. ;)
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
PavelDmitrenko
И всё же я буду верить официальной документации (по крайней мере до тех  пор, пока она не измениться), а не частному мнению. Простите.
Т.е. Вам не важно, соответствует ли оно реальности или нет, простите?
источник