powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Vacuum Full без полного лока таблицы
25 сообщений из 154, страница 5 из 7
Vacuum Full без полного лока таблицы
    #38782966
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura31Как поступать с таблицами в которых не достаточна места?

Никак, они занимают сколько занимают.
Если места не хватает то придумывать что и как удалять или места больше на дисках выделять.
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783246
yura31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ, а можно как то подробнее или ссылку на ман по этой теме? Места на разделе где БД более чем достаточно.
df -h|grep pos
/dev/sdb1 197G 110G 78G 59% /var/lib/postgresql

Код: sql
1.
2.
3.
4.
5.
6.
7.
select pg_size_pretty(pg_relation_size( 'tasks' )) as pg_relation_size, pg_size_pretty(pg_total_relation_size( 'tasks' )) as pg_total_relation_size;
 pg_relation_size | pg_total_relation_size 
------------------+------------------------
 2216 MB          | 18 GB
(1 row)

./pgcompact -h 127.0.0.1 -U postgres --dbname dbname -t tasks --reindex -v info --no-routine-vacuum


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Tue Oct 21 14:58:48 2014 INFO Database connection method: psql.
Tue Oct 21 14:58:48 2014 dbname INFO Created environment.
Tue Oct 21 14:58:48 2014 dbname NOTICE Statictics calculation method: approximation.
Tue Oct 21 14:59:40 2014 dbname, public.tasks INFO Vacuum initial: 283615 pages left, duration 52.622 seconds.
Tue Oct 21 14:59:40 2014 dbname, public.tasks NOTICE Statistics: 283615 pages (2398931 pages including toasts and indexes), approximately 9.86% (27967 pages) can be compacted reducing the size by 218 MB.
Tue Oct 21 14:59:40 2014 dbname, public.tasks INFO Skipping processing: 9.86% space to compact from 20% minimum required.
Tue Oct 21 14:59:40 2014 dbname, public.tasks, pg_toast.pg_toast_16606 INFO Vacuum initial: 0 pages left, duration 0.011 seconds.
Tue Oct 21 14:59:40 2014 dbname, public.tasks, pg_toast.pg_toast_16606 INFO Skipping processing: empty or 1 page table.
Tue Oct 21 14:59:40 2014 dbname NOTICE Processing complete.
Tue Oct 21 14:59:40 2014 dbname NOTICE Processing results: size reduced by 0 bytes (-16 kB including toasts and indexes) in total.
Tue Oct 21 14:59:40 2014 NOTICE Processing complete: 0 retries from 10.
Tue Oct 21 14:59:40 2014 NOTICE Processing results: size reduced by 0 bytes (-16 kB including toasts and indexes) in total, 0 bytes (-16 kB) dbname.
Tue Oct 21 14:59:40 2014 dbname INFO Dropped environment.



Что не так делаю?
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783280
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura31Спасибо за ответ, а можно как то подробнее или ссылку на ман по этой теме? Места на разделе где БД более чем достаточно.
df -h|grep pos
/dev/sdb1 197G 110G 78G 59% /var/lib/postgresql

Код: sql
1.
2.
3.
4.
5.
6.
7.
select pg_size_pretty(pg_relation_size( 'tasks' )) as pg_relation_size, pg_size_pretty(pg_total_relation_size( 'tasks' )) as pg_total_relation_size;
 pg_relation_size | pg_total_relation_size 
------------------+------------------------
 2216 MB          | 18 GB
(1 row)

./pgcompact -h 127.0.0.1 -U postgres --dbname dbname -t tasks --reindex -v info --no-routine-vacuum


Код: sql
1.
2.
3.
<>
Tue Oct 21 14:59:40 2014 dbname, public.tasks INFO Skipping processing: 9.86% space to compact from 20% minimum required.
<>



Что не так делаю?а чего вы ожидаете ?
скорее всего -- чего-то странного


снесите индексы, дропните тосты -- может быть и подгоните размер таблицы к полному размеру таблицы
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783379
Ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ы
Гость
yura31,

В вашей таблице слишком мало мусора, чтобы компактор ее сжал добровольно, как заставить сжимать принудительно, вам уже писали выше.
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783442
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыyura31,

В вашей таблице слишком мало мусора, чтобы компактор ее сжал добровольно, как заставить сжимать принудительно, вам уже писали выше.поскольку юра с упорством маньяка приводит левое (не относящееся к делу) сравнение полного размера таблицы (с индексами и тостами) с размером голого "релейшена" (без индексов и тостов) предполагаю, что он хочет добиться странного -- а именно сжать таблицу до 2216 MB.

объяснять ему ,что при хотении странного, надобно первым делом себя перепроверить -- дело важное, но малоперспективное.
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783458
yura31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ы, возможно Вы правы. Завтра попробую сделать ваккум фулл этой таблицы и показать результат.

лопата, Все что я предоставляю, я понимаю, чего я не понимаю, я спрашиваю. И не надо умничать.

pg_relation_size | pg_total_relation_size
------------------+------------------------
2216 MB | 18 GB

Это я предоставил для Максима, для подтверждения что свободного места на дисках больше чем занимает таблица. С названия полей и ежу понятно что с индексами, а что без, нет чего сказать\помочь, пройдите лучше мимо!
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783528
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura31Ы, возможно Вы правы. Завтра попробую сделать ваккум фулл этой таблицы и показать результат.

лопата, Все что я предоставляю, я понимаю, чего я не понимаю, я спрашиваю. И не надо умничать.

pg_relation_size | pg_total_relation_size
------------------+------------------------
2216 MB | 18 GB

Это я предоставил для Максима, для подтверждения что свободного места на дисках больше чем занимает таблица. С названия полей и ежу понятно что с индексами, а что без, нет чего сказать\помочь, пройдите лучше мимо!вам по кругу второй раз написали, что свободного места (то, чего можно ужать) в таблице меньше 20%.

чтобы сжать меньше 20 (чтобы компактор не увиливал) -- используйте ключ компактора --force (это опять не я, а раньше написали)
т.е. чего тут не ясно -- не ясно. хехе
т.ч. мне остаётся только умничать.
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783566
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura31Ы, возможно Вы правы. Завтра попробую сделать ваккум фулл этой таблицы и показать результат.

лопата, Все что я предоставляю, я понимаю, чего я не понимаю, я спрашиваю. И не надо умничать.

pg_relation_size | pg_total_relation_size
------------------+------------------------
2216 MB | 18 GB

Это я предоставил для Максима, для подтверждения что свободного места на дисках больше чем занимает таблица. С названия полей и ежу понятно что с индексами, а что без, нет чего сказать\помочь, пройдите лучше мимо!

попробуйте для интереса запустить с ключами --force --reidex

но вообще не понятно откуда вывод "свободного места на дисках больше чем занимает таблица".
вы почитайте что эти две функции считают
1)размер файла собственно таблицы на диске
2)суммарный размер файлов относящихся к таблице (включая toast, все индексы и прочая)
при такой большой разнице у вас или очень много индексов или в таблице большой toast (если вы в ней храните большие по длинне тексты или картинки или еще какой xml то это нормальная ситуация).
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783725
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,
не подскажете -- реиндекс у вас вызывается стандартный, блокирующий, или вы что-то там конкурентно делаете ?

-- у меня есть постоянно обновляющиеся таблички с индексами раздутыми примерно втрое[оптимистическая оценка]. а поскольку постоянно висят какие-то недобитые 10 и более минутные транзакции (текущие отчеты, джобы) -- интересно их реиндексить не сильно блокируя.
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38783771
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лопатаMaxim Boguk,
не подскажете -- реиндекс у вас вызывается стандартный, блокирующий, или вы что-то там конкурентно делаете ?

-- у меня есть постоянно обновляющиеся таблички с индексами раздутыми примерно втрое[оптимистическая оценка]. а поскольку постоянно висят какие-то недобитые 10 и более минутные транзакции (текущие отчеты, джобы) -- интересно их реиндексить не сильно блокируя.

неблокирующий (через конкурентный create/drop)
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38784168
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura31
Код: plaintext
1.
2.
3.
 pg_relation_size | pg_total_relation_size 
------------------+------------------------
 2216 MB          | 18 GB


По документации :
`pg_relation_size` возвращает размер таблицы без индексов, тостов и вспомогательных данных (FSM, VM).

`pg_total_relation_size` возвращает размер таблицы включая все индексы, тосты и прочая.

Ни одна из этих функций не лезет внутрь и не проверяет видимость данных, т.е. они не могут быть использованы для определения степени раздутости таблицы и/или индексов.
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38786075
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://github.com/pgexperts/pgx_scripts/tree/master/administration
примеры подходов к замеру блоатов:
* index_bloat_check.sql
* table_bloat_check.sql
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38786079
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurin,

ну и у Максима там тоже должна быть мерилка блоата
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38786242
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha TyurinMisha Tyurin,

ну и у Максима там тоже должна быть мерилка блоата

лучшие мерилки это pgstattuple/pgstatindex из pgstattuple contrib
они во всяком случае реальные цифры дают а не непонятное приближение посчитанное по заумной эвристике
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38786806
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukMisha TyurinMisha Tyurin,

ну и у Максима там тоже должна быть мерилка блоата

лучшие мерилки это pgstattuple/pgstatindex из pgstattuple contrib
они во всяком случае реальные цифры дают а не непонятное приближение посчитанное по заумной эвристике

pgstattuple contrib
+1

ну да, ну да
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38879334
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

Спасибо за прекрасный инструмент!
Сегодня (да, вот так вот поздно) нашел этот тред на форуме и с большим интересом ознакомился.
Исходник инструмента брал вот отсюда:
GitHub PostgreSQL-Consulting
Я работаю на windows и поэтому сначала озаботился установкой Perl.
Остановилcя на ActivePerl 5.20.1.2000
Попробовал выполнить и столкнулся с проблемой - функция getpwuid($<) (её просто нет в реализации под windows)
Поискав.. нашел решение - заменить на getlogin()
Заработало!
Попробовал на своей локальной БД (6 Гб). Всё отработало без ошибок.
У меня стоит PostgreSQL 9.4.1 (64 bit)
Возможно мой опыт использования на Windows будет кому-то полезен.

Есть предложение
- не нашел опций для задания вывода всех информационных сообщений в файл лога
запуск вида ... > may.log это конечно как вариант, но виде отдельной опции : на экран только ошибки, а в лог детали (это просто как пример)
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38879628
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufos,


grufosЯ работаю на windows и поэтому сначала озаботился установкой Perl.Первое что вам скажут - поставьте Линукс. Просто потому что Линукс для Пг - родная ОС, в то время, как Винодус для ПГ не является основной ОС. Нет, там он тоже работает, но медленнее и не всегда очевидно. + бывают специфичные для винды ошибки.

Но основной довод - тут очень мало кто знает как готовит Пг на Венде, по причине того, что это никому не надо было. Спецов мало.
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38879641
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufosMaxim Boguk,

Спасибо за прекрасный инструмент!
Сегодня (да, вот так вот поздно) нашел этот тред на форуме и с большим интересом ознакомился.
Исходник инструмента брал вот отсюда:
GitHub PostgreSQL-Consulting
Я работаю на windows и поэтому сначала озаботился установкой Perl.
Остановилcя на ActivePerl 5.20.1.2000
Попробовал выполнить и столкнулся с проблемой - функция getpwuid($<) (её просто нет в реализации под windows)
Поискав.. нашел решение - заменить на getlogin()
Заработало!
Попробовал на своей локальной БД (6 Гб). Всё отработало без ошибок.
У меня стоит PostgreSQL 9.4.1 (64 bit)
Возможно мой опыт использования на Windows будет кому-то полезен.

Есть предложение
- не нашел опций для задания вывода всех информационных сообщений в файл лога
запуск вида ... > may.log это конечно как вариант, но виде отдельной опции : на экран только ошибки, а в лог детали (это просто как пример)

Это вообще сюрприз что оно хоть как то под Win работает если честно. Я о таком варианте даже не думал когда разрабатывал.
Про лог в файл - продумаю и добавлю в течении какого то времени (идея наверное небесмысленная хотя я в 100% случаев использую >pgc.log).

--Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38956834
yura31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
Подскажите пожалуйста, как работает pgcompact в нативной мастер-слейв репликации. Пробовал в такой связке, у меня на время процедуры синхронизация останавливалась. После окончание все восстанавливалось с архивов обратно.
Можно это обойти?

Зарание спасибо!
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38956955
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura31Maxim Boguk,
Подскажите пожалуйста, как работает pgcompact в нативной мастер-слейв репликации. Пробовал в такой связке, у меня на время процедуры синхронизация останавливалась. После окончание все восстанавливалось с архивов обратно.
Можно это обойти?

Зарание спасибо!

pgcompact на репликацию вообще никак влиять не должен и не может.
Но количество wal генерируемых при его работе может быть заметно выше обычного.
Могло происходить следующее:
1)не хватала канала между мастером и репликой на передачу всего потока wal
и в итоге
2)в какой то момент просто не хватило установленного у вас wal_keep_segments и реплика отвалилась.

Стоит логи реплики посмотреть на этот счет. И возможно поставить какое то разумное значение для wal_keep_segments (5000 например только проверив что у вас места на дисках хватает).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38957000
yura31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,
>1)не хватала канала между мастером и репликой на передачу всего потока wal
Да, Вы правы, спасибо!
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38967168
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

Вопрос по документации выдаваемой по ключу --man

--no-reindex
Reindex tables after processing.
по наименовании ключа "--no-reindex" можно сказать, что эта опция говорит об отключении индексирования.
А вот во описанию ключа: Переиндексация таблиц после обработки. (То есть включение индексирования)
Здесь что-то не так или может быть я не правильно что-то из этих 2-х строк читаю ...
Рассудите...

В теле скрипта я вижу, что добавился новый ключ
'i|initial-reindex' => \$initial_reindex
но его нет в описании в --man
можно услышать ваш комментарий?
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38967169
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufos,

Мнда давненько я в --man не заглядывал. Поправим на днях.
...
Рейтинг: 0 / 0
Vacuum Full без полного лока таблицы
    #38967675
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufosMaxim Boguk,

Вопрос по документации выдаваемой по ключу --man

--no-reindex
Reindex tables after processing.
по наименовании ключа "--no-reindex" можно сказать, что эта опция говорит об отключении индексирования.
А вот во описанию ключа: Переиндексация таблиц после обработки. (То есть включение индексирования)
Здесь что-то не так или может быть я не правильно что-то из этих 2-х строк читаю ...
Рассудите...

В теле скрипта я вижу, что добавился новый ключ
'i|initial-reindex' => \$initial_reindex
но его нет в описании в --man
можно услышать ваш комментарий?

Вывод --man поправили
Новую версию выложили.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Vacuum Full без полного лока таблицы
    #39669780
gav21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оставлю положительный отзыв о работе тулзы.
Использовал на бою, за 23 часа вычистила 270Гб таблицу, высвободив в ОС около 230Гб.
Из 23 часов, последние 8 часов это работа вакуума, который кусками возвращал место в ОС (phase: truncating heap)
(кстати не понял этот момент, почему итерационно. Я ожидал возврат большим куском сразу по аналогии с truncate only в MS SQL :))
...
Рейтинг: 0 / 0
25 сообщений из 154, страница 5 из 7
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Vacuum Full без полного лока таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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