Upgrade PostgreSQL z 9.6 do 10.0 na Ubuntu 16.10

Moja baza danych ma ponad 600 GB, a mój obecny wolumin to tylko 1 TB, więc prawdopodobnie ogranicza moje opcje.

Moje pliki konfiguracyjne są tutaj:

/etc/postgresql/9.6/main

Moja baza danych jest tutaj:

/mnt/1TB/postgresql/9.6/main

Edytuj - Ten przewodnik zadziałał. Jedynym dodatkiem, który musiałem zrobić, było ręczne pobranie libicu55 i zainstalowanie go, i musiałem przyznać uprawnienia postgres 1777 dla mojego folderu /tmp/. Zapisywałem również folder danych na inny dysk, więc musiałem użyć polecenia:

pg_upgradecluster -m upgrade 10 main /mnt/1TB/postgresql/10

Https://gist.github.com/delameko/bd3aa2a54a15c50c723f0eef8f583a44

Author: Max Malysh, 2017-10-11

2 answers

Przewodnik krok po kroku

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

    pg_dumpall > outputfile
    
  2. Zainstaluj Postgres 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 wcześniejszej wersji.

  3. Run 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ż Gromada main dla 10 (ponieważ jest to tworzone domyślnie podczas instalacji pakietu). Odbywa się to tak, że świeża instalacja działa po wyjęciu z pudełka bez konieczności tworzenia klastra, ale oczywiście koliduje podczas próby uaktualnienia 9.6/main, gdy 10/main również istnieje. Zalecaną procedurą jest usunięcie klastra 10 za pomocą pg_dropcluster, a następnie uaktualnienie za pomocą pg_upgradecluster.

  4. Zatrzymaj 10 klastra i upuść go:

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

    sudo systemctl stop postgresql 
    
  6. Upgrade klastra 9.6:

    sudo pg_upgradecluster -m upgrade 9.6 main
    
  7. Run pg_lsclusters. Klaster 9.6 powinien być teraz "w dół" , 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
    
  8. Najpierw sprawdź, czy wszystko działa dobrze. następnie usuń klaster 9.6:

     sudo pg_dropcluster 9.6 main --stop
    

Kilka uwag o pg_upgradecluster

Ten poradnik działa dobrze dla aktualizacji z 9.5 do 10.1. Podczas aktualizacji ze starszej wersji należy rozważyć pominięcie -m upgrade NA kroku # 6:

sudo pg_upgradecluster 9.6 main

Jeśli masz naprawdę duży klaster, możesz użyć pg_upgradecluster z opcją --link, aby aktualizacja była na miejscu. Jest to jednak niebezpieczne - możesz stracić 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:

 99
Author: Max Malysh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-12 20:30:10

Prawie wyszło z pudełka. Jestem na 17.10. Podczas gdy ty Możesz umieścić to w .plik deb, to nie zadziała - Postgres aktualizuje tylko wydania inne niż LTS, jeśli zepsują wydanie LTS. Więc włóż pikantność do tej deb i możesz iść.

 0
Author: datakid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-19 04:51:22