pg_upgrade es una utilidad para actualizar una versión anterior de PostgreSQL sin la necesidad de recargar todos los datos. No todas las transiciones de versiones de Postgres se pueden manejar de esta manera. Verifique las notas de la versión para saber si hay detalles en su instalación.
Actualización de Postgres with pg_upgrade
Respalde su directorio de datos existente, preferiblemente haciendo un vaciado completo con el pg_dumpall.
Luego realice:
% pg_dumpall -s >db.outpara vaciar la antigua tabla de definiciones de la base de datos sin ningún dato.
Detenga el antiguo postmaster y todos los "backends".
Renombre (usando mv) su antiguo directorio pgsql data/ a data.old/.
Ejecute
% make installpara instalar los nuevos binarios.
Ejecute initdb para crear una nueva base de datos template1 que contenga las tablas del sistema para la nueva versión.
Inicie el nuevo postmaster. (Nota: es de suma importancia que ningún usuario se conecte a la base de datos hasta que la actualización esté completada. Quizás desee iniciar el postmaster sin la opción - i y/o alterar pg_hba.conf temporalmente.)
Cambie su directorio de trabajo hacia el directorio principal del pgsql, y ejecute:
% pg_upgrade -f db.out data.oldEl programa hará algunas verificaciones para cerciorarse de que todo esta configurado correctamente, y ejecutará el script db.out para volver a reconstruir todas las bases de datos y tablas que uno tenía, pero sin datos. Entonces moverá físicamente los archivos de datos que no contienen tablas del sistema y los índices desde data.old/ hacia los subdirectorios indicados debajo de data.old/ sustituyendo los archivos de datos vacíos creados durante la ejecución del script db.out.
Restablezca si es necesario su antiguo archivo pg_hba.conf para permitir conexiones a los usuarios.
Detenga y vuelva a iniciar el postmaster.
Examine cuidadosamente el contenido de la base de datos actualizada. Si encuentra algún problema, entonces necesitará recuperar sus datos restableciendo su respaldo completo pg_dump. Puede eliminar el directorio data.old/ cuando se encuentre satisfecho con los resultados obtenidos.
La base de datos actualizada se encontrará en un estado no limpio. Probablemente deseará ejecutar un VACUUM ANALYZE antes de que comience el trabajo de producción.