Ubuntu 18.04 — PostgreSQL 10 FATAL: could not access file «online_analyze»
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