/db/9.6/main (1Т)
Когда то был 9.3 и он лежат в /db/main (25Гб)
Судя по скрпитам миграции (которые накатывали) /db/main был указан как PGDATAOLD (старый конфиг).
Сейчас /db/main занят pg 9.6 (судя по lsof).
При этому в самом pg я не вижу базу размером 25Г на которую можно было бы подумать. Так же ни одного тейблспейса лежащего в /db/main (смотрю \db+ или SELECT * FROM pg_tablespace).
Почему PG держит эту папку?
0) убедитесь, что запущен 1 процесс postmaster-a: $ ps aux | grep [b]in/postgres $ ss -nltp | grep postgres 1) посмотрите содержимое папки /db/main и сравните с: https://www.postgresql.org/docs/9.6/storage-file-layout.html - похоже ли на pgdata? - похоже ли на tablespace? (tablespace еще можно проверить через симлинки внутри PGDATA/pg_tblspc/ ) 2) убедитесь что pgdata точно та, что вы ожидаете: # show data_directory; 3) проверьте не указана ли /db/main в качестве stats_temp_directory: # select * from pg_settings where setting ilike '%main%'; 4) Попробуйте найти объекты в базе, по файлам из /db/main, здесь написано как https://www.2ndquadrant.com/en/blog/postgresql-filename-to-table/
0) в запущеных толкьо 9.6 ls -la /proc/*/exe 2>/dev/null | grep postgres | awk '{print $11}' | sort | uniq /usr/lib/postgresql/9.6/bin/postgres /usr/lib/postgresql/9.6/bin/psql 1) похоже на pgdata base global pg_clog pg_multixact pg_notify pg_serial pg_snapshots pg_stat pg_stat_tmp pg_subtrans pg_tblspc (тут пусто) pg_twophase PG_VERSION (тут написано что 9.3) 2) тоже нет. указывает на /db/9.6/main как и ожидается. 3) тоже нет. указывает на /db/9.6/main как и ожидается. 4) поищу. Еще обратил внимание что по этому пути ничего не пишется в 2018 года. Он PG ее просто держит.
если pg_upgrade 9.3 -> 9.6 делался через hardlink-и, то возможно /db/main это уже просто рудимент есть ли такой файл /db/main/global/pg_control.old? если он есть, значит был upgrade через hardlink-и, и поскольку вы запустили уже 9.6, то запись в шаренные файлы уже произошла и /db/main просто мусор если сильно страшно, то делаете бэкап 9.6, останавливаете postgres, удаляете /db/main, запускаете заново. проверить что база читается вся: $ pg_dumpall -v &> /dev/null upd. подробнее в шаге 16 и 17: https://www.postgresql.org/docs/9.6/pgupgrade.html
Да, обновляли через pg_upgrade --link pg_control.old - есть. Спасибо большое!
А что значит "держит"?
в lsof показывает что файлы открыты pg
Обсуждают сегодня