transaccional sintaxis replicar replicación replicacion distribuidas datos con mysql sql-server database postgresql replication

sintaxis - replicar base mysql



Qué base de datos tiene el mejor soporte para la replicación (10)

Tengo una idea bastante buena de lo que puede hacer la replicación de MySQL. Me pregunto qué otras bases de datos soportan la replicación, y cómo se comparan con MySQL y otros.

Algunas preguntas que tengo son:

  1. ¿Está integrada la replicación o un add-on / plugin?
  2. ¿Cómo funciona la replicación (alto nivel)? MySQL proporciona replicación basada en enunciados (y replicación basada en filas en 5.1). Me interesa cómo se comparan otras bases de datos. ¿Qué se envía por el cable? ¿Cómo se aplican los cambios a las réplicas?
  3. ¿Es fácil verificar la coherencia entre el maestro y los esclavos?
  4. ¿Qué tan fácil es volver a sincronizar una réplica fallida con el maestro?
  5. ¿Actuación? Una de las cosas que odio de la replicación de MySQL es que es de subproceso único y las réplicas a menudo tienen problemas para mantenerse, ya que el maestro puede ejecutar muchas actualizaciones en paralelo, pero las réplicas tienen que ejecutarlas en serie. ¿Hay problemas como este en otras bases de datos?
  6. Cualquier otra característica interesante ...


Otra forma de ir es ejecutar en un entorno virtualizado. Pensé que los datos en este artículo de blog eran interesantes

http://chucksblog.typepad.com/chucks_blog/2008/09/enterprise-apps.html

Es de un ejecutivo de EMC, así que, obviamente, no es independiente, pero el experimento debe ser reproducible

Aquí están los datos específicos para Oracle

http://oraclestorageguy.typepad.com/oraclestorageguy/2008/09/to-rac-or-not-to-rac-reprise.html

Editar: si se ejecuta virtualizado, entonces hay formas de hacer que cualquier cosa se replique

http://chucksblog.typepad.com/chucks_blog/2008/05/vmwares-srm-cha.html


Todas las bases de datos comerciales principales tienen una réplica decente, pero algunas son más decentes que otras. IBM Informix Dynamic Server (versión 11 y posterior) es particularmente bueno. En realidad, tiene dos sistemas: uno para alta disponibilidad (HDR, replicación de datos de alta disponibilidad) y el otro para distribuir datos (ER, replicación empresarial). Y las características de Mach 11 (RSS - secundario independiente remoto y SDS - disco compartido secundario) también son excelentes, doblemente en 11.50 donde puede escribir en el par primario o secundario de un HDR.

( Divulgación completa: trabajo en Informix Softare ) .


Un poco fuera de tema, pero es posible que desee comprobar Maatkit para obtener herramientas para ayudar con la replicación de MySQL.


Hay muchas cosas diferentes en las que la replicación CALL de las bases de datos. No todos ellos realmente implican replicación, y los que sí funcionan de maneras muy diferentes. Algunas bases de datos admiten varios tipos diferentes.

MySQL admite la replicación asincrónica, que es muy buena para algunas cosas. Sin embargo, hay debilidades. La replicación basada en enunciados no es lo mismo que la mayoría de las otras bases de datos (¿alguna?), Y no siempre da como resultado el comportamiento esperado. La replicación basada en filas solo es compatible con una versión que no está lista para producción (pero es más consistente con la forma en que lo hacen otras bases de datos).

Cada base de datos tiene su propia réplica, algunos incluyen otras herramientas que se conectan.



Tengo cierta experiencia con MS-SQL 2005 (editor) y SQLEXPRESS (suscriptores) con replicación de fusiones en el extranjero. Aquí están mis comentarios:

1 - ¿Está incorporada la replicación o un add-on / plugin?

Construido en

2 - ¿Cómo funciona la replicación (alto nivel)?

Diferentes formas de replicar, desde una instantánea (dando datos estáticos en el nivel del suscriptor) hasta la replicación transaccional (cada instrucción INSERT / DELETE / UPDATE se ejecuta en todos los servidores). La replicación de mezcla replica solo los cambios finales (las ACTUALIZACIONES sucesivas en el mismo registro se realizarán de una vez durante la replicación).

3 - ¿Es fácil verificar la coherencia entre el maestro y los esclavos?

Algo que nunca he hecho ...

4 - ¿Qué tan fácil es volver a sincronizar una réplica fallida con el maestro?

El proceso básico de resincronización es solo un doble clic en uno ... Pero si tiene 4Go de datos para reiniciar a través de una conexión de 64 Kb, será un proceso largo a menos que lo personalice.

5 - ¿Desempeño?

Bueno ... Por supuesto que tendrá un cuello de botella en alguna parte, como el rendimiento de su conexión, el volumen de datos o, finalmente, el rendimiento de su servidor. En mi configuración, los usuarios solo escriben a los suscriptores, que se replican con la base de datos principal = publicador. Este servidor nunca es sollicited por los usuarios finales, y su CPU está estrictamente dedicada a la replicación de datos (a varios servidores) y la copia de seguridad. Los suscriptores están dedicados a los clientes y una réplica (al editor), lo que da un resultado muy interesante en términos de disponibilidad de datos para los usuarios finales. Las réplicas entre el editor y los suscriptores se pueden lanzar juntas.

6 - Cualquier otra característica interesante ...

Es posible, con cierta anticipación, seguir desarrollando la base de datos sin siquiera detener el proceso de replicación .... tablas (de forma indirecta), los campos y las reglas se pueden agregar y replicar a sus suscriptores.

Las configuraciones con un editor principal y varios suscriptores pueden ser MUY baratas (en comparación con algunas otras ...), ya que puede usar el SQLEXPRESS gratuito del lado del suscriptor, incluso cuando ejecuta fusiones o duplicaciones transaccionales.


La replicación de MySQL es débil en la medida en que uno necesita sacrificar otras funcionalidades para obtener soporte maestro / maestro completo (debido a la restricción en los back-end compatibles).

La replicación de PostgreSQL es débil en la medida en que solo se admite el maestro / en espera incorporado (usando el envío de registros); las soluciones más potentes (como Slony o Londiste) requieren funcionalidad adicional. Los segmentos de registro de archivo se envían por cable, que son los mismos registros que se utilizan para asegurarse de que una base de datos independiente está en funcionamiento, en estado consistente en el inicio sucio. Esto es lo que estoy usando actualmente, y tenemos resincronización (y configuración, y otras funcionalidades) completamente automatizadas. Ninguno de estos enfoques es completamente sincrónico. Se incorporará una asistencia más completa a partir de PostgreSQL 8.5. El envío de registros no permite que las bases de datos salgan de la sincronización, por lo que no es necesario que los procesos prueben el estado sincronizado; volver a sincronizar las dos bases de datos implica establecer el indicador de respaldo en el maestro, sincronizar con el esclavo (con la base de datos ejecutándose, esto es seguro) y desarmar el indicador de respaldo (y reiniciar el proceso esclavo) con los registros de archivo generados durante el proceso de respaldo disponible; mi tienda tiene este proceso (como todas las demás tareas de administración) automatizado. El rendimiento no es un problema, ya que el maestro tiene que volver a reproducir los segmentos de registro internamente de todos modos, además de hacer otro trabajo; por lo tanto, los esclavos siempre estarán bajo menos carga que el maestro.

RAC de Oracle (que no se replica correctamente, ya que solo hay un back-end de almacenamiento, pero tiene varias interfaces que comparten la carga, y puede generar redundancia en ese backend de almacenamiento compartido, por lo que es digno de mención aquí) es un multimaestro enfoque mucho más completo que otras soluciones, pero es extremadamente costoso. El contenido de la base de datos no se "envía por cable"; en su lugar, se almacenan en el back-end compartido, al que todos los sistemas involucrados pueden acceder. Como solo hay un backend, los sistemas no pueden estar fuera de sincronización.

Continuent ofrece una solución de terceros que hace una replicación completamente sincrónica a nivel de declaración con soporte para las tres bases de datos anteriores; sin embargo, la versión con respaldo comercial de su producto no es particularmente barata (aunque es mucho menos costosa. La última vez que la administré, la solución de Continuent requirió la intervención manual para volver a sincronizar un clúster.


Simplemente agregando a las opciones con SQL Server (especialmente SQL 2008, que ahora tiene características de Change Tracking). Algo a considerar es el Marco de sincronización de Microsoft. Aquí hay algunas opciones, desde la arquitectura básica hub-and-spoke, que es genial si tiene un único servidor central y clientes conectados a veces, hasta la sincronización punto a punto que le da la capacidad de hacer mucho más avanzado sincronización con múltiples bases de datos ''maestras''.

La razón por la que es posible que desee considerar esto en lugar de la replicación tradicional es que tiene mucho más control del código, por ejemplo, puede obtener eventos durante el progreso de la sincronización para Actualizar / Actualizar, Actualizar / Eliminar, Eliminar / Actualizar, Insertar / Insertar conflictos y decida cómo resolverlos en función de la lógica comercial, y si es necesario, almacene el perdedor de los datos del conflicto en algún lugar para el procesamiento manual o automático. Eche un vistazo a esta guía para ayudarlo a decidir qué es posible con los diferentes métodos de replicación y / o sincronización.

Para los programadores entusiastas, Sync Framework está lo suficientemente abierto como para que los clientes se conecten a través de WCF a su Servicio WCF, que puede abstraer cualquier almacén de datos back-end (he escuchado que algunas personas están experimentando usando Oracle como back-end).

Mi equipo acaba de publicar un gran proyecto que involucra múltiples bases de datos de SQL Express que sincronizan subconjuntos de datos desde una base de datos central de SQL Server a través de WAN e Internet (conexión de acceso telefónico lenta en algunos casos) con gran éxito.


No lo he probado yo mismo, pero es posible que también desee examinar OpenBaseSQL, que parece tener una replicación simple de usar incorporada.