Home > Server > Upgrade postgresql 8.4 to postgresql 9.1 Centos 5

Upgrade postgresql 8.4 to postgresql 9.1 Centos 5

aggiornamento giugno 2012

postgresql  vai a:  PostgreSQL nel blog 

Esempio di upgrade di postgresql dalla versione 8.4.12 alla versione 9.1.4 in Centos 5.8.  L’upgrade di versione necessita della fase di dump/restore oppure dell’utilizzo di pg_upgrade ( questo dalla versione 9.0) per consentire la migrazione della base dati alla nuova versione.  Per poter utilizzare il pg_update deve essere supportata l’esecuzione in parallelo di postgresql come avviene in debian o Centos 6. Centos 5 putroppo non la supporta pertanto sarà necessario utilizzare il dump/restore.

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.4 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 possiamo conservare la directory dei dati di PostreSQL /var/lib/pgsql/data oppure al termine dell’upgrade rimuoverla

Per installare la nuova versione di postgresql utilizziamo  il repository yum per rpm. La pagina sotto  linkatar iposrta le varie combinazioni di distribuzione e versione postgresql

PostgreSQL RPM Repository (with Yum)

Installiamo il repository di postgresql 9.1 per  centos 5 – i386

cd /usr/local/src

wget http://yum.pgrpms.org/9.1/redhat/rhel-5-i386/pgdg-centos91-9.1-4.noarch.rpm
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm

Adesso escludiamo postgrsql dal processo standard di update dei pacchetti editando il file etc/yum.repos.d/CentOS-Base.repo aggiungendo la riga

exclude=postgresql*’

nelle sezioni [base] [updates]

Controlliamo i pacchetti disponibili

yum list | grep 'postgresql'

nella lista saranno presenti pacchetti  postgres84 versione installata e i pacchetti della versione 91  di postgresql

adesso rimuoviamo la versione precedente postgresql84

yum remove postgresql84*

installiamo la versione postgresql91

yum install postgresql91 postgresql91-server postgresql91-contrib postgresql91-libs

inizializziamo la base dati e avviamo il server postgresql-9.1

service postgresql-9.1 initdb

service postgresql-9.1 start

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/data/pg_hba.conf /var/lib/pgsql/9.1/data/pg_hba.conf

riavviamo

service postgresql-9.1 restart

controlliamo il risultato scorrendo la lista dei db importati

su – postgres

vacuumdb –all –analyze-only
psql
\l

controlliamo e/o Impostiamo l’avvio automatico e il runlevel

chkconfig --level 35 postgresql-9.1 on

Altri post:


					
Annunci
  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: