Constantemente nos enfrentamos a esto en la oficina, y la pregunta sigue surgiendo. ¿Cómo manejas la replicación PostgreSQL? Ni siquiera estoy hablando necesariamente de clústeres avanzados, solo lo mantengo simple con Master-Slave, Master-MultiSlave y Master-Master. Creo que configurarlo para MySQL suele ser bastante simple. La conmutación por error es sencilla, si no perfecta, especialmente por lo fácil que es configurarla. Hemos jugado con Slony, pero es demasiado práctico (los cambios de esquema requieren intervención, las nuevas bases de datos requieren intervención, etc.). PGPool2 fue bastante agradable, hasta que un nodo se cayó y no pudimos encontrar una forma elegante (aparte de derribar todo y volver a sembrar el nodo caído) para volver a sincronizar la replicación. Básicamente, esto es lo que normalmente busco:
- Configuración fácil (me conformaré con una configuración difícil, pero fácil de expandir)
- Conmutación por error simplista
- Recuperar un nodo caído solo requiere tiempo (es decir, como mysql. El servidor se cae, lo activa y espera que la replicación se ponga al día)
- Los cambios de esquema no rompen la replicación
- Agregar una nueva base de datos al servidor es perfecto (es decir, como mysql, puede replicar un servidor de base de datos completo, por lo que se crea una nueva base de datos en el maestro, que se propaga automáticamente al esclavo)
MySQL maneja la mayoría de estos bastante bien, pero tengo cierta afición por PostgreSQL. Además, tenemos algunas situaciones en las que es nuestra única opción, y nos gustaría agregar replicación a la mezcla. ¿Qué estás usando actualmente y cómo te sientes acerca de tu solución? Esto no es una publicación de MySQL versus PostgreSQL, lo prometo, porque eso no es lo que estoy tratando de comenzar. :)