pg_upgrade: command not found

[root@ats ~]# uname -rm
7.4-RELEASE-p2 i386

обновляю postgresql с 8.3 до 8.4. после установки из портов версии postgresql-client-8.4.8_1 в системе отсутсвует утилита pg_upgrade:
[root@ats ~]# pg_upgrade
-bash: pg_upgrade: command NOT found

подскажите, в чем может быть дело?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Например, в том что вы

Например, в том что вы пытаетесь запустить утилиту от root'а, а не от postgres. А утилита вполне может не быть в пути root'а точно также как утилиты createdb и createuser.

на сервере который указан в

на сервере который указан в первом посте произвел даунгрейд до 8.3 и продолжил эксперименты на другом сервере

[root@crematoria /]# uname -rm
8.2-RELEASE-p2 i386

установку произвел через pkg_add -r поэтому версия 8.4.7, а не 8.4.8 как в первом посте, но для наличия утилиты pg_upgrade это же не существенно?

[root@crematoria /usr/ports/shells]# pkg_info|grep postgres
postgresql-client-8.4.7 PostgreSQL DATABASE (client)
postgresql-server-8.4.7 The most advanced open-source DATABASE available anywhere

автодополнение выдает одинаковые результаты и для root и для pgsql

[root@crematoria /usr/ports/shells]# pg_
pg_config       pg_controldata  pg_ctl          pg_dump         pg_dumpall      pg_resetxlog    pg_restore
[root@crematoria /usr/ports/shells]# create
createdb    createlang  createuser

[pgsql@crematoria /usr/ports/shells]$ pg_
pg_config       pg_controldata  pg_ctl          pg_dump         pg_dumpall      pg_resetxlog    pg_restore
[pgsql@crematoria /usr/ports/shells]$ CREATE
createdb    createlang  createuser

и более того

[pgsql@crematoria /]$ which pg_upgrade
[pgsql@crematoria /]$

и
[root@crematoria /]# find . -name pg_upgrade
[root@crematoria /]#

может такое быть что для утилита pg_upgrade не входит в состав пакета для freebsd?
что посоветуете?

1. верной ли будет

1.
верной ли будет последовательность действий по переходу с 8.3 на 8.4
делаем полный дамп кластера

# cd /usr/local/pgsql
# pg_dumpall > db.out

останавливаем постгрес
# /usr/local/etc/rc.d/postgresql stop

бэкапим директорию data
# mv /usr/local/pgsql/data /usr/local/pgsql/data.old

обновляем постгрес

инициализируем новый кластер
# /usr/local/etc/rc.d/postgresql initdb --locale=C

сравниваем postgresql.conf со старым, изменяем что нужно.

запускаем постгрес
# /usr/local/etc/rc.d/postgresql start

$ cd /usr/LOCAL/pgsql
$ psql -f db.out postgres

2.
можно ли одновременно с версией 8.3 установить на сервер версию 8.4. будут ли они работать (если для кадого из них использовать разные кластеры и не запускать их одновременно, а только по одному)

[pgsql@crematoria /]$ which

[pgsql@crematoria /]$ which pg_upgrade
[pgsql@crematoria /]$

У меня на Linux'е тоже такой команды нет, хотя она есть в мануале. Странно всё это.

Цитата:
верной ли будет последовательность действий по переходу с 8.3 на 8.4

верно

Цитата:
можно ли одновременно с версией 8.3 установить на сервер версию 8.4. будут ли они работать (если для кадого из них использовать разные кластеры и не запускать их одновременно, а только по одному)

Можно. Только поскольку обычно собранные версии хотят работать с одними и тем же каталогами, вам как-то нужно решить эту проблему. Например пересобрать оба пакета, используя кастомные пути, типа /usr/local/postgresql/8.3, /usr/local/postgresql/8.4
Или ещё проще - поднять виртуальную машину и там изгаляться.

спасибо. обновился, перенес

спасибо.
обновился, перенес базы, все в порядке.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023