¿Cómo actualizar PostgreSQL de la versión 8.4 a la 9.4?


18

Quiero actualizar mi PostgreSQL de la versión 8.4 a la 9.4 .

La documentación no es muy clara para mí.

  1. ¿Perderé mis viejas bases de datos si hago la actualización?
  2. ¿Cómo puedo hacer una copia de seguridad de mis bases de datos antiguas si voy a perderlas después de la actualización?
  3. ¿Cómo puedo actualizar mi psql?

Mi PostgreSQL se ejecuta en un servidor CentOS 6.6 .


Para ser sincero, la descripción es muy clara en la página vinculada. Tomar un vertedero significa que tiene un vertedero para el caso de que algo no funcione. Eso también significa que no lo pierdes. Además, hay un enlace en esa página que indica cómo instalar realmente una versión más nueva; por ejemplo, en Ubuntu, hay un postgresql-client-9.4paquete que contiene psql.
dezso

@dezso Entonces, si desinstalo psql 8.4 y uso 9.4, ¿perderé mis bases de datos antiguas?
Alex Jolig

3
Si los tomas, entonces no. De todos modos, debe tener copias de seguridad periódicas para comprobar su capacidad de recuperación, por lo que esto no debería ser un problema en absoluto. Además, si elige usar pg_upgrade, mantendrá sus bases de datos, pero también es necesario realizar una copia de seguridad en este caso.
dezso

" How can I backup my old databases if" - no hay si . Es casi seguro que sus bases de datos estarán perfectamente bien después de la actualización, pero siempre debe tener copias de seguridad nuevas (preferiblemente probadas) cuando realice una operación como esta de todos modos en caso de problemas inesperados (suponga lo peor: un corte de energía u otra falla de hardware podría dejar en una posición difícil de mover hacia atrás o hacia adelante) Dependiendo de su plan de respaldo regular, es posible que no necesite realizar respaldos adicionales.
David Spillett el

Respuestas:


25

Así es como resolví mi problema.

Actualice Postgresql 8.4 a 9.4 en 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

Los datos de copia de seguridad

 7. su - postgres

 8. pg_dumpall > dump.sql

Restaurar datos

 9. service postgresql stop

 10. service postgresql-9.4 start

 11. su - postgres

 12. psql < dump.sql

Configurar acceso a la red

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

Eliminar PG8.4

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

3
No estoy seguro de por qué rechazaste mi edición como "legibilidad de daños". En realidad, hace que los comandos más fáciles de copiar,
nhahtdh

1
Acabo de hacer una actualización de 9.2 a 9.6 usando este método, y funcionó. Gracias !
EisenHeim

Creo que es imposible usar pgdump para migrar una base de datos con terabytes de datos, por ejemplo. ¿Hay otra forma de hacer eso?
deFreitas

Para el primer comando, "Yum Install PG9.4", ¿es esa la capitalización correcta para todo?
Dave

1
@deFreitas Llego un poco tarde pero puedes usarlo pg_upgradesi actualizas desde> = 8.4 y si usas el mismo servidor. pg_upgradees útil en estos casos y realmente más rápido: en Ubuntu 18 me llevó menos tiempo hacer pg_upgradeque pg_dumprestaurar una base de datos de 1GB. La desventaja es que debe instalar y ejecutar 2 versiones de postgres en la misma máquina (escuchando diferentes puertos, por supuesto).
EAmez

3

service postgresql-9.4initdb no funcionó para mí, tuve que usar sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb(que se encuentra aquí ).

Gracias por las excelentes instrucciones, pude actualizar de 9.2 a 9.4 sin ningún problema, aunque tuve que reconfigurar mi pg_hba.confarchivo, eso fue trivial.


1

Es mejor usar un sistema alternativo que vincular un único binario de psql postgresql94 a / usr / (local /):

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

Que crea enlaces de binarios, mans, confs, ... de postgresql94 a directorios predeterminados para CentOS.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.