Cómo sincronizar la base de datos mysql entre China y EE. UU.

La respuesta más obvia es usar MySQL Cluster o Standard Multi-Master replication.


Pero creo que esta pregunta ofrece más problemas, ya que hay una variedad de diferencias entre los servidores:

  1. Charsets diferentes
  2. Zonas horarias extremadamente diferentes
  3. Posible interferencia con el Gran Cortafuegos.

Lo que haría si tuviera este problema es crear un servicio web en un servidor (VPS) que sea visible tanto para el servidor de EE. UU. Como para el servidor de China. Recibía las transacciones de cualquiera de los servidores y las replicaba en cada una, resolviendo los problemas que la agrupación automática no podía resolver (como resolver problemas con charsets, aplicar reglas comerciales y manejar problemas de seguridad).

Es un trabajo más duro, y probablemente no tan elegante, pero RESUELVE el problema.


¡La mejor de las suertes!

Supongo que estás hablando de GFW.

La única forma de garantizar el trabajo es.

  1. Necesita tener una empresa real que haga negocios reales.
  2. Debe establecer una sucursal o sede en China.
  3. Debe solicitar un permiso VPN internacional de algunos departamentos.

Este proceso nunca ha sido explícito, básicamente no puede hacerlo usted mismo, necesita encontrar proveedores locales que tengan conexiones con el gobierno.

Si la solución anterior no funciona para usted, es decir, tiene un estudio personal o no tiene una oficina oficial en China, puede probar algunos proveedores de nube pública internacional, Azure y AWS están disponibles en China, sus centros de datos chinos se han dedicado VPN fijos a otros centros de datos. Puede configurar una instancia de MySQL en DC chino, otra en DC de EE. UU., Deberían poder sincronizar sin problemas.

La solución basada en la nube no es tan confiable como la VPN aprobada por el gobierno, AFAIK su SLA puede alcanzar el 95% como máximo, no es bueno para negocios críticos, pero es suficiente en la mayoría de los casos.

Puede configurar un maestro en una ubicación y un esclavo en otra (o un esclavo en cascada de un esclavo local si ya tiene un mundo de producción con maestros y esclavos). Si no le interesan las cosas de sincronización en caliente “maestro-maestro”, es decir, si está tratando de obtener datos de una base de datos “activa” en un país para una base de datos “fría” o “archivada” en otro para un Sitio de recuperación ante desastres (DR) o para uso como base de datos analítica por un equipo en el otro país; este tipo de diseño puede funcionar.

Probablemente sea demasiado lento intentar un diseño de este tipo para una base de datos “caliente” en ambos lugares, a menos que esté dispuesto a gastar Very Big Bucks para una conexión en el extranjero de alta velocidad dedicada, y su base de datos no está extremadamente ocupada.

Si debe realizar una sincronización activa en vivo, y tiene arquitectos y programadores realmente buenos que son expertos en la depuración de problemas de red, puede ser más fácil intentar sincronizar a nivel de la aplicación, especialmente si su aplicación genera mucha actividad en la base de datos como protocolo de nivel de aplicación * puede * implicar menos bytes que el protocolo binlog de MySQL. Pero este tipo de enfoque requiere un diseño de aplicación muy cuidadoso y es difícil de adaptar a una aplicación existente.

Supongo que la gran pregunta es si puede contactar con cualquiera de los extremos de su conexión a través del puerto 3306. Si puede, entonces debería poder usar la replicación estándar. Es posible que deba jugar con algunos ajustes de tiempo de espera y volver a intentarlo y tener suficiente espacio para mantener más registros de los que normalmente necesita, pero debería funcionar. Si eso no es viable, entonces puede que tenga que considerar tomar e importar instantáneas regularmente.

Si tiene problemas con GFW, intente configurar un servidor más en Hong Kong (ayudó en nuestro caso). Después de jugar con muchos nos detuvimos en Microsoft Azure (no estoy seguro de por qué, pero Microsoft funciona bien en China, todos los servicios están abiertos).

More Interesting

¿Cuáles son las razones de la violación que se hace con chicas de todo el mundo? ¿Por qué los hombres no violan a los hombres?

¿Por qué los estadounidenses deben esperar que el Partido Comunista Chino permanezca en el poder en China?

¿Qué es más difícil para un chino continental, ingresar a una universidad china superior o emigrar a los Estados Unidos?

¿Qué harán las campañas de Trump y Cruz si una convención negociada entrega la nominación a un candidato establecido?

¿Qué pasaría si China y los Estados Unidos se combinan?

¿Cuál es su opinión sobre la plataforma republicana 2016?

¿El gobierno de los Estados Unidos está tratando de desviar la atención de su infraestructura en ruinas al difundir propaganda contra la impresionante infraestructura de China?

¿Quién representa mejor la dirección futura del Partido Republicano: Rand Paul, Ted Cruz o Marco Rubio?

Si Trump pierde miserablemente, ¿el partido republicano irá tras él por difamar el nombre de su partido?

¿Por qué Estados Unidos tiene una baja proporción de mujeres en el campo STEM, a diferencia de países como China o India?

¿Cómo se puede considerar a Trump como un extraño, que cambiará el statu quo, cuando personifique al 'establecimiento'?

Con las recientes hostilidades entre los Estados Unidos y China, ¿qué crees que pasará con la relación entre los dos países?

¿Qué opinas de la actuación de Gary Locke como embajador en China?

¿Es cierto y normal que muchos estadounidenses tomen a China como un rival político militar y económico y por qué?

¿Cuál es la mayor diferencia entre la vida de las personas en China y los Estados Unidos?