powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
64 сообщений из 64, показаны все 3 страниц
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38474763
гуркевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять я и опять с вопросом.

Почему-то на этом форуме очень мало сообщений с примерами по обновлению
бд с версии 9.1 до 9.3

Хотелось бы сделать это с минимальным простоем.

Буду рад ссылке, если можно на русском языке, где в примерах показывается,
как выполянется такой upgrade.

Нашёл, что есть утилита pg_upgrade.
Вопрос ещё, можно ли сразу обновиться с 9.1 до 9.3, или нужен промежуточный шаг обновления до 9.2?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38474774
гуркевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторIf you are using a version-specific installation directory, e.g. /opt/PostgreSQL/9.1, you do not need to move the old cluster
у меня в 9.1 кластер находится тут: ?var/lib/postgresql/9.1/main
ставился он как я понимаю через apt-get install postgresql

как мне узнать, нужно ли мне удалять/перемещать старый кластер или нет?
т.е. у меня version-specific installation directory или not version-specific ?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38474777
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гуркевич,

version-specific installation directory потому что номер версии упоминается в пути к каталогу данных.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38474781
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гуркевич,

я так обновлял:

Код: plaintext
1.
2.
3.
4.
5.
sudo pg_createcluster --locale ru_RU.utf8 9.2 main
sudo -u postgres -i
mkdir upgrade
cd upgrade/
/usr/lib/postgresql/9.2/bin/pg_upgrade -c -k -b /usr/lib/postgresql/9.0/bin -B /usr/lib/postgresql/9.2/bin -d ../9.0/main/ -D ../9.2/main/ -o " -c config_file=/etc/postgresql/9.0/main/postgresql.conf " -O " -c config_file=/etc/postgresql/9.2/main/postgresql.conf " 

это только check (проверка) если всё ок проходит, то убираем ключ -c и делаем реальный upgrade

во время проверки и upgrade оба кластера (старый и новый) должны быть выключены
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38474802
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёш,
а как сейчас со скоростью?
В 2012 году я тестировал upgrade, получалось чуть ли не медленнее, чем при dump|restore.
Размер около 50Гб, сильная дисковая и много ядер для pg_restore -j 8.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38474813
гуркевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня БД почти 500 Гб
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38474913
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tadmin,

"-k" - по сути мнгновенно.

и еще немного/много врменеи на аналайзы минимальные
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38477958
aamst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Наткнулся на этот топик, решая схожую задачу. У меня есть 2 сервера (SQL1, SQL2) с Postgresql 9.2.5 на Linux Debian с потоковой репликацией Master-Slave
Сейчас руководство хочет перейти на 9.3, причем чем меньше даунтайм тем лучше, для нас это критично.
Для этого перехода я написал краткий план, который прошу оценить уважаемых знатоков:
1. Установка на оба сервера postgresql 9.3, они поднимаются на порту 5433
2. Бекап конф. файлов на обоих серверах, замена конф. файла на SQL1 на старый от 9.2, правка параметра
unix_socket_directory на unix_socket_directories, это нужно, проверил на тестовом сервере, затем проверяем что postgres 9.3
нормально запускается на SQL1
3. Остановка всех процессов postgresql на SQL1, затем тест
pg_upgrade -b /usr/lib/postgresql/9.2/bin -B /usr/lib/postgresql/9.3/bin -d /etc/postgresql/9.2/main/ -D /etc/postgresql/9.3/main/ -c
если он успешен то
сам переход
pg_upgrade -k -b /usr/lib/postgresql/9.2/bin -B /usr/lib/postgresql/9.3/bin -d /etc/postgresql/9.2/main/ -D /etc/postgresql/9.3/main/
потом правка конфига 9.3, меняем порт на 5432, и запускаем postgresql 9.3
4. Очередь сторого сервера. На slave SQL2 останавливаем postgresql 9.2, копируем конфиг от него в 9.3, и пересобираем репликацию.

По последнему пункту есть некоторые сомнения, подскажите как лучше - использовать pg_upgrade, как на master'e и репликация сама поднимется, или вообще удалить postgresql 9.2, оставить только конфиг от него, подсунуть его 9.3, исправить ошибки и собрать репликацию "с нуля"
Даунтайм SQL2 допускается.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38478266
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aamstДоброго времени суток!

Наткнулся на этот топик, решая схожую задачу. У меня есть 2 сервера (SQL1, SQL2) с Postgresql 9.2.5 на Linux Debian с потоковой репликацией Master-Slave
Сейчас руководство хочет перейти на 9.3, причем чем меньше даунтайм тем лучше, для нас это критично.
Для этого перехода я написал краткий план, который прошу оценить уважаемых знатоков:
1. Установка на оба сервера postgresql 9.3, они поднимаются на порту 5433
2. Бекап конф. файлов на обоих серверах, замена конф. файла на SQL1 на старый от 9.2, правка параметра
unix_socket_directory на unix_socket_directories, это нужно, проверил на тестовом сервере, затем проверяем что postgres 9.3
нормально запускается на SQL1
3. Остановка всех процессов postgresql на SQL1, затем тест
pg_upgrade -b /usr/lib/postgresql/9.2/bin -B /usr/lib/postgresql/9.3/bin -d /etc/postgresql/9.2/main/ -D /etc/postgresql/9.3/main/ -c
если он успешен то
сам переход
pg_upgrade -k -b /usr/lib/postgresql/9.2/bin -B /usr/lib/postgresql/9.3/bin -d /etc/postgresql/9.2/main/ -D /etc/postgresql/9.3/main/
потом правка конфига 9.3, меняем порт на 5432, и запускаем postgresql 9.3
4. Очередь сторого сервера. На slave SQL2 останавливаем postgresql 9.2, копируем конфиг от него в 9.3, и пересобираем репликацию.

По последнему пункту есть некоторые сомнения, подскажите как лучше - использовать pg_upgrade, как на master'e и репликация сама поднимется, или вообще удалить postgresql 9.2, оставить только конфиг от него, подсунуть его 9.3, исправить ошибки и собрать репликацию "с нуля"
Даунтайм SQL2 допускается.

я бы очень не советовал пытаться использовать конфиг от 9.2 на 9.3
там куча опций убрана в 9.3
и что еще хуже куча опций добавлена в 9.3 конфиг...
так что лучше перенести руками кастомные настройки из 9.2 конфига в 9.3 конфиг... спокойнее будет
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38479338
гуркевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aamstДоброго времени суток!

Наткнулся на этот топик, решая схожую задачу. У меня есть 2 сервера (SQL1, SQL2) с Postgresql 9.2.5 на Linux Debian с потоковой репликацией Master-Slave
Сейчас руководство хочет перейти на 9.3, причем чем меньше даунтайм тем лучше, для нас это критично.
Для этого перехода я написал краткий план, который прошу оценить уважаемых знатоков:
1. Установка на оба сервера postgresql 9.3, они поднимаются на порту 5433
2. Бекап конф. файлов на обоих серверах, замена конф. файла на SQL1 на старый от 9.2, правка параметра
unix_socket_directory на unix_socket_directories, это нужно, проверил на тестовом сервере, затем проверяем что postgres 9.3
нормально запускается на SQL1
3. Остановка всех процессов postgresql на SQL1, затем тест
pg_upgrade -b /usr/lib/postgresql/9.2/bin -B /usr/lib/postgresql/9.3/bin -d /etc/postgresql/9.2/main/ -D /etc/postgresql/9.3/main/ -c
если он успешен то
сам переход
pg_upgrade -k -b /usr/lib/postgresql/9.2/bin -B /usr/lib/postgresql/9.3/bin -d /etc/postgresql/9.2/main/ -D /etc/postgresql/9.3/main/
потом правка конфига 9.3, меняем порт на 5432, и запускаем postgresql 9.3
4. Очередь сторого сервера. На slave SQL2 останавливаем postgresql 9.2, копируем конфиг от него в 9.3, и пересобираем репликацию.

По последнему пункту есть некоторые сомнения, подскажите как лучше - использовать pg_upgrade, как на master'e и репликация сама поднимется, или вообще удалить postgresql 9.2, оставить только конфиг от него, подсунуть его 9.3, исправить ошибки и собрать репликацию "с нуля"
Даунтайм SQL2 допускается.
подойдёт ли такой вариант для перехода с 9.1 на 9.3?
у меня также используется master->slave
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38482119
aamst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

Вообщем, осуществил я переход по своему плану. Мастер сервер обновил с помощью pg_upgrade, с параметром -k даунтайм составил 2 мин.
Репликацию потом вручную восстановил. При попытке на слейве запустить pg_upgrade я получил ошибку что он не может записывать в базу где "только чтение", потому вручную слейв обновлял, и репликацию заного поднимал.
А почему конфиг от 9.2 лучше не ставить на 9.3? Я именно так и сделал вообще-то, были некоторые тормоза при работе базы в начальные пару часов, потом все нормально, быстро работает.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38482125
aamst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гуркевич,

Думаю вам лучше перейти сначала на 9.2, а уже потом на 9.3
Советую отработать все на тестовом стенде, чтобы не наступать на грабли во время переноса боевой базы.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38482982
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aamst,

В 9.2.5 (сейас это последняя версия в 9.2) есть очень неприятный баг с репликой
https://wiki.postgresql.org/wiki/Nov2013ReplicationIssue
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38483056
aamst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tadmin,

Действительно, неприятный баг!
Я правда у себя с таким не встречался, вроде как есть все данные.
Кстати, на 9.3.1 это не исправили тоже. Там написано что:
Who is at risk for this issue?

Users who:

are on one of the following PostgreSQL versions: 9.3.0, 9.3.1, 9.2.5, 9.1.10, and 9.0.14.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38483064
гуркевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aamst,

у меня сейчас репликация работает на 9.1

после прочтения возник вопрос: стоит ли обновляться?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38484030
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гуркевичу меня сейчас репликация работает на 9.1
после прочтения возник вопрос: стоит ли обновляться?
Я бы подождал, но мы уже оказались на 9.2.5 -(
Пишут, что исправление выйдет в начале декабря, т.е. очень скоро.
Самое страшное в этом баге то, что можно промоутировать реплику до мастера и лишь потом обнаружить. На самом мастере проблем нет.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38484038
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tadmin,

там еще наш авитовский баг с фриз-вакуумом починят, чтобы он мог заканчиваться (патч уже был, у нас в бою поверх 925). 2ого декабря должен быть релиз 926.

и еще должны баг успеть пофиксить с вакуумом при транкейте хвоста таблицы, что-то уже коммитили (а может это и позже только выйдет)
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38486086
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurin,

поправка
http://www.postgresql.org/docs/devel/static/release-9-3-2.html
релиз в их четверг
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38534250
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
$ /usr/lib/postgresql/9.1/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin 
-d /etc/postgresql/9.1/main/ -D /etc/postgresql/9.3/main/ -c
Performing Consistency Checks
-----------------------------
Checking current, bin, and data directories
check for /etc/postgresql/9.1/main/base failed:  No such file or directory

Failure, exiting



Подскажите, почему Postgresql хочет видеть директорию base в /etc/postgresql/9.1/main/???
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38534380
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
$ /usr/lib/postgresql/9.1/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin 
-d /etc/postgresql/9.1/main/ -D /etc/postgresql/9.3/main/ -c
Performing Consistency Checks
-----------------------------
Checking current, bin, and data directories
check for /etc/postgresql/9.1/main/base failed:  No such file or directory

Failure, exiting



Подскажите, почему Postgresql хочет видеть директорию base в /etc/postgresql/9.1/main/???

потому что вы ему сказали там смотреть:
автор-d /etc/postgresql/9.1/main/
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38534585
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, правильно ли я понимаю, что утилиту pg_upgrade нужно запускать из версии 9.1, а не 9.3.?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38534662
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius, из той, на которую мигрируете.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38534739
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёшaquqrius, из той, на которую мигрируете.
если мигрирую с 9.1 на 9.3, то
тогда так выходит?

получаю ошибку: The data directory was initialized by PostgreSQL version 9.1, which is not compatible with this version 9.3.2.
что делать? пробовать ставить 9.2 и мигрировать аналогично туда, а потом с 9.2 на 9.3?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
-----------------------------------------------------------------
  pg_upgrade run on Wed Jan 22 18:02:37 2014
-----------------------------------------------------------------

command: "/usr/lib/postgresql/9.1/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "/var/lib/postgresql/9.1/main/" -o "-p 50432 -b  -c listen_addresses='' -c uni
x_socket_permissions=0700 -c unix_socket_directory='/var/lib/postgresql'" start >> "pg_upgrade_server.log" 2>&1
waiting for server to start....2014-01-22 18:02:38 MSK LOG:  database system was shut down in recovery at 2014-01-22 17:58:36 MSK
Host key verification failed.
2014-01-22 18:02:38 MSK LOG:  starting archive recovery
Host key verification failed.
2014-01-22 18:02:38 MSK LOG:  redo starts at DA0/67061BB0
2014-01-22 18:02:38 MSK LOG:  consistent recovery state reached at DA0/676DFF20
2014-01-22 18:02:38 MSK LOG:  invalid record length at DA0/676DFF20
2014-01-22 18:02:38 MSK LOG:  redo done at DA0/676DFEE0
2014-01-22 18:02:38 MSK LOG:  last completed transaction was at log time 2014-01-20 01:40:00.120068+04
Host key verification failed.
2014-01-22 18:02:38 MSK LOG:  selected new timeline ID: 7
Host key verification failed.
2014-01-22 18:02:38 MSK LOG:  archive recovery complete
2014-01-22 18:02:38 MSK LOG:  database system is ready to accept connections
 done
server started


command: "/usr/lib/postgresql/9.1/bin/pg_ctl" -w -D "/var/lib/postgresql/9.1/main/" -o ""  stop >> "pg_upgrade_server.log" 2>&1
2014-01-22 18:02:40 MSK LOG:  received smart shutdown request
waiting for server to shut down....2014-01-22 18:02:40 MSK LOG:  shutting down
2014-01-22 18:02:40 MSK LOG:  database system is shut down
 done
server stopped


command: "/usr/lib/postgresql/9.3/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "/var/lib/postgresql/9.3/main/" -o "-p 50432 -b -c synchronous_commit=off -c f
sync=off -c full_page_writes=off  -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directories='/var/lib/postgresql'" start >> "pg_upgra
de_server.log" 2>&1
waiting for server to start....2014-01-22 14:02:41 GMT FATAL:  database files are incompatible with server
2014-01-22 14:02:41 GMT DETAIL:  The data directory was initialized by PostgreSQL version 9.1, which is not compatible with this version 9.3.2.
.... stopped waiting
pg_ctl: could not start server
Examine the log output.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38534858
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqriusесли мигрирую с 9.1 на 9.3, то
тогда так выходит?
нет, не так выходит. forward compatibility в software ещё не изобрели. запускайте новую версию UPGRADE из 9.3.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535304
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lonepsychoaquqriusесли мигрирую с 9.1 на 9.3, то
тогда так выходит?
нет, не так выходит. forward compatibility в software ещё не изобрели. запускайте новую версию UPGRADE из 9.3.
не понял Вас. я же запускал pg_upgrade из каталога новой версии 9.3, а не 9.1
так я так и делал:
Код: plsql
1.
2.
$ /usr/lib/postgresql/9.3/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin 
-d  /var/lib/postgresql/9.1/main/ -D  /var/lib/postgresql/9.3/main/ -c



и получил ошибку в логе: The data directory was initialized by PostgreSQL version 9.1, which is not compatible with this version 9.3.2.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
postgres@test-pgrs:~$ /usr/lib/postgresql/9.3/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin -d  /var/lib/postgresql/9.1/main/ -D  /var/lib/postgresql/9.3/main/ -c
Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is a superuser                       ok
Checking for prepared transactions                          ok
Checking for reg* system OID user data types                ok
Checking for contrib/isn with bigint-passing mismatch       ok

*failure*
Consult the last few lines of "pg_upgrade_server.log" for
the probable cause of the failure.

connection to database failed: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/lib/postgresql/.s.PGSQL.50432"?


could not connect to new postmaster started with the command:
"/usr/lib/postgresql/9.3/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "/var/lib/postgresql/9.3/main/" -o "-p 50432 -b -c synchronous_commit=off -c fsync=off -c full_page_writes=off  -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directories='/var/lib/postgresql'" start
Failure, exiting
postgres@test-pgrs:~$ /usr/lib/postgresql/9.3/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin -d  /var/lib/postgresql/9.1/main/ -D  /var/lib/postgresql/9.3/main/ -c




вот содержимое лога pg_upgrade_server.log:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
command: "/usr/lib/postgresql/9.3/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "/var/lib/postgresql/9.3/main/" -o "-p 50432 -b -c synchronous_commit=off -c f
sync=off -c full_page_writes=off  -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directories='/var/lib/postgresql'" start >> "pg_upgra
de_server.log" 2>&1
waiting for server to start....2014-01-22 14:02:41 GMT FATAL:  database files are incompatible with server
2014-01-22 14:02:41 GMT DETAIL:  The data directory was initialized by PostgreSQL version 9.1, which is not compatible with this version 9.3.2.
.... stopped waiting
pg_ctl: could not start server
Examine the log output.



Подскажите, что делать?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535407
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.postgresql.org/docs/9.3/static/pgupgrade.html

авторpg_upgrade does not support upgrading of databases containing these reg* OID-referencing system data types:
regproc, regprocedure, regoper, regoperator, regconfig, and regdictionary. (regtype can be upgraded.)
У меня два вопроса по этому:

1. как я могу узнать запросом, есть ли у меня в БД данные типы (regproc, regprocedure, regoper, regoperator, regconfig, and regdictionary)?

2. Если данные типы есть в БД, и pg_upgrade не сможет проапгрейдить такую БД, то как же произвести апгрейд?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535414
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius http://www.postgresql.org/docs/9.3/static/pgupgrade.html

авторpg_upgrade does not support upgrading of databases containing these reg* OID-referencing system data types:
regproc, regprocedure, regoper, regoperator, regconfig, and regdictionary. (regtype can be upgraded.)
У меня два вопроса по этому:

1. как я могу узнать запросом, есть ли у меня в БД данные типы (regproc, regprocedure, regoper, regoperator, regconfig, and regdictionary)?

2. Если данные типы есть в БД, и pg_upgrade не сможет проапгрейдить такую БД, то как же произвести апгрейд?

1)99% что нету иначе бы вы этот вопрос не задавали... а так pg_upgrade выругается естественно

2)через pg_dump/pg_restore
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535422
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk , подскажите, а как этот вопрос решать?

Код: plsql
1.
2.
waiting for server to start....2014-01-23 07:37:17 GMT FATAL:  database files are incompatible with server
he data directory was initialized by PostgreSQL version 9.1, which is not compatible with this version 9.3.2.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535437
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aquqrius1. как я могу узнать запросом, есть ли у меня в БД данные типы (regproc, regprocedure, regoper, regoperator, regconfig, and regdictionary)?

нашёл:
Код: plsql
1.
2.
3.
select table_catalog, table_schema, table_name, column_name, data_type 
from information_schema.columns
 where data_type like'%reg%';


у меня нашлись такие объекты, но table_schema - "pg_catalog". не обращать на это внимания?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535516
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqriusaquqrius1. как я могу узнать запросом, есть ли у меня в БД данные типы (regproc, regprocedure, regoper, regoperator, regconfig, and regdictionary)?

нашёл:
Код: plsql
1.
2.
3.
select table_catalog, table_schema, table_name, column_name, data_type 
from information_schema.columns
 where data_type like'%reg%';


у меня нашлись такие объекты, но table_schema - "pg_catalog". не обращать на это внимания?

pg_catalog Это служебная схема
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535521
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius Maxim Boguk , подскажите, а как этот вопрос решать?

Код: plsql
1.
2.
waiting for server to start....2014-01-23 07:37:17 GMT FATAL:  database files are incompatible with server
he data directory was initialized by PostgreSQL version 9.1, which is not compatible with this version 9.3.2.



так директорию под будущий 9.3 надо Initdb 9.3 делать а не 9.1вым
о чем оно вам и пишет
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535785
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Bogukaquqrius Maxim Boguk , подскажите, а как этот вопрос решать?

Код: plsql
1.
2.
waiting for server to start....2014-01-23 07:37:17 GMT FATAL:  database files are incompatible with server
he data directory was initialized by PostgreSQL version 9.1, which is not compatible with this version 9.3.2.



так директорию под будущий 9.3 надо Initdb 9.3 делать а не 9.1вым
о чем оно вам и пишет
спасибо! а можно показать пример, как это делать? у postgresql очень скудная документация.

вот открыл я опять доку: http://www.postgresql.org/docs/9.3/static/pgupgrade.html
читаю, пункт 2:
авторFor source installs, build the new version
Build the new PostgreSQL source with configure flags that are compatible with the old cluster.
pg_upgrade will check pg_controldata to make sure all settings are compatible before starting the upgrade.
и где пример, как это сделать?

далее пункт 5:
авторInitialize the new PostgreSQL cluster
Initialize the new cluster using initdb. Again, use compatible initdb flags that match the old cluster.
Many prebuilt installers do this step automatically. There is no need to start the new cluster.
и опять никакого примера не вижу(

Типа установите и сконфигурируйте новый экземпляр с параметрами для обратной совместимости.
А вот как это сделать не написали (или я не вижу).
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535887
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Bogukaquqrius Maxim Boguk , подскажите, а как этот вопрос решать?

Код: plsql
1.
2.
waiting for server to start....2014-01-23 07:37:17 GMT FATAL:  database files are incompatible with server
he data directory was initialized by PostgreSQL version 9.1, which is not compatible with this version 9.3.2.



так директорию под будущий 9.3 надо Initdb 9.3 делать а не 9.1вым
о чем оно вам и пишет

что я сделал:

1. установил ( apt-get install postgres-9.3 ) на чистую машину postgresql 9.3 порт 5432.
в результате создались два каталога:
Код: plsql
1.
2.
/usr/lib/postgresql/9.3/bin/
/var/lib/postgresql/9.3/main/


2. далее установил ( apt-get install postgres-9.1 ) postgresql 9.1 порт 5433
создались два каталога:
Код: plsql
1.
2.
/usr/lib/postgresql/9.1/bin/
/var/lib/postgresql/9.1/main/





чтобы избежать ошибки
, я должен создать директорию под будущий 9.3:
имеется ввиду директория: /var/lib/postgresql/9.3/main/???



Код: plsql
1.
mv /var/lib/postgresql/9.3/main /var/lib/postgresql/9.3/old_main



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
$ /usr/lib/postgresql/9.3/bin/initdb -D /var/lib/postgresql/9.3/main/
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /var/lib/postgresql/9.3/main ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
creating configuration files ... ok
creating template1 database in /var/lib/postgresql/9.3/main/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main/
or
    /usr/lib/postgresql/9.3/bin/pg_ctl -D /var/lib/postgresql/9.3/main/ -l logfile start



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
$ /usr/lib/postgresql/9.3/bin/pg_upgrade 
-b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin 
-d  /var/lib/postgresql/9.1/main/ -D  /var/lib/postgresql/9.3/main/  -p 5433 –P 5432 -c
Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is a superuser                       ok
Checking for prepared transactions                          ok
Checking for reg* system OID user data types                ok
Checking for contrib/isn with bigint-passing mismatch       ok
Checking for presence of required libraries                 fatal

Your installation references loadable libraries that are missing from the
new installation.  You can add these libraries to the new installation,
or remove the functions using them from the old installation.  A list of
problem libraries is in the file:
    loadable_libraries.txt

Failure, exiting



loadable_libraries.txt
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Could not load library "$libdir/lo"
ERROR:  could not access file "$libdir/lo": No such file or directory

Could not load library "$libdir/pg_trgm"
ERROR:  could not access file "$libdir/pg_trgm": No such file or directory

Could not load library "$libdir/pg_repack"
ERROR:  could not access file "$libdir/pg_repack": No such file or directory



в старом кластере 9.1 я не вижу такие файлов или каталогов. Где мне их искать?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38535942
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторCould not load library "$libdir/lo"
ERROR: could not access file "$libdir/lo": No such file or directory
Could not load library "$libdir/pg_trgm"
ERROR: could not access file "$libdir/pg_trgm": No such file or directory
Could not load library "$libdir/pg_repack"
ERROR: could not access file "$libdir/pg_repack": No such file or directory
насколько я понял, все библиотеки у Postgresql должны лежать в каталоге:
Код: plsql
1.
/usr/lib/postgresql/9.1/lib


но в этом каталоге, как и в /usr/lib/postgresql/9.3/lib я не вижу lo, pg_trgm, pg_repack
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38536131
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38536239
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqriusавторCould not load library "$libdir/lo"
ERROR: could not access file "$libdir/lo": No such file or directory
Could not load library "$libdir/pg_trgm"
ERROR: could not access file "$libdir/pg_trgm": No such file or directory
Could not load library "$libdir/pg_repack"
ERROR: could not access file "$libdir/pg_repack": No such file or directory
насколько я понял, все библиотеки у Postgresql должны лежать в каталоге:
Код: plsql
1.
/usr/lib/postgresql/9.1/lib


но в этом каталоге, как и в /usr/lib/postgresql/9.3/lib я не вижу lo, pg_trgm, pg_repack

а откуда у вас вообще взяты упомнинания "lo, pg_trgm, pg_repack"
для первых двух вам надо поставить contribs и для 9.3 и для 9.1
для последнего pg_repack отдельно...
или найти где они прописаны в конфигах базы и зачем и убрать оттуда...
99% что у вас в старом конфиге 9.1 они прописаны или установлены в старую базу 9.1

PS: вообще надо или учится и разбираться самому или обращаться к специалистам... у вас вопросы которые DBA задавать не должен вообще...
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38537237
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автордля первых двух вам надо поставить contribs и для 9.3 и для 9.1
для последнего pg_repack отдельно...
или найти где они прописаны в конфигах базы и зачем и убрать оттуда...
99% что у вас в старом конфиге 9.1 они прописаны или установлены в старую базу 9.1

да, вы правы, pg_admin показывает эти расширения в списке расширений в старой БД 9.1

установились расширения lo и pg_tgrm.

Код: plsql
1.
2.
apt-get install postgresql-contrib-9.1
apt-get install postgresql-contrib-9.3



авторAlternatively you can use the PGXN Client to download, compile and install the package; use:
не получается установить расширение pg_repack
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
$ pgxn install pg_repack
INFO: best version: pg_repack 1.1.8
INFO: saving /tmp/tmpI0bzki/pg_repack-1.1.8.zip
INFO: unpacking: /tmp/tmpI0bzki/pg_repack-1.1.8.zip
INFO: building extension
make[1]: Entering directory `/tmp/tmpI0bzki/pg_repack-1.1.8/bin'
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o pg_repack.o pg_repack.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o pgut/pgut.o pgut/pgut.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o pgut/pgut-fe.o pgut/pgut-fe.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g pg_repack.o pgut/pgut.o pgut/pgut-fe.o -L/usr/lib -lpq -L/usr/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/x86_64-linux-gnu/mit-krb5 -L/usr/lib/x86_64-linux-gnu  -Wl,--as-needed  -lpgport -lpgcommon -lpam -lssl -lcrypto -lkrb5 -lcom_err -lgssapi_krb5 -lz -ledit -lcrypt -ldl -lm -o pg_repack
/usr/bin/ld: cannot find -lpam
/usr/bin/ld: cannot find -ledit
collect2: ld returned 1 exit status
make[1]: *** [pg_repack] Error 1
make[1]: Leaving directory `/tmp/tmpI0bzki/pg_repack-1.1.8/bin'
make: *** [all] Error 2
ERROR: command returned 2: make PG_CONFIG=/usr/bin/pg_config all

# cd /tmp/tmpI0bzki/pg_repack-1.1.8/bin
root@test-pgrs:/tmp/tmpI0bzki/pg_repack-1.1.8/bin# pwd
/tmp/tmpI0bzki/pg_repack-1.1.8/bin



http://reorg.github.io/pg_repack/

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
# pwd
/home/pg_repack-1.1.8/bin
root@test-pgrs:/home/pg_repack-1.1.8/bin# make
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g pg_repack.o pgut/pgut.o pgut/pgut-fe.o -L/usr/lib -lpq -L/usr/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/x86_64-linux-gnu/mit-krb5 -L/usr/lib/x86_64-linux-gnu  -Wl,--as-needed  -lpgport -lpgcommon -lpam -lssl -lcrypto -lkrb5 -lcom_err -lgssapi_krb5 -lz -ledit -lcrypt -ldl -lm -o pg_repack
/usr/bin/ld: cannot find -lpam
/usr/bin/ld: cannot find -ledit
collect2: ld returned 1 exit status
make: *** [pg_repack] Error 1



не получается установить расширение pg_repack(((
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38537368
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius, удалите extension pg_repack из 9.1, после обновления заново поставите в 9.3
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38538744
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёшaquqrius, удалите extension pg_repack из 9.1, после обновления заново поставите в 9.3


могли бы объяснить причину ошибки ниже?
Код: plsql
1.
ERROR: command returned 2: make PG_CONFIG=/usr/bin/pg_config all



я подумал, что эта ошибка может быть связана с тем, что у меня на машине две версии Postgresql установлено.

я попробовал прописать:

Код: plsql
1.
2.
3.
$ export PATH="$PATH:/usr/lib/postgresql/9.3/bin"
postgres@test-pgrs:/usr/lib/postgresql/9.3/bin$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/postgresql/9.3/bin



но мне это не помогло. Я не понимаю почему у меня ошибка:(
и почему
Код: plsql
1.
2.
/usr/bin/ld: cannot find -lpam
/usr/bin/ld: cannot find -ledit



подскажите пожалуйста.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38538769
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
echo $PATH
Код: plsql
1.
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/postgresql/9.3/bin




http://pqxx.org/boilerplate/frozen/126.html
пишут, что нужно путь к бинарникам postgresql в начале PATH указывать. указал.
авторAll you need to do is make sure that the pg_config that you want is the first in your path. So in a Unix-like environment, for example, you could say:

PATH="/path/to/my/favourite/postgres/bin:$PATH"
export PATH

postgres@test-pgrs:/usr/lib/postgresql/9.3/bin$
Код: plsql
1.
export PATH=/usr/lib/postgresql/9.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games


postgres@test-pgrs:/usr/lib/postgresql/9.3/bin$ echo $PATH
/usr/lib/postgresql/9.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
postgres@test-pgrs:/usr/lib/postgresql/9.3/bin$ pgxn install pg_repack
INFO: best version: pg_repack 1.1.8
INFO: saving /tmp/tmp7WmUAO/pg_repack-1.1.8.zip
INFO: unpacking: /tmp/tmp7WmUAO/pg_repack-1.1.8.zip
INFO: building extension
make[1]: Entering directory `/tmp/tmp7WmUAO/pg_repack-1.1.8/bin'
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.5 -c -o pg_repack.o pg_repack.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.5 -c -o pgut/pgut.o pgut/pgut.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.5 -c -o pgut/pgut-fe.o pgut/pgut-fe.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g pg_repack.o pgut/pgut.o pgut/pgut-fe.o -L/usr/lib -lpq -L/usr/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/x86_64-linux-gnu/mit-krb5 -L/usr/lib/x86_64-linux-gnu -Wl,--as-needed -lpgport -lpgcommon -lpam -lssl -lcrypto -lkrb5 -lcom_err -lgssapi_krb5 -lz -ledit -lcrypt -ldl -lm -o pg_repack
/usr/bin/ld: cannot find -lpam
/usr/bin/ld: cannot find -ledit
collect2: ld returned 1 exit status
make[1]: *** [pg_repack] Error 1
make[1]: Leaving directory `/tmp/tmp7WmUAO/pg_repack-1.1.8/bin'
make: *** [all] Error 2
ERROR: command returned 2: make PG_CONFIG=/usr/lib/postgresql/9.3/bin/pg_config all
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38538822
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius, вот ошибка связывания:
/usr/bin/ld: cannot find -lpam
/usr/bin/ld: cannot find -ledit

дальше — это её следствия. Для сборки программы Вам нужно поставить сборочные пакеты этих библиотек:
sudo aptitude install libedit-dev
sudo aptitude install libpam-dev
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38538901
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёшaquqrius, вот ошибка связывания:
/usr/bin/ld: cannot find -lpam
/usr/bin/ld: cannot find -ledit

дальше — это её следствия. Для сборки программы Вам нужно поставить сборочные пакеты этих библиотек:
sudo aptitude install libedit-dev
sudo aptitude install libpam-dev

спасибо большое!!! я бы не догадался, что нужно именно эти библиотеки установить, потому что в инструкции написано:
авторBefore building, you might need to install the PostgreSQL development packages (postgresql-devel, etc.)

следующие грабли:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
~$ pgxn install pg_repack
INFO: best version: pg_repack 1.1.8
INFO: saving /tmp/tmp5Fkdza/pg_repack-1.1.8.zip
INFO: unpacking: /tmp/tmp5Fkdza/pg_repack-1.1.8.zip
INFO: building extension
make[1]: Entering directory `/tmp/tmp5Fkdza/pg_repack-1.1.8/bin'
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o pg_repack.o pg_repack.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o pgut/pgut.o pgut/pgut.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o pgut/pgut-fe.o pgut/pgut-fe.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g pg_repack.o pgut/pgut.o pgut/pgut-fe.o -L/usr/lib -lpq -L/usr/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/x86_64-linux-gnu/mit-krb5 -L/usr/lib/x86_64-linux-gnu  -Wl,--as-needed  -lpgport -lpgcommon -lpam -lssl -lcrypto -lkrb5 -lcom_err -lgssapi_krb5 -lz -ledit -lcrypt -ldl -lm -o pg_repack
make[1]: Leaving directory `/tmp/tmp5Fkdza/pg_repack-1.1.8/bin'
make[1]: Entering directory `/tmp/tmp5Fkdza/pg_repack-1.1.8/lib'
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -I/usr/include/mit-krb5 -DLINUX_OOM_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -fpic -I. -I./ -I/usr/include/postgresql/9.3/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o repack.o repack.c
repack.c: In function ‘repack_swap’:
repack.c:742:3: error: too few arguments to function ‘RenameRelationInternal’
/usr/include/postgresql/9.3/server/commands/tablecmds.h:60:13: note: declared here
repack.c:744:3: error: too few arguments to function ‘RenameRelationInternal’
/usr/include/postgresql/9.3/server/commands/tablecmds.h:60:13: note: declared here
repack.c:754:3: error: too few arguments to function ‘RenameRelationInternal’
/usr/include/postgresql/9.3/server/commands/tablecmds.h:60:13: note: declared here
repack.c:756:3: error: too few arguments to function ‘RenameRelationInternal’
/usr/include/postgresql/9.3/server/commands/tablecmds.h:60:13: note: declared here
repack.c:761:3: error: too few arguments to function ‘RenameRelationInternal’
/usr/include/postgresql/9.3/server/commands/tablecmds.h:60:13: note: declared here
repack.c:763:3: error: too few arguments to function ‘RenameRelationInternal’
/usr/include/postgresql/9.3/server/commands/tablecmds.h:60:13: note: declared here
repack.c:768:3: error: too few arguments to function ‘RenameRelationInternal’
/usr/include/postgresql/9.3/server/commands/tablecmds.h:60:13: note: declared here
repack.c:770:3: error: too few arguments to function ‘RenameRelationInternal’
/usr/include/postgresql/9.3/server/commands/tablecmds.h:60:13: note: declared here
make[1]: *** [repack.o] Error 1
make[1]: Leaving directory `/tmp/tmp5Fkdza/pg_repack-1.1.8/lib'
make: *** [all] Error 2
ERROR: command returned 2: make PG_CONFIG=/usr/lib/postgresql/9.3/bin/pg_config all



https://github.com/reorg/pg_repack/issues/17

правильно ли я понимаю из ссылки, что pg_repack 1.8 не поддерживает Postgresql 9.3.2 (Т.е. последнюю версию Postgresql,
где исправлены все баги с репликацией)?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38539017
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если ставить pg_repack 1.2, то смущает, что он beta.
или это нормально?

и ещё вопрос: не получается удалить расширение (вернее расширение у меня отсутствует и в 9.1 и в 9.3,
но в БД 9.1 есть ссылки/упоминания на это расширение, как их убрать?)

Код: plsql
1.
2.
3.
4.
5.
6.
$ pgxn unload pg_repack
INFO: best version: pg_repack 1.1.8
The extension 'pg_repack' doesn't contain a control file:
will look for an SQL script to unload the objects.
Do you want to continue? [y/N] y
ERROR: cannot find sql file for extension 'pg_repack': 'uninstall_pg_repack.sql'



где же взять этот файл uninstall_pg_repack.sql? разве что с рабочей БД взять, с которой бэкап делался....
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38539039
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос в том, как удалить ссылки в БД на расширение, которого на самом деле нет.
есть только ссылки в БД.

подскажите пожалуйста.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38539114
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius
Код: plsql
1.
2.
3.
4.
5.
6.
$ pgxn unload pg_repack
INFO: best version: pg_repack 1.1.8
The extension 'pg_repack' doesn't contain a control file:
will look for an SQL script to unload the objects.
Do you want to continue? [y/N] y
ERROR: cannot find sql file for extension 'pg_repack': 'uninstall_pg_repack.sql'



где же взять этот файл uninstall_pg_repack.sql? разве что с рабочей БД взять, с которой бэкап делался....Раз pgxn пытается ставить pg_repack в 9.3, то думаю что и удалять его он пытается из 9.3, а для миграции Вам нужно удалить его из 9.2. Нужно посмотреть что он в 9.2 устанавливает при установке.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38539553
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёшaquqrius
Код: plsql
1.
2.
3.
4.
5.
6.
$ pgxn unload pg_repack
INFO: best version: pg_repack 1.1.8
The extension 'pg_repack' doesn't contain a control file:
will look for an SQL script to unload the objects.
Do you want to continue? [y/N] y
ERROR: cannot find sql file for extension 'pg_repack': 'uninstall_pg_repack.sql'



где же взять этот файл uninstall_pg_repack.sql? разве что с рабочей БД взять, с которой бэкап делался....Раз pgxn пытается ставить pg_repack в 9.3, то думаю что и удалять его он пытается из 9.3, а для миграции Вам нужно удалить его из 9.2. Нужно посмотреть что он в 9.2 устанавливает при установке.
у меня 9.2 нет на машине.

я хочу сделать переход с 9.1.9 на 9.3.2

и у меня на тестовой машине pg_repack ни в 9.3, ни в 9.1 не ставится.

при попытке установить pg_repack в 9.1 ошибка:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$ echo $PATH
/usr/lib/postgresql/9.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
postgres@test-pgrs:~$ pgxn install pg_repack
INFO: best version: pg_repack 1.1.8
INFO: saving /tmp/tmpRRx1Sw/pg_repack-1.1.8.zip
INFO: unpacking: /tmp/tmpRRx1Sw/pg_repack-1.1.8.zip
INFO: building extension
make[1]: Entering directory `/tmp/tmpRRx1Sw/pg_repack-1.1.8/bin'
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.1/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -DLINUX_OOM_ADJ=0 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o pg_repack.o pg_repack.c
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -pie -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.1/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -DLINUX_OOM_ADJ=0 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.5  -c -o pgut/pgut.o pgut/pgut.c
In file included from pgut/pgut.c:10:0:
/usr/include/postgresql/postgres_fe.h:27:32: fatal error: common/fe_memutils.h: No such file or directory
compilation terminated.
make[1]: *** [pgut/pgut.o] Error 1
make[1]: Leaving directory `/tmp/tmpRRx1Sw/pg_repack-1.1.8/bin'
make: *** [all] Error 2


ERROR: command returned 2: make PG_CONFIG=/usr/lib/postgresql/9.1/bin/pg_config all

в чём ошибка на сей раз?

pgxn не обращает внимание на PATH?
если у меня в Path указан путь к 9.1, значит pgxn install Должен устанавливать в ту версию,
которая указана в PATH. Или не факт?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38539602
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня есть два каталога на машине:
Код: plsql
1.
2.
 /usr/lib/postgresql/9.1
 /usr/lib/postgresql/9.3



удалить из 9.1 pg_repack я не могу:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
 pgxn unload pg_repack
INFO: best version: pg_repack 1.1.8
The extension 'pg_repack' doesn't contain a control file:
will look for an SQL script to unload the objects.
Do you want to continue? [y/N] y
ERROR: cannot find sql file for extension 'pg_repack': 'uninstall_pg_repack.sql'
postgres@test-pgrs:/usr/include/postgresql/9.1/server$ pwd



установить в 9.1 pg_repack я тоже не могу:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
In file included from pgut/pgut.c:10:0:
/usr/include/postgresql/postgres_fe.h:27:32: fatal error: common/fe_memutils.h: No such file or directory
compilation terminated.
make[1]: *** [pgut/pgut.o] Error 1
make[1]: Leaving directory `/tmp/tmppWR_Z8/pg_repack-1.1.8/bin'
make: *** [all] Error 2
ERROR: command returned 2: make PG_CONFIG=/usr/lib/postgresql/9.1/bin/pg_config all



хотя мне достаточно удалить ссылки в БД на Pg_repack, но я не знаю как это сделать и прошу вашей помощи
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38539675
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius,

https://github.com/reorg/pg_repack/blob/maint_1.1/lib/uninstall_pg_repack.sql

вот так вроде он чистится
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38540560
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёшaquqrius,

https://github.com/reorg/pg_repack/blob/maint_1.1/lib/uninstall_pg_repack.sql

вот так вроде он чистится

спасибо.
меня только смущает, что когда я выполняю скрипт:
Код: plsql
1.
2.
3.
$ psql -f /tmp/tmppWR_Z8/pg_repack-1.1.8/lib/uninstall_pg_repack.sql
psql:/tmp/tmppWR_Z8/pg_repack-1.1.8/lib/uninstall_pg_repack.sql:9: NOTICE:  schema "repack" does not exist, skipping
DROP SCHEMA



а при попытке апгрейда:
Код: plsql
1.
2.
Could not load library "$libdir/pg_repack"
ERROR:  could not access file "$libdir/pg_repack": No such file or directory



если схема repack не существует, почему же при апгрейде ругается на это расширение?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38540574
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
~$ psql --version
psql (PostgreSQL) 9.1.11
contains support for command-line editing

postgres@test-pgrs:~$ psql
psql (9.1.11)
Type "help" for help.


проверил запросом, что схема repack отсутствует в БД:

Код: plsql
1.
2.
3.
4.
postgres=# select * from pg_catalog.pg_namespace where nspname='repack';
 nspname | nspowner | nspacl
---------+----------+--------
(0 rows)



Я уже совсем не понимаю, почему если схема re_pack отсутствует, почему ругается на эту библиотеку при pg_upgrade?
в 9.3 этого расширения точно нет, и для меня был вариант удалить его из 9.1, но я не смог(((
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38540590
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aquqrius,

возможно он прописан ещё в конфигурационном файле postgres, нужно его оттуда тоже удалить.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38540613
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гость_0aquqrius,

возможно он прописан ещё в конфигурационном файле postgres, нужно его оттуда тоже удалить.

проверил postgresql.conf в 9.1 там нет никакого упоминания о repack. Можно ещё где посмотреть?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38540649
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius
Код: plsql
1.
2.
3.
4.
5.
6.
7.
~$ psql --version
psql (PostgreSQL) 9.1.11
contains support for command-line editing

postgres@test-pgrs:~$ psql
psql (9.1.11)
Type "help" for help.


проверил запросом, что схема repack отсутствует в БД:

Код: plsql
1.
2.
3.
4.
postgres=# select * from pg_catalog.pg_namespace where nspname='repack';
 nspname | nspowner | nspacl
---------+----------+--------
(0 rows)



Я уже совсем не понимаю, почему если схема re_pack отсутствует, почему ругается на эту библиотеку при pg_upgrade?
в 9.3 этого расширения точно нет, и для меня был вариант удалить его из 9.1, но я не смог(((

потому что он может и в другой схеме стоять.... проверять наличие расширения таким образом как вы делаете - совершенно бесмысленно...
для начала надо посмотреть в pg_extension
если там нет - значит он не как extension ставился а заливался руками...
и надо искать тот самый uninstall_pg_repack.sql и выполнять его...
ну или руками все хранимки от pg_repack выковыривать...
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38542645
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автордля начала надо посмотреть в pg_extension
на рабочем сервере СУБД смотрю, локально, из консоли, где установлено это расширение:
Код: plsql
1.
2.
3.
4.
 select * from pg_extension where extname like '%repack%';
 extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
---------+----------+--------------+----------------+------------+-----------+--------------
(0 rows)


а вот с клиента подключаюсь через PG_ADMIN и вижу есть расширение:
Код: plsql
1.
"pg_repack";10;2200;f;"1.1.8";"";""



на рабочем сервере стоит только версия 9.1
подключение из консоли проходит к 9.1
не понимаю почему локально из консоли я не вижу это расширение запросом, а с клиента вижу.
переменную $PATH указывал.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38542680
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aquqriusавтордля начала надо посмотреть в pg_extension
на рабочем сервере СУБД смотрю, локально, из консоли, где установлено это расширение:
Код: plsql
1.
2.
3.
4.
 select * from pg_extension where extname like '%repack%';
 extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
---------+----------+--------------+----------------+------------+-----------+--------------
(0 rows)


а вот с клиента подключаюсь через PG_ADMIN и вижу есть расширение:
Код: plsql
1.
"pg_repack";10;2200;f;"1.1.8";"";""



на рабочем сервере стоит только версия 9.1
подключение из консоли проходит к 9.1
не понимаю почему локально из консоли я не вижу это расширение запросом, а с клиента вижу.
переменную $PATH указывал.

на вопрос выше нашёл ответ: у пользователя локального не было прав видимо.
так как цеплялся так: su - postgres
psql

в этом случае коннект как я понимаю происходит под пользователем postgresql по умолчанию.
а у этого пользователя с правами всё не так хорошо видимо.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38542700
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сдвинулся с места за несколько дней, на один шажок:)

Код: plsql
1.
/usr/lib/postgresql/9.1/bin/psql -h 127.0.0.1 -p 5432 -U u.user -d MyDB -f /var/lib/postgresql/pg_repack-1.1.8/lib/uninstall_pg_repack.sql


такая вот конструкция проходит, но говорит, что ERROR: must be owner of schema repack

а иначе:
Код: plsql
1.
2.
$ /usr/lib/postgresql/9.1/bin/psql -f /var/lib/postgresql/pg_repack-1.1.8/lib/uninstall_pg_repack.sql             
psql:/var/lib/postgresql/pg_repack-1.1.8/lib/uninstall_pg_repack.sql:9:


NOTICE: schema "repack" does not exist, skipping DROP SCHEMA

всего-то теперь нужно узнать имя пользователя, владельца схемы repack и его пароль))
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38542976
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqriusя сдвинулся с места за несколько дней, на один шажок:)

Код: plsql
1.
/usr/lib/postgresql/9.1/bin/psql -h 127.0.0.1 -p 5432 -U u.user -d MyDB -f /var/lib/postgresql/pg_repack-1.1.8/lib/uninstall_pg_repack.sql


такая вот конструкция проходит, но говорит, что ERROR: must be owner of schema repack

а иначе:
Код: plsql
1.
2.
$ /usr/lib/postgresql/9.1/bin/psql -f /var/lib/postgresql/pg_repack-1.1.8/lib/uninstall_pg_repack.sql             
psql:/var/lib/postgresql/pg_repack-1.1.8/lib/uninstall_pg_repack.sql:9:


NOTICE: schema "repack" does not exist, skipping DROP SCHEMA

всего-то теперь нужно узнать имя пользователя, владельца схемы repack и его пароль))

достаточно выполнить из под postgres (он superuser и ему прав хватит)
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38543296
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Bogukaquqriusвсего-то теперь нужно узнать имя пользователя, владельца схемы repack и его пароль))
достаточно выполнить из под postgres (он superuser и ему прав хватит)
Как оказалось не достаточно. Потому что кластер может содержать множество БД. И в моём случае нужно было узнать ещё в какой это БД. Показываю на примере:

Подключились к БД под postgres
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
postgres=# select user;
 current_user
--------------
 postgres
(1 row)

postgres=# select session_user;
 session_user
--------------
 postgres
(1 row)



ну и теперь самое интересное:
Код: plsql
1.
2.
3.
4.
5.
postgres=# select * from pg_extension;
 extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
---------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql |       10 |           11 | f              | 1.0        |           |
(1 row)



как видите запрос выполнялся под postgres и показал что нет расширения repack. нет, видимо в БД по умолчанию.
А если подключимся к другой БД, то он появится.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
postgres=# select datname, datdba from pg_database;
  datname   |  datdba
------------+----------
 template0  |       10
 postgres   |       10
 pgpool     | 35511673
 mydb        |    16385
 template1  |       10
 pb_opencms |    16387
(6 rows)



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$ psql -d mydb
psql (9.1.9)
Type "help" for help.

mydb=# select * from pg_extension;
  extname  | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-----------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql   |       10 |           11 | f              | 1.0        |           |
 lo        |       10 |         2200 | t              | 1.0        |           |
 pg_trgm   |       10 |         2200 | t              | 1.0        |           |
 pg_repack |       10 |         2200 | f              | 1.1.8      |           |
(4 rows)



пользователь postgres не является datdba для БД, где находилось расширения repack, которое никак не находилось и не удалялась поэтому.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38543378
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автори надо искать тот самый uninstall_pg_repack.sql и выполнять его...нашёл и выполнил:
Код: plsql
1.
2.
3.
4.
5.
$ /usr/lib/postgresql/9.1/bin/psql -d mydb -f /var/lib/postgresql/pg_repack-1.1.8/lib/uninstall_pg_repack.sql

psql:/var/lib/postgresql/pg_repack-1.1.8/lib/uninstall_pg_repack.sql:9:
ERROR:  cannot drop schema repack because extension pg_repack requires it
HINT:  You can drop extension pg_repack instead.



вопрос1: как выполнить "drop extension pg_repack instead"

вопрос2: куда положить uninstall_pg_repack.sql, чтобы pgxn нашёл его?

может сюда /usr/lib/postgresql/9.1/lib/pgxs??

Код: plsql
1.
2.
3.
4.
5.
$ pgxn unload pg_repack
INFO: best version: pg_repack 1.1.8
The extension 'pg_repack' doesn't contain a control file:
will look for an SQL script to unload the objects.
Do you want to continue? [y/N] y


ERROR: cannot find sql file for extension 'pg_repack': 'uninstall_pg_repack.sql'
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38543472
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уиииииииииииииииии!!!! оно удалилось!
оказалось просто нужно было выполнить:
Код: plsql
1.
DROP EXTENSION pg_repack;


и

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$ /usr/lib/postgresql/9.3/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin 
-d  /var/lib/postgresql/9.1/main/ -D /var/lib/postgresql/9.3/main/ -c
Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is a superuser                       ok
Checking for prepared transactions                          ok
Checking for reg* system OID user data types                ok
Checking for contrib/isn with bigint-passing mismatch       ok
Checking for presence of required libraries                 ok
Checking database user is a superuser                       ok
Checking for prepared transactions                          ok

*Clusters are compatible*



получается всё ок? можно теперь выполнять с ключом -k?
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38543525
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aquqrius,

да :)
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38543548
aquqrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёшaquqrius,

да :)
спасибо!

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
$ /usr/lib/postgresql/9.3/bin/pg_upgrade 
-b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin 
-d  /var/lib/postgresql/9.1/main/ -D /var/lib/postgresql/9.3/main/ -k

Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is a superuser                       ok
Checking for prepared transactions                          ok
Checking for reg* system OID user data types                ok
Checking for contrib/isn with bigint-passing mismatch       ok
Creating dump of global objects                             ok
Creating dump of database schemas
                                                            ok
Checking for presence of required libraries                 ok
Checking database user is a superuser                       ok
Checking for prepared transactions                          ok

If pg_upgrade fails after this point, you must re-initdb the
new cluster before continuing.

Performing Upgrade
------------------
Analyzing all rows in the new cluster                       ok
Freezing all rows on the new cluster                        ok
Deleting files from new pg_clog                             ok
Copying old pg_clog to new server                           ok
Setting next transaction ID for new cluster                 ok
Setting oldest multixact ID on new cluster                  ok
Resetting WAL archives                                      ok
Setting frozenxid counters in new cluster                   ok
Restoring global objects in the new cluster                 ok
Adding support functions to new cluster                     ok
Restoring database schemas in the new cluster
                                                            ok
Removing support functions from new cluster                 ok
Adding ".old" suffix to old global/pg_control               ok

If you want to start the old cluster, you will need to remove
the ".old" suffix from /var/lib/postgresql/9.1/main/global/pg_control.old.
Because "link" mode was used, the old cluster cannot be safely
started once the new cluster has been started.

Linking user relation files
                                                            ok
Setting next OID for new cluster                            ok
Sync data directory to disk                                 ok
Creating script to analyze new cluster                      ok
Creating script to delete old cluster                       ok

Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade so,
once you start the new server, consider running:
    analyze_new_cluster.sh

Running this script will delete the old cluster's data files:
    delete_old_cluster.sh



далее запустил обновлённую версию:
Код: plsql
1.
/usr/lib/postgresql/9.3/bin/pg_ctl -D /var/lib/postgresql/9.3/main/ -l logfile start


я только не очень понимаю
Код: plsql
1.
Running this script will delete the old cluster's data files: delete_old_cluster.sh


он удалит старые датафайлы? а на них же ссылки? я что-то не так понимаю
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38543595
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aquqrius, имя файла - это ссылка на место на диске, сейчас у вас две ссылки (имени) указывают на одно и то же место на диске, так что старые имена можно удалить.
...
Рейтинг: 0 / 0
Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
    #38559381
VladMN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Один переезд хуже двух пожаров.

Имеет смысл сохранить дампы рабочих БД и таблиц, с помощью, скажем, (эта приблуда стоит у нас в институте). Обычно приходится всё равно делать DROP-CREATE и файлы поправлять вручную. И потом, вроде бы именно для Postgre есть внешние утилиты миграции.
...
Рейтинг: 0 / 0
64 сообщений из 64, показаны все 3 страниц
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]