plataforma de base de datos mysql8 centos8 para construir la sincronización maestro-esclavo

Uno, dos servidores de Planificación

    un servidor: ip yjweb:: Host nombre 121.122 . 123.47         papeles: la biblioteca principal Servidor- lo anterior Identificación del mencionado : 1 

    J Servidor: Nombre de host: OS3 ip:   121.122 . 123.134        papel: de la biblioteca Servidor- la anteriormente mencionada ID : 2

 

Descripción: 1, la biblioteca principal ya había tenido datos, se necesitan los datos de exportación

          2, sólo tenemos que sincronizar una base de datos: nombre de la base de datos: se reúnen

          3, la versión de MySQL base de datos: 8.0.19,

              Nota Para mantener las dos versiones de la misma base de datos, la biblioteca principal trata de no más alta que la versión del repositorio

 

Descripción: Liu asociación de la arquitectura bosque es un marco enfocado blog, dirección: https://www.cnblogs.com/architectforest

         El código fuente correspondiente se puede acceder aquí para:  https://github.com/liuhongdi/

 Descripción: Autor: Liu asociación E-mail: [email protected]

 

En segundo lugar, la biblioteca principal: Consulte el archivo de configuración, asegúrese de que puede llamar a los disparos de la sincronización:

[root @ yjweb ~] $ más /etc/my.cnf

 

Hay dos elementos de configuración clave:

server- ID = 1 

log -bin = / data / mysql / binlog / mysql-bin

 

Descripción: la biblioteca principal id_servidor al servidor-id y una zona separada de la biblioteca,

         biblioteca principal de hacer log-bin, el uso principal para el registro binario para la replicación de

Nota: Debido a mysql8, el valor por defecto de la variable es binlog_format fila,

          Declaramos ya no manualmente este variables de configuración

 

En tercer lugar, la biblioteca principal: Crear una cuenta de sincronización

Descripción: Esta cuenta no se accede a la biblioteca principal de la biblioteca, por lo que la 'copia de seguridad' @ '121.122.123.134', ip ip de la biblioteca

 

[Root @ yjweb ~] # / usr / local suave / mysql / bin / mysql -u -p / root

 

1, crear una cuenta de sincronización y autorizar:

mysql> create usuario ' copia de seguridad ' @ ' 121.122.123.134 ' identificado por ' backuppassword ' ; 
Query OK, 0 filas afectadas ( 0.00 seg) 

mysql > replicación subvención esclavo en *. * Copia de seguridad @ 121.122 . 123.134 ; 
Query OK, 0 filas afectadas ( 0.00 seg)

 

2. Compruebe para crear el éxito?

mysql> seleccionar * desde mysql.user donde usuario = ' copia de seguridad ' ;

 

3. Comprobar que el usuario actual obtenida la autorización

mysql> ver los subsidios para la copia de seguridad @ 121.122 . 123.134 ;
+ ------------------------------------------------- ------------- + 
| Subvenciones para la copia de seguridad @ 121.122 . 123.134                             | 
+ ------------------------------------------------- ------------- + 
| GRANT esclavo de replicación EN *. * A `` backup` @ 121.122 . 123.134 `| 
+ ------------------------------------------------- ------------- + 1 fila en conjunto ( 0,00 seg)

 

4, las nuevas cuentas que tengan efecto

mysql> privilegios ras; 
Query OK, 0 filas afectadas ( 0.00 seg)

 

En cuarto lugar, la biblioteca principal: Exportar datos para la sincronización de bases de datos

Descripción: Además de la exportación de datos, centrándose en la biblioteca principal en la ubicación actual de la entrada de registro

1, más el bloqueo de lectura global, cuando se gira para evitar la operación de escritura de datos

mysql> FLUSH TABLES WITH READ LOCK; 
Query OK, 0 filas afectadas ( 0.00 seg)

 

2, ver el archivo de registro actual y la ubicación, y grabado

mysql> SHOW MASTER STATUS;
+ ------------------ + ---------- + -------------- + ---- -------------- + ------------------- + 
| archivo | posición | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | 
+ ------------------ + ---------- + -------------- + ---- -------------- + ------------------- + 
| mysql-bin. 000014 |    55813 | | | | 
+ ------------------ + ---------- + -------------- + ---- -------------- + ------------------- + 1 fila en conjunto ( 0,00 seg)

 

3, abrir otro terminal, la sincronización de los datos de base de datos deriva necesidades

[root @ yjweb ~] # / usr / local / soft / mysql / bin / mysqldump --port = 3306 -u -prootpassword raíz --databases Conoce --lock-tables = false -> /root/meet.sql

Descripción: El archivo de datos exportado a ser cargado en el servidor de la biblioteca donde el

 

4, acaba de regresar a la terminal donde MySQL: Desbloquear:

mysql> UNLOCK TABLES; 
Query OK, 0 filas afectadas ( 0.00 seg)

 

En quinto lugar, la biblioteca principal: Comprobar la configuración del cortafuegos

[Root @ yjweb ~] # firewall-cmd --list-todo

 

Comprobar si se añade la biblioteca para el servidor de seguridad de IP

Por ejemplo:

normas ricos: 
        la familia regla = " IPv4 " dirección de origen = " 121.122.123.134 " aceptar

 

En sexto lugar, de la biblioteca: los datos de importación

1, desactivar el servicio web, el acceso entrante a evitar

[Root @ OS3 ~] # systemctl parada nginx

 

2, si existe una sincronización de la base de datos actual, datos de borrado

mysql> drop database se reúnen; 
Query OK, 19 filas afectadas ( 0,24 seg)

 

3, los datos de importación

Copiar el archivo exportado a la principal biblioteca de SQL (Este paso se lleva a cabo en la biblioteca principal) de la biblioteca

[root @ yjweb ~] # scp raíz ./meet.sql @ 121.122 . 123.134 : / root /

 

Desde la biblioteca, la importación

[root @ OS3 conf] # / datos / software / mysql / bin / mysql --host = 127,0 . 0,1 --port = 3.306 raíz -u -prootpassword </root/meet.sql

 

Siete de la biblioteca: una configuración maestro-esclavo

[OS3 para establecer una raíz @ ~] # La vi etcmycnf

El principal configure lo siguiente:

server- ID = 2 
replicate - do = -db cumplen 
read_only          = 1

 

Descripción: réplica-do-db se utiliza para especificar la base de datos que desea copia

         permisos de sólo lectura cuando se accede a read_only usuario normal (no root), no escriben

Nota: Después de modificar el archivo de configuración my.cnf hecho, no se olvide de reiniciar los servicios de base de datos MySQL,

         Habilitar la configuración, de lo contrario, informar del error siguiente:

Fatal error: El hilo esclavo I / O se detiene porque maestro y el esclavo tienen ids iguales servidor MySQL; 
estos identificadores deben ser diferentes para la replicación de trabajo
(o la --replicate-misma-servidor- Identificación opción se debe utilizar en el esclavo, pero esto no siempre hacen sentido,
por favor, compruebe el manual antes de usarlo)

 

Ocho, de la biblioteca: realizar la sincronización:

Detener sincronización de la biblioteca

mysql> parada de esclavos; 
Query OK, 0 filas afectadas, 1 de advertencia ( 0.00 seg)

La información de configuración para conectarse a la biblioteca principal

mysql> maestro de modificación a MASTER_HOST = ' 121.122.123.47 ' , MASTER_PORT = 3,306 , master_user = ' copia de seguridad ' , master_password = ' backuppassword ' , MASTER_LOG_FILE = ' mysql-bin.000014 ' , MASTER_LOG_POS = 55813 ; 
Query OK, 0 filas afectadas, 1 de advertencia ( 0,03 seg)

 

La sincronización se apartó de la biblioteca

mysql> iniciar esclavo; 
Query OK, 0 filas afectadas ( 0.00 seg)

 

Nueve, de la biblioteca: Comprobar caso Sincronización

1, ver el estado de la biblioteca

mysql> show status de esclavos;

Mira el foco de estos dos:

Slave_IO_Running | Slave_SQL_Running

Estos dos deben estar

Sí | si

 

2, insertar, después de actualizar o modificar, en vista de la biblioteca es, en efecto, si los cambios pueden tener lugar en la biblioteca principal

   

Descripción: mysql desde arriba del edificio principal se ha completado la sincronización, seguido por la información adicional

 

Diez, muestran el título de satélite la información principal de sincronización de la interpretación de la situación:

1 Para ver la información de la biblioteca principal:

MASTER_HOST: # dirección principal servidor de biblioteca 
Master_User: # Acceso a la biblioteca principal nombre de usuario
MASTER_PORT: # puerto mysqld biblioteca principal

 

Estado 2, Slave_IO_Running y Slave_SQL_Running dos hilos

hilo Slave_IO es responsable del contenido logs bin biblioteca principal (Master_Log), entregado desde el registro de relé a la biblioteca (Relay_Log).

Slave_SQL hilo es responsable de la declaración sobre la aplicación del log retardado en vez de la biblioteca.

Sí indica normal, no expresan una excepción.

Si el estado de los dos hilos son afirmativas, que indica la sincronización normal,

Si hay un elemento que no, este tiempo prestar atención para ver los cuatro siguientes:

Last_IO_Error salvado producido un error razones io

Last_IO_Error_Timestamp registra el momento en que ocurrió el error io

Last_SQL_Error salvado producido un error de SQL razones

Last_SQL_Error_Timestamp registra el error de tiempo de SQL ocurrido

 

3, la forma de determinar la brecha de la sincronización principal?

El nombre del hilo principal binaria volumen de archivo de registro MASTER_LOG_FILE # E / S está leyendo actualmente

archivo de registro binario maestro Nombre Relay_Master_Log_File # sincronización es ejecutada por el flujo SQL

Si hay más de dos archivos con el mismo nombre, a continuación, leer y ejecutar en el mismo archivo binario

 

# En la posición actual del registro binario maestro, I / O hilos leyendo: Read_Master_Log_Pos

Exec_Master_Log_Pos: # tiempo en un log binario del servidor principal mediante la ejecución de posición de flujo SQL

Si los anteriores dos números de posiciones idénticas indica el progreso de la lectura y la ejecución de una sincronización completa

 

4, Replicate_Do_DB: aquí es el nombre de la base de datos de sincronización

5, Slave_IO_State: espera que se muestra, por ejemplo: Esperando maestro para enviar eventos

    Representa el log retardado declaración SQL se ha ejecutado completamente

6, Seconds_Behind_Master:

    La diferencia de tiempo entre el flujo SQL esclavo y el hilo de I / O

    Si la conexión de red entre dos máquinas es pobre, es posible que este valor es muy bajo,

    Sin embargo, sincrónica detrás de la biblioteca principal de la biblioteca más,

    Por lo tanto, no puede ser juzgada únicamente sobre la base de sincronización

 

Once tres significados formato log binario:

binlog formato, hay tres: DECLARACIÓN, FILA, mixto.

 

1, el modo de ESTADO (SBR)

Cada declaración Modificar datos SQL se registra en el log binario.

No se requiere la ventaja a los datos de registro cambia cada instrucción SQL y cada línea, lo que reduce la cantidad de binlog registro, el ahorro IO, un rendimiento mejorado.

La desventaja es que puede provocar inconsistencias en los datos en el maestro-esclavo (tales como la función del sueño (), LAST_INSERT_ID (), y funciones definidos por el usuario (UDF) se producen problemas)

 

2, el modo de fila (la RBR)

instrucción SQL no registrar cada información de contexto, que sólo la grabación de los datos se modifique, la modificó para qué.

Ventajas: procedimientos almacenados no aparecen en ciertos casos específicos, o función, o desencadenar la llamada y disparadores el problema no puede ser reproducido correctamente.

Desventajas: va a generar una gran cantidad de tala, especialmente cuando alter table registrará auge.

 

3, modelo mixto (MBR)

Las mezclas de al menos dos modos,

Utilice el modo de copia declaración general para guardar binlog,

Para el modo de funcionamiento con el modo de línea del extracto no puede ser copiado para salvar binlog,

MySQL optar por guardar el registro Según sentencia SQL ejecutada.

 

Descripción: formato de fila más segura, es actualmente el formato por defecto mysql8

 

Doce, ver las ediciones de bases de datos MySQL y versiones de CentOS:

[root @ yjweb ~] # / usr / local / soft / mysql / bin / mysqld - V
 / usr / local / soft / mysql / bin / mysqld Ver 8.0 . 19  para linux-glibc2. 12 en x86_64 (MySQL Community Server - GPL)

 

[root @ yjweb ~] # cat / etc / redhat- liberación 
liberación de CentOS Linux 8.0 . 1905 (Core)

 

 

 

 

Supongo que te gusta

Origin www.cnblogs.com/architectforest/p/12579847.html
Recomendado
Clasificación