Столкнулся с проблемой:
в журнале сыпет сообщения could not open temporary statistics file "pg_stat_tmp/pgstat.tmp": Нет такого файла или каталога
нашел путь, файла pgstat.tmp действительно нет
решил ему из под root скормить touch pgstat.tmp - файл появился
сменил владельца и группу на postgres дал права на чтение запись
ls -la и наблюдаю что файл пропал и сообщения продолжают сыпаться
х. с ним, решил я запретить всякой каке удалять что ни попадя, установил sticky бит на каталог pg_stat_tmp
опять создал pgstat.tmp и раздал на него права - файл начал менять размер то в большую то в меньшую сторону, думаю ну вот вроде зашуршало
смотрю в лог и наблюдаю:
LOG: could not rename temporary statistics file "pg_stat_tmp/pgstat.tmp" to "pg_stat_tmp/pgstat.stat": Операция не позволяется
что естественно ведь я установил sticky бит, но возникает вопрос с какого перепугу postgres удаляет этот файл и потом ругается на его отсутствие? учитывая что pgstat.tmp используется как временный файл для сбора статистики вполне понятно что он его удаляет после использования, но почему не создает снова при необходимости?
как это победить?
версия postgres 9.1.2 но это не существенно т.к. судя по буржуйским форумам эта проблема проявлялась и на более ранних версиях. К стати на их форумах так никто ничего полезного и не сказал.
в общем сам себе и
в общем сам себе и отвечаю
сначала попробовал каталог pg_stat_tmp перенести на ram диск т.к. postgres очень полюбил сборщиком статистики диск.массив на запись пилить (практически без остановки)
остановил postgres, процессы в памяти остались, прибил принудительно
создал ram диск а точнее tmpfs размером 300M и симлинком скормил pg_stat_tmp в этот диск
не помогло - все равно сыпал сообщения
переименовал каталог /var/lib/postgresql в /../../pgsql сменил пути в конфигах постгреса
он тут-же руганулся на отсутствие файло !!! global/pgstat.stat
поправил в postgresql.conf вот это:
stats_temp_directory = '/mnt/tmpfs/pg_stat_tmp'
рестартнул постгрес и все взлетело без ошибок хотя pgstat.tmp нигде не появляется
из за переноса pg_stat_tmp в рам диск скорость работы в разы возросла, а драгоценная оператива начала экономиться, по факту взлета из 12Гб свободными теперь болтается стабильно 4Гб вместо 1.3Гб раньше.
изначально проблем возник после обновления с более ранней версии postgres в которой такого не наблюдалось
postgres 1c-овской сборки !!! привет жопоруким сборщикам фирмы 1С!!!!
за то бабло которое они стригут за серверную лицензию нужно-бы более ответственно относиться к работе!
так-то
пост можно закрыть