Te doy la bienvenida a nuestro sitio, en este lugar vas a hallar la resolución a lo que buscabas.
La replicación de MariaDB se puede utilizar para la replicación entre MariaDB Galera Cluster y MariaDB Server. Este artículo discutirá cómo hacer eso.
Configurar el clúster
Antes de configurar la replicación, debemos asegurarnos de que el clúster esté configurado correctamente. Esto implica los siguientes pasos:
- Colocar
log_slave_updates=ON
en todos los nodos del clúster. Consulte Configuración de clúster de MariaDB Galera: escritura de conjuntos de escritura replicados en el registro binario y uso de la replicación de MariaDB con el clúster de MariaDB Galera: configuración de un nodo de clúster como maestro de replicación para obtener más información sobre por qué esto es importante. Esto también es necesario para habilitar el modo wsrep GTID.
- Colocar
server_id
al mismo valor en todos los nodos del clúster. Consulte Uso de la replicación de MariaDB con MariaDB Galera Cluster: Configuración de server_id en los nodos de clúster para obtener más información sobre lo que esto significa.
Configuración del modo Wsrep GTID
Si desea utilizar la replicación GTID, también debe configurar algunas cosas para habilitar el modo wsrep GTID. Por ejemplo:
wsrep_gtid_mode=ON
debe configurarse en todos los nodos del clúster.
wsrep_gtid_domain_id
debe configurarse con el mismo valor en todos los nodos del clúster, de modo que cada nodo del clúster utilice el mismo dominio al asignar GTID para los conjuntos de escritura de Galera Cluster.
log_slave_updates
debe estar habilitado en todos los nodos del clúster. Ver MDEV-9855 sobre eso.
Y como medida de seguridad extra:
gtid_domain_id
debe establecerse en un valor diferente en todos los nodos de un clúster determinado, y cada uno de estos valores debe ser diferente al configuradowsrep_gtid_domain_id
valor. Esto es para evitar que un nodo utilice el mismo dominio utilizado para los conjuntos de escritura de Galera Cluster al asignar GTID para transacciones que no son de Galera, como DDL ejecutado conwsrep_sst_method=RSU
set o DML ejecutado conwsrep_on=OFF
colocar.
Configuración del esclavo
Antes de configurar la replicación, también debemos asegurarnos de que el esclavo del servidor MariaDB esté configurado correctamente. Esto implica los siguientes pasos:
- Colocar
server_id
a un valor diferente al que están usando los nodos del clúster.
- Colocar
gtid_domain_id
a un valor que es diferente alwsrep_gtid_domain_id
ygtid_domain_id
valores que utilizan los nodos del clúster.
- Colocar
log_bin
ylog_slave_updates=ON
si desea que el esclavo registre las transacciones que replica.
Configurar la replicación
Nuestro proceso para configurar la replicación será similar al proceso descrito en Configuración de un esclavo de replicación con Mariabackup, pero se modificará un poco para que funcione en este contexto.
Iniciar el clúster
El primer paso es iniciar los nodos en el primer clúster. El primer nodo deberá iniciarse. Los otros nodos se pueden iniciar normalmente.
Una vez que se inician los nodos, debe elegir un nodo específico que actuará como maestro de replicación para el servidor MariaDB.
Haga una copia de seguridad de la base de datos en el nodo maestro del clúster y prepárelo
El primer paso es simplemente realizar y preparar una nueva copia de seguridad completa del nodo que ha elegido como maestro de replicación. Por ejemplo:
$ mariabackup --backup --target-dir=/var/mariadb/backup/ --user=mariabackup --password=mypassword
Y luego prepararía la copia de seguridad como lo haría normalmente. Por ejemplo:
$ mariabackup --prepare --target-dir=/var/mariadb/backup/
Copiar la copia de seguridad al esclavo
Una vez realizada y preparada la copia de seguridad, puede copiarla al servidor MariaDB que actuará como esclavo. Por ejemplo:
$ rsync -avrP /var/mariadb/backup dc2-dbserver1:/var/mariadb/backup
Restaurar la copia de seguridad en el esclavo del segundo clúster
En este punto, puede restaurar la copia de seguridad a la datadir
, como lo haría normalmente. Por ejemplo:
$ mariabackup --copy-back --target-dir=/var/mariadb/backup/
Y ajustando los permisos de archivo, si es necesario:
$ chown -R mysql:mysql /var/lib/mysql/
Iniciar el nuevo esclavo
Ahora que se ha restaurado la copia de seguridad en el servidor MariaDB esclavo, puede iniciar el proceso del servidor MariaDB.
Crear un usuario de replicación en el maestro del clúster
Antes de que el esclavo del servidor MariaDB pueda comenzar a replicar desde el maestro del clúster, debe crear una cuenta de usuario en el maestro que el esclavo pueda usar para conectarse, y debe otorgarle a la cuenta de usuario el REPLICATION SLAVE
privilegio. Por ejemplo:
CREATEUSER'repl'@'dc2-dbserver1' IDENTIFIED BY'password';GRANTREPLICATION SLAVE ON*.*TO'repl'@'dc2-dbserver1';
Iniciar la replicación en el nuevo esclavo
En este punto, debe obtener las coordenadas de replicación del maestro de la copia de seguridad original.
Las coordenadas estarán en el xtrabackup_binlog_info
expediente.
Mariabackup vuelca las coordenadas de replicación en dos formas: cadenas GTID y archivo de registro binario y coordenadas de posición, como las que normalmente vería en SHOW MASTER STATUS
producción. En este caso, probablemente sea mejor utilizar las coordenadas GTID.
Por ejemplo:
mariadb-bin.0000965680-1-2
Independientemente de las coordenadas que utilice, deberá configurar la conexión maestra utilizando CHANGE MASTER TO
y luego inicie los subprocesos de replicación con START SLAVE
.
GTID
Si desea utilizar GTID, primero deberá configurar gtid_slave_pos
a las coordenadas GTID que extrajimos del xtrabackup_binlog_info
archivo, y estableceríamos MASTER_USE_GTID=slave_pos
en el CHANGE MASTER TO
mando. Por ejemplo:
SETGLOBAL gtid_slave_pos ="0-1-2"; CHANGE MASTER TO MASTER_HOST="c1dbserver1", MASTER_PORT=3310, MASTER_USER="repl", MASTER_PASSWORD="password", MASTER_USE_GTID=slave_pos;START SLAVE;
Archivo y cargo
Si desea utilizar el archivo de registro binario y las coordenadas de posición, debe establecer MASTER_LOG_FILE
y MASTER_LOG_POS
en el CHANGE MASTER TO
comando al archivo y las coordenadas de posición que sacamos del xtrabackup_binlog_info
expediente. Por ejemplo:
CHANGE MASTER TO MASTER_HOST="c1dbserver1", MASTER_PORT=3310, MASTER_USER="repl", MASTER_PASSWORD="password", MASTER_LOG_FILE='mariadb-bin.000096', MASTER_LOG_POS=568,START SLAVE;
Verifique el estado del nuevo esclavo
Debería haber terminado de configurar el esclavo ahora, por lo que debería comprobar su estado con SHOW SLAVE STATUS
. Por ejemplo:
SHOW SLAVE STATUSG
Ahora que el servidor MariaDB está activo, asegúrese de que no comience a aceptar escrituras todavía si desea configurar la replicación circular entre el clúster y el servidor MariaDB.
Configurar la replicación circular
También puede configurar la replicación circular entre el clúster y el servidor MariaDB, lo que significa que el servidor MariaDB se replica desde el clúster y el clúster también se replica desde el servidor MariaDB.
Cree un usuario de replicación en el servidor maestro MariaDB
Antes de que pueda comenzar la replicación circular, también debe crear una cuenta de usuario en el servidor MariaDB, ya que actuará como maestro de replicación para el esclavo del clúster, y debe otorgarle a la cuenta de usuario la REPLICATION SLAVE
privilegio. Por ejemplo:
CREATE USER 'repl'@'c1dbserver1' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'c1dbserver1';
Iniciar la replicación circular en el clúster
La forma de hacerlo dependerá de si desea utilizar las coordenadas GTID o el archivo de registro binario y las coordenadas de posición.
Independientemente, debe asegurarse de que el segundo clúster no acepte escrituras distintas de las que replica desde el clúster en esta etapa.
GTID
Para obtener las coordenadas GTID en el servidor MariaDB, puede verificar gtid_current_pos
ejecutando:
SHOW GLOBAL VARIABLES LIKE 'gtid_current_pos';
Luego, en el nodo que actúa como esclavo en el clúster, puede configurar la replicación configurando gtid_slave_pos
al GTID que fue devuelto y luego ejecutando CHANGE MASTER TO
:
SET GLOBAL gtid_slave_pos = "0-1-2"; CHANGE MASTER TO MASTER_HOST="c2dbserver1", MASTER_PORT=3310, MASTER_USER="repl", MASTER_PASSWORD="password", MASTER_USE_GTID=slave_pos; START SLAVE;
Archivo y cargo
Para obtener el archivo de registro binario y las coordenadas de posición en el servidor MariaDB, puede ejecutar SHOW MASTER STATUS
:
SHOW MASTER STATUS
Luego, en el nodo que actúa como esclavo en el clúster, establecería master_log_file
y master_log_pos
en el CHANGE MASTER TO
mando. Por ejemplo:
CHANGE MASTER TO MASTER_HOST="c2dbserver1", MASTER_PORT=3310, MASTER_USER="repl", MASTER_PASSWORD="password", MASTER_LOG_FILE='mariadb-bin.000096', MASTER_LOG_POS=568; START SLAVE;
Verifique el estado de la replicación circular
Debería haber terminado de configurar la replicación circular en el nodo del primer clúster ahora, por lo que debería comprobar su estado con SHOW SLAVE STATUS
. Por ejemplo:
SHOW SLAVE STATUSG
El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido con anticipación. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o de cualquier otra parte.
valoraciones y comentarios
Eres capaz de añadir valor a nuestro contenido informacional cooperando tu experiencia en las anotaciones.