psql по-прежнему указывает на старую версию после обновления до более новой (10.7) - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть 2 разные основные версии postgres 9 и 10, установленные на rhel.

Последняя ситуация после попыток обновления пакета psql: У меня psql 9.2.24 установлен на rhel 7.6, а версия сервера 10.7. Ранее у меня были проблемы с репозиторием yum, который был поврежден, а позже я восстановил / исправил его с помощью следующей команды, упомянутой в здесь (Вы можете получить представление о том, что изначально было моей проблемой с испорченным репозиторием yum )

echo 7 > /etc/yum/vars/releasever

Я проверил свои варианты обновления на здесь и он правильно ссылается на psql в каталоге 10.7, но все же я вижу старый номер версии psql при подключении к существующей базе данных.

Ниже приведены шаги, которые я выполнил для обновления пакета psql:


  1. Все базы данных продолжали работать.
  2. yum install postgresql10.x86_64
  3. Команда, упомянутая в пункте 2, установила / обновила все пакеты на машине, поскольку репозиторий yum был поврежден. одно из ключевых утверждений в этом обновлении, касающемся postgres, было

postgresql10 x86_64 10.7-2PGDG.rhel7 pgdg10 1.6M

Обратите внимание, я еще не перезапускал ни один экземпляр, работающий во время / до / после обновления выше , и почему-то считаю, что это связано с тем, что до тех пор, пока я не перезапущу (остановлю существующие экземпляры и не начну их снова), все запущенные экземпляры psql / db, изменения psql не начнут отражаться, но это только мое предположение. Может кто-нибудь помочь, что я понял / сделал неправильно в этом процессе обновления.

Ничто, кроме вышеизложенного, не было изменено / улучшено в терминах psql / postgres. Тем не менее у меня есть обе установки postgres: 9 и 10.

1 Ответ

1 голос
/ 02 апреля 2019

Я исправил это несколько месяцев назад и забыл об этом.Нечто подобное с лучшими ответами на здесь Так что все кредиты идут там, чтобы ответить на плакаты.Но вот что я сделал, чтобы решить эту проблему: -

  1. Перезапуск уже запущенных экземпляров postgres не помог.
  2. Я проверил which psql, показал мне один из psql на /usr/bin,Это было около 9 месяцев, так что определенно это не было установлено с моим шагом установки yum postgres..., упомянутым в моем вопросе, который заставил меня понять, что установка нового пакета не отменит его сразу.
  3. Я пытался использовать update-alternatives --config pgsql-psql но получил ту же ошибку, что и упомянутый выше ответ SO: /usr/bin/psql exists and it is not a symlink
  4. ключ подсказки на этой странице в комментарии @Alexander Gorg о том, что команда ln не будет переопределять существующую ссылку, ей нужнобыть удаленным вручную.Я думал об удалении символической ссылки, но затем переименовал psql в / usr / bin в psql_org.Действительно, во время этого процесса я выполнил команду ln.
  5. Теперь я выполнил команду update-alternatives и перезапустил один из экземпляров.Правильный psql теперь был там.

Выше действительно помогли исправить версию psql, но все же другие утилиты pg_basebackup и другие ссылались на более старую версию.Я считаю, что лучше было бы удалить старую установку postgresql.Я попытался перечислить существующую версию postgresql с помощью

yum list installed | grep postgres

только показывает, что пакеты

postgresql10*

есть, и я помню, что уже удалил более старую версию postgres с yum erase postgres..., поэтому не уверен, чтоудалить.

Временно я решил проблему, переименовав другие утилиты в / usr / bin и обновив их альтернативы.

...