В ходе апгрейда Tantor SE-1C с версии 14 на 15 возникает ошибка:

"/opt/tantor/db/15/bin/pg_ctl" -w -D "/var/lib/postgresql/tantor-se-1c-15/data" -o "" -m smart stop >> "/var/lib/postgresql/tantor-se-1c-15/data/pg_upgrade_output.d/20240305T202854.903/log/pg_upgrade_server.log" 2>&1
Adding ".old" suffix to old global/pg_control               ok

Если вы захотите запустить старый кластер, вам нужно будет убрать
расширение ".old" у файла /var/lib/tantor/global/pg_control.old.
Так как применялся режим "ссылок", работа старого кластера
после того, как будет запущен новый, не гарантируется.

Linking user relation files
создание ссылки на "/var/lib/tantor/base/1/2613" в "/var/lib/postgresql/tantor-se-1c-15/data/base/1/2613"
создание ссылки на "/var/lib/tantor/base/1/2683" в "/var/lib/postgresql/tantor-se-1c-15/data/base/1/2683"
создание ссылки на "/var/lib/tantor/base/13707/1692836364" в "/var/lib/postgresql/tantor-se-1c-15/data/base/13707/1692836364"
создание ссылки на "/var/lib/tantor/base/13707/1692836367" в "/var/lib/postgresql/tantor-se-1c-15/data/base/13707/1692836367"
создание ссылки на "/var/lib/tantor/base/16384/1693040069" в "/var/lib/postgresql/tantor-se-1c-15/data/base/16384/1693040069"

ошибка при создании ссылки для отношения "pg_catalog.pg_largeobject" (из "/var/lib/tantor/base/16384/1693040069" в "/var/lib/postgresql/tantor-se-1c-15/data/base/16384/1693040069"): Неверная ссылка между устройствами
Ошибка, выполняется выход

дочерний процесс завершился нештатно с ошибкой 256
Ошибка, выполняется выход
TEXT

Апгрейд выполняли командой:

sudo -u postgres /opt/tantor/db/15/bin/pg_upgrade --old-bindir=/opt/tantor/db/14/bin/ --new-bindir=/opt/tantor/db/15/bin/ --old-datadir=/var/lib/tantor --new-datadir=/var/lib/postgresql/tantor-se-1c-15/data  --jobs=12 --link -v --socketdir=/tmp
BASH

Если в ОС установлен по умолчанию английский язык, то эта ошибка может выглядеть так:

linking "/opt/symcor-foa/data/pg_tblspc/federator/PG_9.0_201008051/17055/11838" to "/opt/symcor-foa/data/pg_tblspc/federator/PG_9.4_201409291/16423/13013"
error while creating link for relation "pg_catalog.pg_largeobject" ("/opt/symcor-foa/data/pg_tblspc/federator/PG_9.0_201008051/17055/11838" to "/opt/symcor-foa/data/pg_tblspc/federator/PG_9.4_201409291/16423/13013"): No such file or directory
TEXT

Причиной подобной неполадки является особенность работы pg_upgrade в режиме --link, при котором создаются жесткие ссылки:

ln /mnt/sdb/tantor/base/16384/1693040069/SOME_RELATION_FILE /mnt/sdb/data/base/16384/1693040069/SOME_RELATION_FILE
>>
  ln: создание жесткой ссылки «/mnt/sdb/tantor/base/16384/1693040069» => « /mnt/sdb/data/base/16384/1693040069»: Неверная ссылка между устройствами
TEXT

А часть баз была вынесена символьными ссылками на другие устройства (sda, sdc).

Свойство жесткой ссылки: жесткую ссылку нельзя создать на другом разделе. Между разными файловыми системами могут работать только символьные ссылки.

Решение:

При выполнении pg_upgrade в data-каталоге не должно быть баз, которые через символьные ссылки вынесены на другие устройства.