Ръководство стъпка по стъпка
-
Направете резервно копие . Уверете се, че вашата база данни не се актуализира.
pg_dumpall > outputfile
-
Инсталирайте Postgres 10 . Следвайте инструкциите на тази страница:https://www.postgresql.org/download/linux/ubuntu/
След това стартирайте
sudo apt-get install postgresql-10
. По-нова версия ще бъде инсталирана успоредно с по-ранната версия. -
Изпълнете
pg_lsclusters
:Ver Cluster Port Status Owner Data directory Log file 9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5433 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
Вече има клъстер
main
за 10 (тъй като това се създава по подразбиране при инсталиране на пакет). Това се прави, за да работи нова инсталация от кутията, без да е необходимо първо да създавате клъстер, но, разбира се, тя се сблъсква, когато се опитате да надстроите9.6/main
когато10/main
също съществува. Препоръчителната процедура е да премахнете клъстера 10 сpg_dropcluster
и след това надстройте сpg_upgradecluster
. -
Спрете клъстера 10 и го пуснете:
sudo pg_dropcluster 10 main --stop
-
Спрете всички процеси и услуги да пишат в базата данни. Спрете базата данни:
sudo systemctl stop postgresql
-
Надстройте клъстера 9.6:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Стартирайте PostgreSQL отново
sudo systemctl start postgresql
-
Изпълнете
pg_lsclusters
. Вашият 9.6 клъстер вече трябва да е "надолу", а клъстерът 10 трябва да е онлайн на5432
:Ver Cluster Port Status Owner Data directory Log file 9.6 main 5433 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
-
Първо проверете дали всичко работи добре. След това премахнете клъстера 9.6:
sudo pg_dropcluster 9.6 main --stop
Някои бележки относно pg_upgradecluster
Това ръководство работи добре за надстройка от 9.5 до 10.1. Когато надграждате от по-стара версия, помислете за пропускане на -m upgrade
на стъпка №6:
sudo pg_upgradecluster 9.6 main
Ако имате наистина голям клъстер, можете да използвате pg_upgradecluster
с --link
опция, така че надстройката да бъде на място. Това обаче е опасно – можете да загубите клъстера в случай на повреда. Просто не използвайте тази опция, ако не е необходимо, като -m upgrade
вече е достатъчно бърз.
Въз основа на:
- Документи:Надстройка на PostgreSQL клъстер
- Същност №1:delameko/upgrade-postgres-9.5-to-9.6.md
- Същност №2:johanndt/upgrade-postgres-9.3-to-9.5.md
- Какво ще стане, ако прекъсна или отменя
pg_upgradecluster
? - Ръководска страница на Ubuntu за pg_upgradecluster
Актуализиране
Това ръководство работи добре за надстройка от 9.6 до 11 и от 10 до 11, както и от 10 до 13.