Часто встречающиеся проблемы и пути их устранения#
Ошибки в процессе установки СУБД Pangolin#
В разделе описаны часто встречающиесяс проблемы при установке СУБД Pangolin.
Не читается файл лицензий#
Возникающая ошибка:
Check license file "/opt/pangolin_license/license.json" : file is not found
Решение:
Проверьте доступность под пользователем postgres файла лицензии:
Указание в переменной
PG_LICENSE_PATH=/opt/pangolin_license/:[postgres@srv ~]$ echo $PG_LICENSE_PATH /opt/pangolin_license/При необходимости исправьте:
export PG_LICENSE_PATH=/opt/pangolin_license/Доступность файла лицензии:
[postgres@srv ~]$ ls -la $PG_LICENSE_PATH total 12 drwxr-xr-x 2 postgres postgres 4096 Apr 12 12:17 . drwxr-xr-x. 5 root root 4096 Apr 12 12:14 .. -rw-r--r-- 1 postgres postgres 500 Apr 12 12:17 license_trial_202407.json
Скопированы некорректные символы в конфигурационный файл#
После запуска в логе появляется запись об ошибках чтения конфигурационного файла в $PGDATA/log/*. Например:
2024-04-12 12:25:50.689 MSK [60403] КОНТЕКСТ: строка 100 файла конфигурации "/pgdata/06/data/pg_hba.conf"
2024-04-12 12:25:50.689 MSK [60403] СООБЩЕНИЕ: неверный метод проверки подлинности " "
Решение:
Скорее всего привнесены лишние символы при копировании строк из инструкции. Необходимо либо скорректировать, либо удалить проблемные строки и ввести их с клавиатуры например через vi.
Ошибка инициализации СУБД#
Возникающая ошибка:
initdb: error while loading shared libraries: libjsoncpp.so.1: cannot open shared object file: No such file or directory
Необходимо установить пакет:
sudo apt install libjsoncpp1
Ошибка работы с unzip утилитой#
Если возникла ошибка -bash: unzip: command not found – необходимо установить утилиту unzip и вернуться к шагу с распаковкой. Пример команды установки unzip:
sudo apt-get install unzip
Ошибки etcd#
В разделе рассматриваются проблемы возникающие при работе компонента etcd.
Несоответствие идентификатора кластера#
После запуска кластера возможно появление ошибки в логах sudo journalctl -xe:
sudo journalctl -xe:
etcd[1667]: request cluster ID mismatch (got {хеш} want {хеш})
Решение:
Остановите кластер и пересоздайте директорию /var/lib/etcd:
sudo systemctl stop etcd.service
sudo rm -rf /var/lib/etcd/
sudo mkdir /var/lib/etcd
sudo chown -R etcd:etcd /var/lib/etcd/
sudo systemctl start etcd.service
Несоответствие идентификатора узлов системы#
Пример лога:
CRITICAL: system ID mismatch, node pg02 belongs to a different cluster: 6792170493505963560 != 6792187323051185862
Решение:
Выполните команду:
etcdctl rm /service/clustername/initializeПерезапустите Pangolin Manager:
sudo systemctl restart pangolin-manager
Cбой etcd. Узлы кластера сменили роли#
Сообщения в логе имеют вид:
INFO: following a different leader because i am not the healthiest node
Решение:
При одном запущенном Pangolin Manager, выполните команду:
etcdctl rm /service/clustername/optime/leaderПерезапустите Pangolin Manager:
sudo systemctl restart pangolin-manager
Секционирование#
Далее рассматриваются проблемы возникающие при использовании секционирования.
При запуске секционирования возникает ограничение блокировок по транзакциям#
Решение:
Увеличить параметр max_locks_per_transactions до 1024.
Утилита pg_repack входит в бесконечный цикл#
Утилита pg_repack входит в бесконечный цикл при обработке таблиц pg_pathman, что приводит к реорганизации не отдельной таблицы, а всей базы.
Решение:
Явно исключить pg_pathman из обработки с помощью ключа -C pg_pathman.