maestro MySQL (sincronización maestro-esclavo) Copiar de

mysql sincronización maestro-esclavo

1, la sincronización MySQL maestro-esclavo (replicación) Concepto

 alcanzaron de nuevo 1. Copia de datos MySQL para un host en otros anfitriones (esclavos), y las instrucciones.

 2. El servidor actúa como un maestro de replicación, mientras que uno o más otros servidores actúan como desde el servidor.

 3. El servidor de índices maestro escribe archivos de registro binario se actualizarán, y mantener archivos para realizar un seguimiento del ciclo de registro.

 4. Cuando una conexión desde el servidor maestro, se notifica a la posición de la última actualización satisfactoria leer desde el servidor maestro en el registro.

 5. recibir las actualizaciones desde entonces generadas desde el servidor, el servidor espera a que el bloque principal y notifica la nueva actualización.

 binlog : archivos de registro binario para el registro de actualización de datos MySQL o cambios potenciales (tales como estados de eliminar eliminar los datos reales no cumple con los criterios)

2, Mysql que la replicación de apoyo

 1.  Declaración de replicación basada en:  ejecutar sentencias SQL en el servidor principal, desde el servidor para realizar la misma declaración.

   Nota: la replicación basada en la declaración por defecto de MySQL, de alta eficiencia. Una vez que no se encuentra clon, seleccionado automáticamente replicación basada en fila.

 2.  replicación basada en filas:  los cambios de contenido replican el pasado, en lugar de ejecutar comandos desde el servidor de nuevo desde el principio el apoyo mysql5.0.

 3. Los  tipos mixtos de replicación:  los valores predeterminados basados declaración de replicación, si se determina sobre la base de declaraciones no pueden ser replicados precisamente, utilizará la replicación basada en filas.

3, el principio de replicación de MySQL maestro-esclavo

 1. maestro del servidor cambiará a los datos binarios se registró registro binlog, siempre y cuando los cambios de datos en el maestro , se cambia a escribir registros binarios;

 2. Servidor de pomada dentro de un cierto intervalo de tiempo de los registros binarios maestro para detectar si los cambios , si ha cambiado, es un evento de comenzar de E / S Tema principal petición binaria

 3. Al mismo nodo maestro es cada hilo de E / S se inicia un volcado de hilo , enviar un evento binario, y guarda en el nodo de retransmisión local desde el registro

 4. La  lectura nodo SQL hilo comienza desde el relé de la respuesta de anotación de registro binario a nivel local , por lo que sus datos se mantiene constante y el nodo maestro

 5. Por último, E / S del hilo y del flujo SQL se irá a dormir, esperando a ser despertado una vez.

 Es necesario comprender:

  1) genera dos hilos de la biblioteca, una rosca I / O, un SQL hilo;
  2) I / O solicitud binlog hilo a la biblioteca principal, y el resultante escrita binlog local de relé-log (log retardado ) archivo;
  3) genera un hilo biblioteca vertedero principal de registro, de la biblioteca utilizada para I / O hilos pasar el binlog;
  . 4) el flujo SQL lee el archivo de registro de registro de relé, y resuelve instrucción SQL ejecutado uno por uno;

4, Mysql Organigrama replicación

 1. maestro registro de la operación binlog registra en el estado

 2. salve en el servidor maestro detectará si el cambio de registro binario se produce dentro de un cierto intervalo de tiempo, si se produce el cambio

 3. Salave abiertas dos hilos: hilo IO y el hilo SQL

  1) hilo IO: es responsable de leer el contenido de binlog maestro en el registro de relé log retardado en;

  2) SQL Tema: responsable de la lectura del registro de log retardado a cabo binlog contenido y actualizaciones de la base de datos de esclavos (para asegurar los datos coherentes)

 

 retrasos de sincronización de MySQL

1, lo que resulta en un retardo de sincronización mysql causa común

 1) de red: La máquina huésped o jugado desde el ancho de banda, de alta latencia de red entre el maestro y el esclavo, el maestro binlog no causa la cantidad total al esclavo, provocando retraso.

 2) el rendimiento de la máquina: de la máquina podrida de usar la máquina? Por ejemplo, el uso de SSD y el anfitrión o el uso de esclavo SATA.

 3) De la máquina de alta carga: Hay una gran cantidad de empresas, hará las estadísticas sobre el esclavo, el esclavo en una carga alta, lo que resulta en una gran cantidad de casos, el retardo de esclavos

 4) las transacciones grandes: por ejemplo, en el modo de RBR, lleve a cabo con un gran número de operaciones de borrado, tales vista mysqlbinlog binlog en SQL mediante la visualización de la información y el uso processlist puede confirmar rápidamente

 5) Bloqueo:  conflictos de bloqueo también causa la ejecución flujo SQL esclavo es lento, tales como algunos de selección .... para la actualización de SQL desde la máquina, o puede utilizar el motor MyISAM, y así sucesivamente.

2, artículos metálicos (optimización)

 1. Con un servidor bueno, tal 4u 2u significativamente mejor que el rendimiento, el rendimiento 2U 1u significativamente mejor que.

 2. La matriz de discos de almacenamiento o SSD o san, levantando el rendimiento de escritura aleatoria.

 3. garantizada entre el maestro y el esclavo están en el mismo interruptor de abajo, y un entorno Gigabit.

  Resumen : hardware de gran alcance, la demora podría ser más pequeños. En resumen, la reducción de la latencia es la solución a gastar dinero y tiempo para gastar.

3, maestro MySQL desde sincrotrón

 1) sync_binlog en el lado esclavo se establece en 0

  Cuando las confirmaciones de transacción, MySQL simplemente los datos se escriben binlog_cache archivo binlog, pero como fsync disco no realiza la sincronización de caché de instrucciones del sistema de archivos notificación haya sido volcado a disco

  Y dejar Sistema de Archivos para decidir qué hacer sincronización de tiempo, este es el mejor rendimiento.

 2) esclavo 端 innodb_flush_log_at_trx_commit = 2

  MySQL será el buffer de datos de registro se escribe en archivo de registro cada vez que se confirma una transacción, pero ras (cepillo en el disco) no será operativo al mismo tiempo.

  En este modo, MySQL hará que se vacíe se realiza una vez por segundo funcionamiento (el disco cepillo).

 3) -logs-slave-updates recibidos del servidor desde el servidor principal para actualizar no pagan a su registro binario.

 4) desactivar el terminal esclavo binlog directa

Supongo que te gusta

Origin www.cnblogs.com/8lala/p/12469779.html
Recomendado
Clasificación