Size: a a a

pgsql – PostgreSQL

2021 March 20

AS

Andrey Sychev in pgsql – PostgreSQL
Yaroslav Schekin
Вопрос в том, что важнее — "фактор времени" или данные?
В single user mode можно удалять, конечно, почему нет?
Спасибо за информацию. Сейчас важны уже данные. Но сейчас я уже могу их спокойно сдампить (по крайнем мере, выборочно), или проблемные индексы удалить, а потом сделать VACUUM.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Andrey Sychev
Спасибо за информацию. Сейчас важны уже данные. Но сейчас я уже могу их спокойно сдампить (по крайнем мере, выборочно), или проблемные индексы удалить, а потом сделать VACUUM.
> Но сейчас я уже могу их спокойно сдампить

Нет, не можете (если это действительно "битое" железо). Вы не знаете, сколько данных уже потеряно или искажено.
Так что:

> Сейчас важны уже данные.

Cool story. ;)
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Владимир Яворский
если кто-то знает, как освободить место, если на диске с базой уже 0 ?
В случае если раздел с БД на ext4 фс, то у этой фс по-умолчанию 5% места зарезервировано под файлы root юзера. В экстренном случае можно уменьшить или вовсе выключить этот резерв (tune2fs -m 0 /dev/...) и получить в распоряжение необходимое место.
Обычно мы такой трюк исполняем когда БД упала по месту и нужно ее запустить чтоб дальше уже приступить к чистке внутри БД.
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
спасибо, я пока выкрутился переносом pg_wal
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
но фс ext4
источник

k🥔

karrtopelka 🥔 in pgsql – PostgreSQL
привет, подскажите пожалуйста, у меня есть массив с числами, как мне возвращать обрезанный массив в зависимости от часа на данный момент, например: сейчас 17:00 будет, то я хочу чтобы вернуло массив [17, 19]. date_trunk('hour', current_timestamp) возвращает дату, а не число, и как делать фильтр по числам в массиве... Буду очень благодарен
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Andrey Sychev
Добрый день. БД PostgreSQL 9.6 перешла в режим только для чтения из-за XID wraparound. Перешёл в режим single mode, maintenance work mem установил в 70Гб, workmem в 15Гб, ОЗУ на сервере 120Гб. Запустил Vacuum. Через 5 часов Vacuum завершился с ошибкой из за того, что индекс поврежден и нужно сделать Reindex. Запустил reindex всей БД с такими же параметрами конфига, он проработал сутки очень медленно и не известно когда закончится. Вопросы: можно ли удалить некоторые таблицы в single user режиме? Как оценить прогресс reindex и/или vacuum, вообще стоит ли этим заниматься или проще весь кластер пересоздать? Размер БД несколько ТБ.
в дополнение

> Как оценить прогресс reindex и/или vacuum

для оценки работы вакуума в 9.6 появилась pg_stat_progress_vacuum view, пример запроса можно отсюда взять
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Владимир Яворский
но фс ext4
Вот любопытства ради посмотрите в вывод tune2fs -l (нужно указать имя девайса с фс), в Reserved block count и сопоставьте с Block count.
На больших фс там прям очень много лежит в запасах ))) И имеет смысл уменьшать вообще вцелом.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Andrey Sychev
Добрый день. БД PostgreSQL 9.6 перешла в режим только для чтения из-за XID wraparound. Перешёл в режим single mode, maintenance work mem установил в 70Гб, workmem в 15Гб, ОЗУ на сервере 120Гб. Запустил Vacuum. Через 5 часов Vacuum завершился с ошибкой из за того, что индекс поврежден и нужно сделать Reindex. Запустил reindex всей БД с такими же параметрами конфига, он проработал сутки очень медленно и не известно когда закончится. Вопросы: можно ли удалить некоторые таблицы в single user режиме? Как оценить прогресс reindex и/или vacuum, вообще стоит ли этим заниматься или проще весь кластер пересоздать? Размер БД несколько ТБ.
еще такой момент

> maintenance work mem установил в 70Гб,

в контексте конкретно вакуума, в коде стоит ограничение в 1GB, поэтому указывать больше - нет смысла.
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Дропнул я как-то самую «старую» таблицу при врапэраунде. И наткнулся на баг, при котором «возраст» базы не мог уменьшиться без вакуума той самой удалённой таблицы.
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Баг-то уже несколько лет как починен, а осадочек остался.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
в дополнение

> Как оценить прогресс reindex и/или vacuum

для оценки работы вакуума в 9.6 появилась pg_stat_progress_vacuum view, пример запроса можно отсюда взять
В single-user mode? ;)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
karrtopelka 🥔
привет, подскажите пожалуйста, у меня есть массив с числами, как мне возвращать обрезанный массив в зависимости от часа на данный момент, например: сейчас 17:00 будет, то я хочу чтобы вернуло массив [17, 19]. date_trunk('hour', current_timestamp) возвращает дату, а не число, и как делать фильтр по числам в массиве... Буду очень благодарен
См. extract().
источник

k🥔

karrtopelka 🥔 in pgsql – PostgreSQL
Yaroslav Schekin
См. extract().
да, уже нашел, только вот никак не могу найти функцию фильтра для массива..
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
karrtopelka 🥔
да, уже нашел, только вот никак не могу найти функцию фильтра для массива..
А такой и нет. Почему Вы вообще пользуетесь массивами, а не "реляционной" схемой?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Yaroslav Schekin
В single-user mode? ;)
хороший вопрос, да, у меня нет ответа.
Но если вы уверены/знаете что в single-user mode это работает по другому, то неплохо подтвердить свои слова ссылкой на код или документацию.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
хороший вопрос, да, у меня нет ответа.
Но если вы уверены/знаете что в single-user mode это работает по другому, то неплохо подтвердить свои слова ссылкой на код или документацию.
Вы просто не подумали перед тем, как это написать, я практически уверен.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Yaroslav Schekin
Вы просто не подумали перед тем, как это написать, я практически уверен.
>  я практически уверен.

сорри, но это не аргумент.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Engineering is done with numbers. Analysis without numbers is only an opinion.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
>  я практически уверен.

сорри, но это не аргумент.
Да, это не аргумент — это намёк.
Я могу "разжевать", если настаиваете — чтоб Вам стало стыдно.
Или можете всё-таки сложить два и два додуматься самостоятельно. ;)
источник