powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
14 сообщений из 64, страница 3 из 3
Как провести 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
14 сообщений из 64, страница 3 из 3
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как провести Upgrade PostgreSQL с 9.1 до 9.3 с минимальным downtime? (pg_upgrade)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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