Обязательные действия при обновлении операционной системы¶
Обновление операционной системы сервера требует реиндексации баз данных PostgreSQL.
Причина: из-за особенностей работы PostgreSQL при обновлении ОС меняется версия системной библиотеки glibc, отвечающая за настройки сортировки Collation в PostgreSQL. Это может привести к появлению дубликатов значений на уникальных индексах. Дубли нарушают целостность данных и могут вызвать ошибки в работе сервера — например, зависание спуллера из-за накопления сообщений о дублях в логах.
Решение: при обновлении ОС обновите Collation для PostgreSQL 15 и проведите реиндексацию базы данных для всех версий PostgreSQL.
Порядок действий про обновлении ОС:
Остановите iBatyr Monitor.
sudo ibatyr stop sudo systemctl disable ibatyr
Обновите операционную систему в соответствии с вашим процессом.
Только для 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
Для всех версий 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
Запустите iBatyr Monitor.
sudo systemctl enable ibatyr sudo ibatyr start
Готово!