2011-12-07 5 views
5

Nos uso de los recursos MultiDB de Zend Framework (http://framework.zend.com/manual/1.10/en/zend.application.available-resources.html#zend.application.available-resources.multidb)En Zend Framework usando MultiDB Resource, ¿cómo configuro el respaldo de la base de datos?

Me han encargado con la adición de un nuevo recurso DB que tiene tres criterios de valoración para la redundancia. Me gustaría configurar MultiDB, de modo que si falla la conexión al primer punto final, se conectará al segundo y, si es necesario, al tercer punto final antes de darse por vencido.

Intenté establecer resource.multidb.resourcename.host [] pero eso falló. Parece que solo aceptará un único punto final.

¿Hay alguna manera de configurar el repliegue? ¿O necesito extender Zend_Application_Resource_Multidb?

Respuesta

0

Para ser sincero, nunca he probado en el lado del software (ni siquiera estoy seguro de si es realmente posible con Zend Framework "sí mismo") para las aplicaciones de base de datos. Y hay una buena razón para ello: ¡simplemente es el lugar equivocado para eso!

Hay varios escollos:

  1. ¿Cómo controla para mantener los datos persistentes entre varias bases de datos?
  2. ¿Qué sucede si una base de datos está inactiva?

Suponiendo que estamos usando MySQL: Es posible que desee echar un vistazo a la amo - esclavo la replicación de MySQL en sí: 16.1.1. How to Set Up Replication

Incluso esto podría causar headdeaches (particular los platos si tiene que migrar los datos existentes). Actualmente estoy bastante satisfecho con una solución que encontré hace varios proyectos: En lugar de tener el dolor de manejar la redudancy por su cuenta, ¡simplemente dele la tarea a su base de datos/servidor!

La solución más fácil que encontré hasta ahora es la configuración de su base de datos en una (de usted webapplication independiente) failover vServer cluster.

Disculpa si mi respuesta no concuerda con tu pregunta ... pero podría ser un impulso para reflexionar sobre un enfoque diferente.

Cuestiones relacionadas