Tutoriales

Cómo configurar la replicación basada en GTID en el servidor MySQL

Las organizaciones confían en las bases de datos para almacenar datos y permitir que se recuperen de manera eficiente. La replicación robusta ayuda a las organizaciones a cumplir con los objetivos de disponibilidad y garantizar que los datos estén donde los usuarios los necesitan, cuando los necesitan. Hay muchas opciones de bases de datos, pero este artículo se centra en MySQL. Específicamente, explica el uso de identificadores de transacciones globales (GTID) en la replicación de MySQL. También proporciona instrucciones para configurar servidores de origen y réplica habilitados para GTID.

¿Qué es la replicación?

dupdo Es el proceso por el cual múltiples bases de datos mantienen copias de los mismos datos. Cuando una instancia de base de datos actualiza sus datos, envía esos cambios a todas las demás bases de datos lo antes posible.

MySQL utiliza una arquitectura de replicación fuente-copia.Una de las bases de datos fue seleccionada como fuente (proporciona replicación), los otros son réplica (base de datos de solo lectura que recibe réplicas).

¿Qué es un identificador de transacción global?

GTID trae la replicación basada en transacciones a las bases de datos MySQL. Con la replicación de GTID, cada transacción se puede identificar y rastrear cuando se comprometió en el servidor de origen original y la réplica la aplicó. No es necesario consultar ningún archivo de registro al iniciar la réplica. La replicación de GTID utiliza la replicación de ubicación automática, lo que reduce el esfuerzo de configuración.

Es fácil determinar si la fuente y la réplica son consistentes. La coherencia está garantizada si todas las transformaciones confirmadas en el origen también se confirman en la réplica. Los GTID usan identificadores únicos que se pueden ver al verificar el registro binario y se usan con fines de depuración. La siguiente figura muestra el estado de un servidor MySQL de origen habilitado para GTID.

(Lucas Jaworski, CC BY-SA 4.0)

Para leer más sobre la creación y administración de GTID, visite la documentación oficial de MySQL. Para aprender a usar MySQL con Red Hat Enterprise Linux (RHEL), consulte la documentación de RHEL sobre el uso de MySQL.

Implementar la replicación de GTID en el servidor MySQL

Los siguientes pasos cubren la configuración y la conectividad para la replicación entre dos servidores MySQL. Uno es la fuente especificada y el otro es la copia.

[ Learn Linux basics in 30 days with Red Hat Enterprise Linux Technical Overview course. ]

Asegúrese de que ambas máquinas tengan instalado el servidor MySQL y el cliente, luego siga los pasos a continuación.

1. Configurar el servidor de origen MySQL

Primero, configure el servidor de origen editando el archivo de configuración de MySQL.prestar mucha atención para asegurarse server-id El valor es único.

existir /etc/my.cnf.d/mysql-server.cnf debajo del archivo [mysqld] parte:

bind-address=
log_bin=

Por ejemplo, especificando los archivos de registro encontrados a lo largo de esta ruta: log_bin=/var/log/mysql/mysql-bin.log.

server-id=

este server-id Debe ser único; de lo contrario, la replicación no funcionará.

gtid_mode=ON
enforce-gtid-consistency=ON

Tienes que reiniciar porque hiciste cambios en el archivo de configuración mysqld Servir:

$ sudo systemctl restart mysqld.service

2. Configurar el servidor de réplica de MySQL

Ahora muévase a la réplica y edite su archivo de configuración, nuevamente asegúrese server-id es único.

existir /etc/my.cnf.d/mysql-server.cnf debajo del archivo [mysqld] (consulte la documentación de MySQL si desea obtener más información sobre las opciones).

log_bin=

Por ejemplo, el archivo de registro del servidor de origen podría estar aquí: log_bin=/var/log/mysql/mysql-bin.log.

relay-log=path_to_replica_server_log

Los registros de un servidor de replicación pueden seguir esta ruta: relay-log=/var/log/mysql/mysql-relay-bin.log.

server-id=

este server-id Debe ser único; de lo contrario, la replicación no funcionará.

gtid_mode=ON
enforce-gtid-consistency=ON
log-replica-updates=ON
skip-replica-start=ON

Cambió el archivo de configuración en la réplica, así que no olvide reiniciar mysqld Servir:

$ sudo systemctl restart mysqld.service

3. Cree un usuario de replicación en el servidor de origen MySQL

Ahora que la configuración de replicación está en su lugar en ambos servidores, el siguiente paso es configurar las cuentas de usuario necesarias en el servidor de origen. Ejecute los siguientes comandos desde el símbolo del sistema de MySQL.

Cree un usuario de replicación:

mysql> CREATE USER 'replication_user'@'replica_server_ip' IDENTIFIED WITH mysql_native_password BY 'password';

Otorgar permisos de copia de usuario:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'replica_server_ip';

Vuelva a cargar las tablas de concesión en la base de datos MySQL:

mysql> FLUSH PRIVILEGES;

Establezca el servidor de origen en read_only Expresar:

mysql> SET @@GLOBAL.read_only = ON;

4. Conecte el servidor de réplica al servidor de origen

El paso final es conectar el servidor de réplica con el servidor de origen. Estos pasos también se realizan en el indicador de MySQL en la réplica.

Establezca el servidor de réplica en read_only Expresar:

mysql> SET @@GLOBAL.read_only = ON;

Configure la fuente de replicación:

mysql> CHANGE REPLICATION SOURCE TO
    -> SOURCE_HOST='source_ip_address',
    -> SOURCE_USER='replication_user',
    -> SOURCE_PASSWORD='password',
    -> SOURCE_AUTO_POSITION=1;

Inicie el subproceso de réplica en el servidor de réplica de MySQL:

mysql> START REPLICA;

Desarmar ahora read_only Estado en ambos servidores, puede realizar cambios en el servidor de origen. Estos cambios se enviarán a la réplica:

mysql> SET @@GLOBAL.read_only = OFF;

[ The OpenShift for Developers eBook will get you started with containers quickly. ]

Uso de GTID

No hay motivo para no utilizar la configuración de GTID para la replicación del servidor MySQL. Facilita a los administradores la implementación, la depuración y la configuración. Puede haber algunas limitaciones menores con la replicación basada en GTID, pero los beneficios superan las desventajas. Es más fácil de configurar que configurar la replicación sin GTID, así que hágalo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba