GB
сейчас весит 88 кб
но на самом сервере места свободно стало больше только на 100 гб
вакуумацию сделал. Что нужно еще сделать чтобы место появилось?))
Если длинных / старых транзакций (которые начались до truncate) нет, попробуйте "CHECKPOINT;"
а после тракейта, нужно перезагружать бд ? вроде как вижу зависшие удаленные файлы на серваке
Нет, не нужно. Что такое "зависшие удаленные файлы" (это после CHECKPOINT?)?
я еще чекпоинт не сделал, так как не понимаю пока что это такое, пока читаю( а удаленные файлы, это вот такого рода /var/lib/postgresql/9.5/main/base/16384/21135.63 (deleted) postgres 1862762 postgres 100u REG 9,127 1073741824 74718150
я правильно понимаю, просто выполнить checkpoint ?
Тогда да, это нормально (и так и будет до checkpoint, если я правильно помню). > я правильно понимаю, просто выполнить checkpoint ? Да. По её завершении они освобождаются, если я правильно помню.
не помогло (( Даже посмотрел локи, там пусто ( буду делать рестарт.
надо 2 чекпойнта делать для освобождения ресурсов. рестарт — плохая привычка, не надо этим увлекаться
я походу всё таки не до конца понял, про это чекпоинт. Может есть что-то толковое почитать или можете обьяснить на пальцах? Спасибо
контрольная точка. вся грязные страницы синхронизируются с диском, в транзакционный лог добавляется метка о контрольной точке, в контрольный файл также делается отметка о моменте синхронизации базы с диском (на случай екавери). также она отдаёт в систему ресурсы, ротирует WAL-файлы и ещё куча всего
всё равно не понимаю, была себе база, ничего не трогала, пришел Truncate и очистил всё, WAL записали, Vacuum full сделали. Но на диске место осталось также. выполнил checkpoint, но ничего не произошло. Как в этом случае второй раз может помочь chekpoint ?
Я вот попробовал на тестовой базе (12.4) — всё работает и с первого раза. Какая это полная версия PostgreSQL (может, в этом дело)?
PostgreSQL 9.5.22 on x86_64-pc-linux-gnu (Ubuntu 9.5.22-1.pgdg20.04+1), compiled by gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0, 64-bit
я кажись понял в чём была проблема. Я ж чекпоинт делаю со своего терминала(клиентский), а нужно скорей всего под суперюзер или нет?
Кхе-кхе: ERROR: must be superuser to do CHECKPOINT Т.е. какой-то у Вас неправильный клиент (или Вы забыли перелогиниться и работаете под superuser). ;)
а, у меня тут тоже гранты супер юзера )))
чекпойнт обычно база делает сама, в фоне, он занимает длительное время. поэтому всякая чистка ресурсов осуществляется после 2-х чекпойнтов, для гарантии
Обсуждают сегодня