Задать вопрос
Alex_Geer
@Alex_Geer
System Engineer

Как понять почему размер БД вырос на 30%?

На одном проекте случилась такая история. Во время выполнения операции vacuum full analyze был выполнен снапшот виртуальной машины. После чего размер базы данных вырос с 1.4 ТБ до 2 ТБ.
Я на сколько мне позволяют знания проанализировал ситуацию и выяснил что:
1. Это не временные файлы
2. Размер пользовательских таблиц с индексами составляет 1419 ГБ
3. Если сделать бэкап и развернуть на другом сервере, то вес становиться 1.4 ТБ (тот который должен быть)
4. vacuum full analyze, reindex и vacuumlo не исправляют ситуацию.

Как определить что именно занимает место?
  • Вопрос задан
  • 3382 просмотра
Подписаться 5 Простой 5 комментариев
Решения вопроса 1
Alex_Geer
@Alex_Geer Автор вопроса
System Engineer
Процитирую сам ответ, раз автор реального ответа не захотел это сделать.
Есть основная гипотеза, vacuum full писал что-то большое, но не смог удалить либо старые либо новые датафайлы.
База при этом не уходила ли вообще в crash recovery по какой-то причине? Там есть варианты при которых остаются осиротевшие датафайлы https://www.cybertec-postgresql.com/en/orphaned-fi...


Действительно был краш Postgres из за того что отвалилась фс. Прочитав статью по ссылке понял что остались осиротевшие файлы которые сама СУБД не способна отчистить. Проблема решается через копирование и восстановление базы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AleksejMsk
@AleksejMsk
Программирую от души за деньги
Может fillfactor ?
Он на размеры точно влияет. Резервные пустые места в страницах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы