Come aggiornare PostgreSQL dalla versione 8.4 alla 9.4?


18

Voglio aggiornare PostgreSQL dalla versione 8.4 alla 9.4 .

La documentazione non è molto chiara per me.

  1. Perderò i miei vecchi database se eseguo l'aggiornamento?
  2. Come posso eseguire il backup dei miei vecchi database se devo perderli dopo l'aggiornamento?
  3. Come posso aggiornare il mio psql?

My PostgreSQL è in esecuzione su un server CentOS 6.6 .


Ad essere onesti, la descrizione è molto chiara nella pagina collegata. Prendere una discarica significa che hai una discarica per il caso qualcosa non funziona. Ciò significa anche che non lo perdi. Inoltre, c'è un link su quella pagina che indica come installare effettivamente una versione più recente - ad esempio, su Ubuntu, c'è un postgresql-client-9.4pacchetto che contiene psql.
dezso,

@dezso Quindi se disinstallo psql 8.4 e vado per 9.4, perderò i miei vecchi database?
Alex Jolig,

3
Se ne prendi una discarica, allora no. Dovresti comunque avere backup regolari che verifichi per la recuperabilità, quindi questo non dovrebbe essere affatto un problema. Inoltre, se scegli di utilizzare pg_upgrade, manterrà i tuoi DB, ma anche in questo caso è necessario eseguire un backup.
dezso,

" How can I backup my old databases if" - non c'è se . I tuoi database quasi sicuramente andranno benissimo dopo l'aggiornamento, ma dovresti sempre avere backup freschi (preferibilmente testati) quando esegui un'operazione come questa comunque in caso di problemi imprevisti (supponi il peggio: un'interruzione di corrente o altri guasti hardware in parte potrebbero lasciare in una posizione dalla quale è difficile rotolare indietro o avanti). A seconda del normale piano di backup, potrebbe non essere necessario eseguire backup aggiuntivi.
David Spillett,

Risposte:


25

Ecco come ho risolto il mio problema.

Aggiorna Postgresql da 8.4 a 9.4 in Centos

 1. Yum Install PG9.4
 2. wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
 3. yum install pgdg-redhat94-9.4-1.noarch.rpm
 4. yum install postgresql94-server
 5. service postgresql-9.4 initdb
 6. chkconfig postgresql-9.4 on

Dati di backup

 7. su - postgres

 8. pg_dumpall > dump.sql

Ripristinare i dati

 9. service postgresql stop

 10. service postgresql-9.4 start

 11. su - postgres

 12. psql < dump.sql

Config accesso alla rete

vi /var/lib/pgsql/9.4/data/postgresql.conf

 1. listen_addresses = '*'
 2. port = 5432

/var/lib/pgsql/9.4/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident
host    all         all         130.51.79.0/24        md5
host    all         all         10.210.29.0/24        md5
# IPv6 local connections:
host    all         all         ::1/128               ident

Rimuovere PG8.4

 1. yum remove postgresql
 2. ln -s /usr/pgsql-9.4/bin/psql /usr/local/bin/psql

3
Non sono sicuro del motivo per cui hai rifiutato la mia modifica come "leggibilità dannosa". In realtà rende i comandi più facili da copiare,
nhahtdh,

1
Ho appena fatto un aggiornamento da 9.2 a 9.6 usando questo metodo, e ha funzionato. Grazie !
EisenHeim,

Penso che sia impossibile usare pgdump per migrare un database con terabyte di dati, ad esempio. C'è un altro modo per farlo?
DeFreitas

O il primo comando, "Yum Install PG9.4", è la giusta maiuscola per tutto?
Dave,

1
@deFreitas Sono un po 'in ritardo ma puoi usarlo pg_upgradese esegui l' aggiornamento da> = 8.4 e se usi lo stesso server. pg_upgradeè utile in questi casi e davvero veloce: su Ubuntu 18 mi c'è voluto meno tempo facendo una pg_upgradedi una pg_dumpdi ripristinare un database da 1 GB. Il contro è che devi installare ed eseguire 2 versioni di postgres nella stessa macchina (ovviamente ascoltando porte diverse).
EAmez,

3

service postgresql-9.4initdb non ha funzionato per me, ho dovuto usare sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb(trovato qui ).

Grazie per le ottime istruzioni, sono stato in grado di aggiornare dalla 9.2 alla 9.4 senza problemi, anche se ho dovuto riconfigurare il mio pg_hba.conffile, è stato banale.


1

Meglio che collegare un singolo binario postgresql94 psql al bin / usr / (local /) è usare il sistema delle alternative:

cd /etc/alternatives/
ls pgsql-* -1 | xargs -L 1 alternatives --auto

Il che crea collegamenti di binari, mans, confs, ... di postgresql94 alle directory predefinite per CentOS.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.