PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zaktualizuj PostgreSQL z 9.6 do 10.0 na Ubuntu 16.10

Przewodnik krok po kroku

  1. Utwórz kopię zapasową . Upewnij się, że Twoja baza danych nie jest aktualizowana.

     pg_dumpall > outputfile
    
  2. 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.

  3. 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 uaktualnienia 9.6/main kiedy 10/main również istnieje. Zalecaną procedurą jest usunięcie klastra 10 za pomocą pg_dropcluster a następnie uaktualnij za pomocą pg_upgradecluster .

  4. Zatrzymaj klaster 10 i upuść go:

     sudo pg_dropcluster 10 main --stop
    
  5. Zatrzymaj wszystkie procesy i usługi zapisujące do bazy danych. Zatrzymaj bazę danych:

     sudo systemctl stop postgresql 
    
  6. Uaktualnij klaster 9.6:

     sudo pg_upgradecluster -m upgrade 9.6 main
    
  7. Uruchom ponownie PostgreSQL

     sudo systemctl start postgresql
    
  8. Uruchom pg_lsclusters . Twój klaster 9.6 powinien być teraz „nieaktywny”, a klaster 10 powinien być online pod adresem 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. 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klauzula ORDER BY ... USING w PostgreSQL

  2. Kolumny obliczane / obliczane / wirtualne / pochodne w PostgreSQL

  3. błąd podczas instalowania psycopg2, nie znaleziono biblioteki dla -lssl

  4. Jak wyświetlić bazy danych i tabele w PostgreSQL za pomocą psql

  5. Seminarium internetowe:Bankowość w Postgres — rozważania dotyczące aplikacji finansowych [Kontynuacja]