Миграция между версиями postgresql ( 9.1 to 9.4 )

1. Останавливаем все кластеры, с которыми будет проводиться работа :

/etc/init.d/postgresql stop

2. Логинимся под potgres для продолжения работ :

sudo -u postgres -i

3. Проверяем корректность миграции ( check ) :

cd /tmp
mkdir psql_up
cd psql_up
--- одна строка ---
/usr/lib/postgresql/9.4/bin/pg_upgrade -c -k -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.4/bin -d ../9.1/main/ -D ../9.4/main/ -o " -c config_file=/etc/postgresql/9.1/main/postgresql.conf " -O " -c config_file=/etc/postgresql/9.4/main/postgresql.conf "
--------------------

Проверяем что все ОК пункты

postgres@xxx:~/upgrade$ /usr/lib/postgresql/9.4/bin/pg_upgrade -c -k -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.4/bin -d ../9.1/main/ -D ../9.4/main/ -o " -c config_file=/etc/postgresql/9.1/main/postgresql.conf " -O " -c config_file=/etc/postgresql/9.4/main/postgresql.conf "
Performing Consistency Checks
-----------------------------
Checking cluster versions ok
Checking database user is a superuser ok
Checking database connection settings 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 invalid "line" user columns ok
Checking for presence of required libraries ok
Checking database user is a superuser ok
Checking for prepared transactions ok

*Clusters are compatible*

4. Теперь если все ОК, убираем флаг «-c» ( check ) и ждем завершения миграции
5. Гасим старый кластер ( я не удалял, а на всякий случай просто перенес из рабочего каталога наружу )

mv /usr/lib/postgresql/9.1 /root

6. Меняем в настройках нового кластера порт на порт старого кластера в /etc/postgresql/9.4/main/
7. Стартуем :

/etc/init.d/postgresql start

Tags: , , ,

Leave a Reply