actualizando versiones: pg_upgrade

Tema: 

Por eras actualizar de una versión menor de PostgreSQL a otra versión menor (aquellas en las que solo el 3er digito cambia, por ejemplo: 9.0.1 a 9.0.2). Ha sido tan simple como instalar y reiniciar el servicio de PostgreSQL. Mientras que actualizar de una versión mayor a otra versión mayor (aquellas en las que cambian el 1er o 2do digito, por ejemplo: 9.0.7 a 9.1.3) ha sido una verdadera pesadilla. Eso es porque la unica manera de actualizar de una versión mayor a otra era: instalar la nueva versión, sacar un respaldo de la versión anterior, y cargar los datos en la nueva versión.

En realidad estoy omitiendo un montón de detalles importantes, pero el punto es que eso tomaba mucho tiempo y requería de mucho espacio en disco (especialmente si se usaba la misma maquina).

Ahora ese suplicio es cosa del pasado, pg_upgrade ha venido para quedarse y hasta ahora a resultado ser una herramienta muy útil. Hoy por ejemplo actualice una instalación de poco más de 400GB que solo sacar el respaldo toma 4 horas y restaurarlo posiblemente consumiría otras 4 o 5; pero pg_upgrade lo hizo en solo 1 hora 40 minutos.
No cabe duda que el tiempo de perdida del servicio es mucho menor.

Lo malo es que pg_upgrade debe usarse en la misma máquina por lo que al menos requeriré de el doble de espacio que esta ocupando la base original (pg_upgrade que enlaza los archivos del viejo cluster con el nuevo, potencialmente ahorrándome tiempo y espacio; pero personalmente aun no lo he probado con una base de producción por ahora el proceso normal me ha funcionado en un tiempo razonable). Pero, todo considerado, ¿qué prefieren ahorrar? ¿tiempo o disco? (después de todo el precio de los discos está razonable pero el tiempo aun sigue valiendo oro).

Aunque si quieren tener un tiempo de perdida de servicio cercana a cero aun pueden usar slony-I, hay quienes en realidad lo necesitan hacer así. Sin embargo, pg_upgrade es una excelente alternativa para quienes puedan parar el servicio unas horas en la madrugada; así que: "well done Bruce Momjian!"

¿Aunque no sería increíble poder hacer lo que slony-I hace (actualizar con casi cero perdida de servicio) sin toda la carga administrativa que implica? Aunque parece difícil puede que no este tan lejos como podría creerse...

Comentarios

Esperemos que asi sea

Imagen de bbcachorro

Esperemos que con slony-I así sea Jaimito, lo ideal seria evitar la interrupción del servicio a toda costa ya que siempre hay un desocupado que necesita alta disponibilidad un domingo a las 3 am y por eso muchas empresas prefieren no actualizar de versión para evitar estos inconvenientes.

Eres el arquitecto de tu propio destino.