PostgreSQL 10 FATAL: could not access file «online_analyze» — Ничего не предвещало беды да? Всё шло своим чередом, сервер PostgreSQL 10 для 1C работал в штатном режиме, бухгалтера стадами набигали на 1Сные сервера, делали свои грязные дела, а жалоб никаких не было?. И вот ты уже сидишь обтекая потом гуглишь что же пошло не так? Почему не запускается сервер PostgreSQL 10? А команда
sudo service postgresql start
оставляет примерно следующие ошибки:
Смотрим syslog
cat /var/log/syslog
Mar 25 07:37:30 ag-psql10-s2 systemd[1]: Starting PostgreSQL Cluster 10-main... Mar 25 07:37:30 ag-psql10-s2 postgresql@10-main[29342]: Error: /usr/lib/postgresql/10/bin/pg_ctl /usr/lib/postgresql/10/bin/pg_ctl start -D /var/lib/postgresql/10/main -l /var/log/postgresql/postgresql-10-main.log -s -o -c config_file="/etc/postgresql/10/main/postgresql.conf" exited with status 1: Mar 25 07:37:30 ag-psql10-s2 postgresql@10-main[29342]: 2019-03-25 07:37:30.624 UTC [29347] FATAL: could not access file "online_analyze": No such file or directory Mar 25 07:37:30 ag-psql10-s2 postgresql@10-main[29342]: 2019-03-25 07:37:30.624 UTC [29347] LOG: database system is shut down Mar 25 07:37:30 ag-psql10-s2 postgresql@10-main[29342]: pg_ctl: could not start server Mar 25 07:37:30 ag-psql10-s2 postgresql@10-main[29342]: Examine the log output. Mar 25 07:37:30 ag-psql10-s2 systemd[1]: postgresql@10-main.service: Can't open PID file /var/run/postgresql/10-main.pid (yet?) after start: No such file or directory Mar 25 07:37:30 ag-psql10-s2 systemd[1]: postgresql@10-main.service: Failed with result 'protocol'. Mar 25 07:37:30 ag-psql10-s2 systemd[1]: Failed to start PostgreSQL Cluster 10-main.
Смотрим postgresql-10-mail.log
cat /var/log/postgresql/postgresql-10-main.log
(путь к лог файлу можно подсмотреть в логу полученном из syslog)
2019-03-25 07:37:30.624 UTC [29347] FATAL: could not access file "online_analyze": No such file or directory 2019-03-25 07:37:30.624 UTC [29347] LOG: database system is shut down pg_ctl: could not start server Examine the log output.
Везде фигурирует эта злосчастная PostgreSQL 10 FATAL. Всё просто, пакеты postgresql 10 от 1C не являются официальными сборками включенными в официальный репозиторий и поэтому, при очередном автообновлении, убунту каждый раз будет заменять их на истинно верные пакеты из репозитория, которые в свою очередь не подходят для работы 1С.
-
Проверка установленных пакетов
Вводим команду
dpkg --list
И видим примерно следующее:
ii libpq5:amd64 10.6-0ubuntu0.18 amd64 PostgreSQL C client library ii postgresql-10 10.6-0ubuntu0.18 amd64 object-relational SQL database, version 10 server ii postgresql-client-10 10.6-0ubuntu0.18 amd64 front-end programs for PostgreSQL 10
Версии всех пакетов: 10.6-0ubuntu0.18
Тогда как пред нашими очами должно было предстать следующее зрелище
hi libpq5:amd64 10.5-24.1C amd64 PostgreSQL C client library hi postgresql-10 10.5-24.1C amd64 object-relational SQL database, version 10 server hi postgresql-client-10 10.5-24.1C amd64 front-end programs for PostgreSQL 10
Если например мы ставили скачанную с сайта ИТС, «PostgreSQL, версия 10.5-24.1C», то в колонке версии, будет указано тоже самое. Если там что-то другое, значит система обновила пакет из репозитория.
Так же нужно обратить внимание на маркер hi в начале каждой строки с правильным вариантом. Это означает зафиксировать[h] и установлен[i]. В варианте с неправильными версиями фиксация отсутствовала. -
Переустанавливаем пакеты PostgreSQL 10
-
Останавливаем postgresql
sudo service postgresql stop
-
Загружаем архив с версией PostrgeSQL 10 от 1C на наш сервер в /tmp
-
Извлекаем архив
cd /tmp tar -xvf ./postgresql_10.5_24.1C_amd64_deb.tar.bz2
Надо понимать что у вас вероятно имя архива уже будет отличаться т.к. новые версии выходят достаточно регулярно и ставить надо именно их.
-
Переходим в извлеченную папку и устанавливаем все пакеты в ней
adminguide@ag-psql10-s2:/tmp/postgresql-10.5-24.1C_amd64_deb$ sudo dpkg -i ./*.deb dpkg: предупреждение: снижение версии libpq5:amd64 с 10.6-0ubuntu0.18.04.1 до 10.5-24.1C (Чтение базы данных … на данный момент установлено 138702 файла и каталога.) Подготовка к распаковке ./libpq5_10.5-24.1C_amd64.deb … Распаковывается libpq5:amd64 (10.5-24.1C) на замену (10.6-0ubuntu0.18.04.1) … dpkg: предупреждение: снижение версии postgresql-10 с 10.6-0ubuntu0.18.04.1 до 10.5-24.1C Подготовка к распаковке …/postgresql-10_10.5-24.1C_amd64.deb … Распаковывается postgresql-10 (10.5-24.1C) на замену (10.6-0ubuntu0.18.04.1) … dpkg: предупреждение: снижение версии postgresql-client-10 с 10.6-0ubuntu0.18.04.1 до 10.5-24.1C Подготовка к распаковке …/postgresql-client-10_10.5-24.1C_amd64.deb … Распаковывается postgresql-client-10 (10.5-24.1C) на замену (10.6-0ubuntu0.18.04.1) … Настраивается пакет libpq5:amd64 (10.5-24.1C) … Настраивается пакет postgresql-client-10 (10.5-24.1C) … Настраивается пакет postgresql-10 (10.5-24.1C) … Обрабатываются триггеры для libc-bin (2.27-3ubuntu1) … Обрабатываются триггеры для postgresql-common (190) … Building PostgreSQL dictionaries from installed myspell/hunspell packages... Removing obsolete dictionary files:
Как видно, система предупредит вас о том что происходят снижение версий пакетов но все выполнит.
Теперь по результатамdpkg --list
видно что везде указана наша версия: 10.5-24.1C, но пока что с маркерами [ii]
-
-
Фиксируем установленные пакеты в системе
sudo apt-mark hold libpq5 sudo apt-mark hold postgresql-client-10 sudo apt-mark hold postgresql-10
Снова смотрим
dpkg --list
и уже видим маркер [hi]. Так же для просмотра списка всех hold пакетов в системе можно использовать командуapt-mark showhold
4 комментария
спасибо, выручил 🙂
Большое спасибо!
Чуть не поседел, когда с утра увидел.
Для тех, кто только начал работать с Postgre и переживает за сохранность базы:
ДАННЫЕ НИКУДА НЕ ДЕНУТСЯ
Дружище! ДРУЖИЩЕ!!! Дай пожму твою руку!!!!
Спасибо!!!
Всегда пожалуйста 🙂