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.logIstnieje już klaster
mainna 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/mainkiedy10/mainrównież istnieje. Zalecaną procedurą jest usunięcie klastra 10 za pomocąpg_dropclustera 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.