Обязательные действия при обновлении операционной системы

Обновление операционной системы сервера требует реиндексации баз данных PostgreSQL.

Причина: из-за особенностей работы PostgreSQL при обновлении ОС меняется версия системной библиотеки glibc, отвечающая за настройки сортировки Collation в PostgreSQL. Это может привести к появлению дубликатов значений на уникальных индексах. Дубли нарушают целостность данных и могут вызвать ошибки в работе сервера — например, зависание спуллера из-за накопления сообщений о дублях в логах.

Решение: при обновлении ОС обновите Collation для PostgreSQL 15 и проведите реиндексацию базы данных для всех версий PostgreSQL.

Порядок действий про обновлении ОС:

  1. Остановите iBatyr Monitor.

sudo ibatyr stop
sudo systemctl disable ibatyr
  1. Обновите операционную систему в соответствии с вашим процессом.

  2. Только для PostgreSQL 15: обновите настройки сортировки Collation.

echo "ALTER DATABASE postgres REFRESH COLLATION VERSION;" | sudo -u postgres psql -d postgres
echo "ALTER DATABASE template1 REFRESH COLLATION VERSION;" | sudo -u postgres psql -d template1
echo "ALTER DATABASE ibatyr REFRESH COLLATION VERSION;" | sudo -u postgres psql -d ibatyr
  1. Для всех версий PostgreSQL: реиндексируйте БД.

echo "REINDEX (VERBOSE) DATABASE postgres" | sudo -u postgres psql -d postgres
echo "REINDEX (VERBOSE) DATABASE template1" | sudo -u postgres psql -d template1
echo "REINDEX (VERBOSE) DATABASE ibatyr" | sudo -u postgres psql -d ibatyr
  1. Запустите iBatyr Monitor.

sudo systemctl enable ibatyr
sudo ibatyr start
  1. Готово!