Сжатие базы данных PostgreSQL.
При использовании PostgreSQL в O&K Print Watch и настройке сохранения содержимого распечатанных документов, размер базы данных на диске может быть очень большим. Используйте ограничение по размеру для хранения распечатанных документов в O&K Print Watch.
Одной из особенностей PostgreSQL является накопление "мертвых" записей, которые возникают в результате обновлений и удаления данных. Чтобы оптимизировать производительность базы данных и освободить занимаемое пространство, необходимо периодически использовать команду VACUUM.
Почему размер базы данных не уменьшается при удалении записей?
Когда записи удаляются в PostgreSQL, они не удаляются физически с диска сразу. Вместо этого они помечаются как "мертвые" и становятся недоступными для будущих запросов. Физическое удаление мертвых записей и освобождение занимаемого ими пространства осуществляется только с помощью команды VACUUM FULL.
Важно понимать, что стандартный VACUUM освобождает пространство внутри таблицы для повторного использования, но это пространство не возвращается операционной системе. Только VACUUM FULL сжимает таблицы и уменьшает их физический размер на диске, возвращая неиспользуемое пространство.
Что делает VACUUM?
Команда VACUUM FULL выполняет очистку базы данных, удаляя мертвые записи и освобождая пространство, которое затем может быть использовано для новых операций. Ее выполнение возвращает неиспользуемое пространство операционной системе.
Этот процесс требует эксклюзивной блокировки таблиц, что делает её недоступной для других операций на время выполнения. Рекомендуется запускать процесс сжатия БД PRNWATCH в нерабочее время, когда никто из пользователей не печатает.
Пример использования VACUUM FULL в pgAdmin:
Пример запуска VACUUM FULL с использованием psql:
set PGPASSWORD = пароль
psql -U postgres -d PRNWATCH -c "VACUUM FULL VERBOSE;"
psql -U postgres -d PRNWATCH -c "REINDEX DATABASE PRNWATCH;"
Важно: При выполнении VACUUM FULL PostgreSQL временно создает полную копию таблицы, что требует наличие свободного пространства на диске с БД.
Пример уменьшения размера БД с использованием Backup и Restore:
Если в базе данных накопилось много неиспользуемого пространства, но операция VACUUM FULL недоступна из-за нехватки дискового пространства или времени простоя, можно воспользоваться стратегией Backup и Restore для уменьшения размера базы данных на диске.
Шаги для выполнения Backup и Restore с использованием pgAdmin:
This website uses cookies.