¿Cómo migro mis datos de postgres de 8.4 a 9.1?


27

He actualizado mi máquina de desarrollo ubuntu de 11.04 a 11.10. En el proceso, mis postgres también se actualizaron de 8.4 a 9.1.

Pero parece que he perdido todos mis datos. Si miro, puedo ver que mis datos para 8.4 están en la carpeta /var/lib/postgres/8.4/mainy mi nueva base de datos está en /var/lib/postgres/9.1/main.

¿Cuál es la mejor manera de migrar mis datos a la nueva versión? ¿Puedo copiar los archivos?

Respuestas:


27
su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

Al principio esto no funcionó para mí por dos razones. En primer lugar, postgresql-8.4 se había desinstalado en algún momento, por lo que tuve que reinstalarlo:

sudo apt-get install postgresql-8.4

Luego tuve que ir al 8.4 postgresql.confy cambiar max_connectionsa 10. Luego funcionó. Debería poder encontrar el archivo conf en/etc/postgresql/8.4/main/postgresql.conf


En una computadora, las tres primeras líneas eran suficientes. Por otro lado, tuve que reinstalar 8.4 para que funcione, como dijiste. Gracias por tu ayuda.
— nathanvda

Cabe señalar que el script "pg_upgradecluster" no maneja el caso en el que se debe proporcionar al usuario de la base de datos. (Si lo hace, seguro que no puedo entender cómo proporcionarlo).
— Pointy

Si aparece Error: specified cluster is not runningal intentar nuevamente después de haber cambiado max_connections, úselo pg_ctlcluster 8.4 main start.
— Skippy le Grand Gourou

Reducir max_connectionsno funcionó para mí. Como solución alternativa proporcionada por el mensaje de error, reduje shared_buffersa 20 MB (de 200 MB), lo que funcionó para mí.
— Serrano

4

Después de actualizar a 11.10, se instaló PostgreSQL 9.1, pero la versión en ejecución era 8.4.

He intentado:

su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

Informó el error:

Stopping old cluster...
pg_ctl: servidor não desligou
Error: Could not stop old cluster

Entonces, en otra ventana:

$ sudo service postgresql-8.4 stop
 * Stopping PostgreSQL 8.4 database server                               [ OK ] 
jgr@cagliari:~$ sudo service postgresql-8.4 start
 * Starting PostgreSQL 8.4 database server                               [ OK ] 

Y luego otra vez:

pg_upgradecluster 8.4 main

Se informaron errores relacionados con pgRouting. Tomó un tiempo (¡toda la noche!), Pero luego la base de datos se actualizó a 9.1. PostGIS también se actualizó a 1.5.3.


Para su información, descubrí que haciendo un "du -hs" en el directorio /var/lib/postgresql/9.1 y luego comparando eso con la salida del mismo comando en /var/lib/postgresql/8.4/, descubrí que podía mida cuánto se ha copiado en función del tamaño de salida de ese comando.
— Joe J

Sé que esta no es la pregunta que se está discutiendo. Pero me encontré con el mismo problema que tú describiste. La razón por la que pg_upgradecluster no pudo detener el clúster anterior fue porque una instancia de Tomcat estaba usando las conexiones y Postgres no podía cerrarlas. Espero que esto ayude a alguien.
— bplayer

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.