Przewodnik krok po kroku
-
Utwórz kopię zapasową . Upewnij się, że Twoja baza danych nie jest aktualizowana.
pg_dumpall > outputfile
-
Zainstaluj Postgresa 10 . Postępuj zgodnie z instrukcjami na tej stronie:https://www.postgresql.org/download/linux/ubuntu/
Następnie uruchom
sudo apt-get install postgresql-10
. Nowsza wersja zostanie zainstalowana obok poprzedniej wersji. -
Uruchom
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
Istnieje już klaster
main
na 10 (ponieważ jest to domyślnie tworzone podczas instalacji pakietu). Dzieje się tak, aby nowa instalacja działała po wyjęciu z pudełka bez konieczności tworzenia najpierw klastra, ale oczywiście koliduje to przy próbie uaktualnienia9.6/main
kiedy10/main
również istnieje. Zalecaną procedurą jest usunięcie klastra 10 za pomocąpg_dropcluster
a następnie uaktualnij za pomocąpg_upgradecluster
. -
Zatrzymaj klaster 10 i upuść go:
sudo pg_dropcluster 10 main --stop
-
Zatrzymaj wszystkie procesy i usługi zapisujące do bazy danych. Zatrzymaj bazę danych:
sudo systemctl stop postgresql
-
Uaktualnij klaster 9.6:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Uruchom ponownie PostgreSQL
sudo systemctl start postgresql
-
Uruchom
pg_lsclusters
. Twój klaster 9.6 powinien być teraz „nieaktywny”, a klaster 10 powinien być online pod adresem5432
: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
-
Najpierw sprawdź, czy wszystko działa poprawnie. Następnie usuń klaster 9.6:
sudo pg_dropcluster 9.6 main --stop
Niektóre uwagi na temat pg_upgradecluster
Ten przewodnik działa dobrze w przypadku aktualizacji z wersji 9.5 do 10.1. Podczas aktualizacji ze starszej wersji rozważ pominięcie -m upgrade
w kroku #6:
sudo pg_upgradecluster 9.6 main
Jeśli masz naprawdę duży klaster, możesz użyć pg_upgradecluster
z --link
opcję, dzięki czemu aktualizacja będzie na miejscu. Jest to jednak niebezpieczne — możesz utracić klaster w przypadku awarii. Po prostu nie używaj tej opcji, jeśli nie jest to konieczne, ponieważ -m upgrade
jest już wystarczająco szybki.
Na podstawie:
- Dokumenty:uaktualnianie klastra PostgreSQL
- Istota #1:delameko/upgrade-postgres-9.5-to-9.6.md
- Istota #2:johanndt/upgrade-postgres-9.3-to-9.5.md
- Co się stanie, jeśli przerwę lub anuluję
pg_upgradecluster
? - Strona podręcznika Ubuntu dla pg_upgradecluster
Aktualizacja
Ten przewodnik działa dobrze przy aktualizacji z 9.6 do 11 i z 10 do 11, a także z 10 do 13.