Home > Server > Upgrade postgresql 8.1 to postgresql 8.4 – Centos 5

Upgrade postgresql 8.1 to postgresql 8.4 – Centos 5

[aggiornamento 2012-02]

Esempio di upgrade di postgresql dalla versione 8.1 alla versione 8.4 in Centos 5. L’upgrade di versione necessita della fase di dump/restore .

In questi casi la prima operazione è quella di creare un backup completo dei dati.

Creare una directory di backups, procedere al dump degli oggetti globali (roles e tablespaces) e di tutto il server, volendo si possono salavare in automatico i singoli db:

mkdir /home/pgbck
chown postgres:postgres /home/pgbck
su - postgres
pg_dumpall --globals-only > /home/pgbck/globals.sql 
pg_dumpall > /home/pgbck/dumpalldb.sql
exit

I singoli db di postgresql 8.1 possono essere copiati utilizzando lo script nel link di seguito

Script per il backup dei database di postgresql

Fermiamo il servver postgresql

service postgresql stop

Visto che si tratta di upgrade di versione con cambi nella struttura dei dati rinomiamo la directory di installazione di PostreSQL /usr/local/pgsql:

mv /usr/local/pgsql /usr/local/pgsql.old

Per l’upgrade adesso abbiamo due possibilità utilizzare: i pacchetti postgresql84 del repository updates oppure lo specifico repository yum per .rpm per postgresql e centos 5 PostgreSQL RPM Repository (with Yum). Controlliamo dapprima che versioni di postgresql sono disponibili nei repository ufficiali.

yum list postgres*

Troviamo una serie di pacchetti postgresql versione 8.1.23 e una serie di pacchetti postgres84 versione 8.4.12 ,tutti nel repository updates.
A questo punto usiamo il repository updates perchè consente di installare una minor più recente di postgresql-server e installeremo pertanto la postgresql 8.4.12.

Rimuoviamo la precedente versione di postgres

su –
yum remove postgresql*

installiamo la nuova versione

yum install postgresql84 postgresql84-server postgresql84-contrib

Initializziamo il nuovo database cluster:

service postgresql initdb

o /etc/init.d/postgresql initdb
avviamo con

service postgresql start

nota. Se si dovesse avere un messaggio di failed in start rimuovere i pacchetti installati fare un reboot e reinstallare postgresql84 e riavviare

adesso ripristiniamo i databases con il file dumpalldb

su – postgres
psql < /home/pgbck/dumpalldb.sql

Ripristinare le modifiche ai files di configurazione /var/lib/pgsql/data/*.conf
in particolare postgresql.conf e pg_hba.conf

il file pg_hba.conf con le vecchie impostazioni può essere copiato dal precedente cluster che era stato rinominato:

cp /var/lib/pgsql.old/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf

controlliamo il risultato scorrendo la lista dei db importati

su – postgres
psql
\l

per impostare l’avvio automatico

chkconfig –level 35 postgresql on

Alternativa
se si decide di ripristinare solo alcuni database, prima ripristinare le impostazioni globali con

su – postgres
psql -f /home/pgbck/globals.sql

e poi i singoli db ottenuti con lo script sopra richiamato

createdb singledb
psql -d singledb -f singledb.sql

Altri post - risorse :

http://www.postgresql.org/docs/9.0/static/release.html

http://www.postgresql.org/docs/9.0/static/release-8-4.html

Advertisements
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: