GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar la replicación de esclavo maestro de MariaDB en Ubuntu 18.04

MariaDB es un sistema de administración de bases de datos relacionales gratuito y de código abierto, y es una de las opciones más populares. La replicación es el proceso de copiar datos de un servidor de base de datos maestro a otro servidor de base de datos esclavo. En la topología maestro-esclavo, un servidor actúa como maestro y otros servidores actúan como esclavos. En la replicación maestro-esclavo, los datos se replican en un solo sentido. Si cambia los datos en el servidor esclavo, no se replicarán en el servidor maestro. Si el servidor maestro deja de funcionar, aún puede recuperar sus datos del servidor esclavo.

Puede usar la replicación maestro-esclavo de MariaDB para varios propósitos; algunos de estos se enumeran a continuación:

  • Escalabilidad y alta disponibilidad
  • Copias de seguridad
  • Análisis
  • Equilibrio de carga
  • Aumento del rendimiento de la base de datos
  • Aliviar la conmutación por error
  • Seguridad de datos

En este tutorial, le mostraremos cómo configurar la replicación maestro-esclavo de MariaDB en el servidor Ubuntu 18.04.

Requisitos

  • Dos Ubuntu 18.04 VPS nuevos en Atlantic.Net Cloud Platform.
  • Una contraseña raíz estática configurada en ambos servidores.

Paso 1:crear un servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

apt-get update -y

Paso 2:instale MariaDB en ambos servidores

Primero, deberá instalar MariaDB en ambos servidores. Puede instalarlo ejecutando el siguiente comando:

apt-get install mariadb-server mariadb-client -y

Después de instalar MariaDB, ejecute el siguiente comando para asegurar la instalación de MariaDB:

mysql_secure_installation

Responda todas las preguntas como se muestra a continuación:

Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

En este punto, ha instalado y asegurado ambos servidores MariaDB.

Paso 3:configurar el servidor maestro

A continuación, deberá habilitar el registro binario y la replicación en el servidor maestro. Para hacerlo, abra el archivo /etc/mysql/mariadb.conf.d/50-server.cnf con su editor de texto preferido:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Busque la dirección de enlace de línea y cambie el valor a 0.0.0.0 para permitir conexiones entrantes.

bind-address            = 0.0.0.0

A continuación, agregue las siguientes líneas al final del archivo:

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio MariaDB para implementar los cambios:

systemctl restart mariadb

A continuación, deberá crear un usuario de replicación. El servidor esclavo utilizará este usuario para iniciar sesión en el servidor maestro y solicitar registros binarios.

Primero, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Proporcione su contraseña raíz cuando se le solicite, luego cree un usuario con el siguiente comando:

CREATE USER 'replication'@'%' identified by 'your-password';

A continuación, otorgue el privilegio de esclavo de replicación a este usuario con el siguiente comando:

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';

A continuación, elimine los privilegios con el siguiente comando:

FLUSH PRIVILEGES;

A continuación, verifique el estado del servidor maestro con el siguiente comando:

show master status;

Deberías obtener el siguiente resultado:

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      313 |              |                  |
+------------------+----------+--------------+------------------+

A continuación, salga del shell de MariaDB con el siguiente comando:

EXIT;

Nota :Recuerde el Archivo y Posición detalles de la salida anterior. Necesitará estos valores al configurar el servidor esclavo.

Paso 4:configurar el servidor esclavo

A continuación, inicie sesión en el servidor esclavo y abra el archivo /etc/mysql/mariadb.conf.d/50-server.cnf:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Busque la dirección de enlace de la línea y cambie el valor a 0.0.0.0 como se muestra a continuación:

bind-address            = 0.0.0.0

A continuación, agregue las siguientes líneas al final del archivo:

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio MariaDB para implementar los cambios:

systemctl restart mariadb

A continuación, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Proporcione su contraseña raíz cuando se le solicite, luego detenga los subprocesos esclavos como se muestra a continuación:

stop slave;

A continuación, ejecute el siguiente comando para configurar el esclavo para replicar el maestro:

CHANGE MASTER TO MASTER_HOST = 'your-master-host-ip', MASTER_USER = 'replication', MASTER_PASSWORD = 'your-password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 313;

A continuación, inicie los subprocesos esclavos y salga del shell de MariaDB como se muestra a continuación:

start slave;
exit;

Nota :Modifique el comando anterior para usar su dirección IP de host maestro y su contraseña que creó en los pasos anteriores. Utilice el nombre del archivo de registro y los valores de posición que obtuvo del servidor maestro.

Paso 5:probar la replicación de la base de datos

En este punto, ha configurado la replicación maestro-esclavo. Ahora es el momento de probar la replicación entre el maestro y el esclavo.

En el servidor maestro, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Proporcione su contraseña raíz cuando se le solicite, luego cree una base de datos con el nombre mydb como se muestra a continuación:

create database mydb;

A continuación, cree una tabla con el nombre "productos" dentro de la base de datos mydb:

use mydb;
CREATE TABLE products(product_id INT NOT NULL AUTO_INCREMENT,product_name VARCHAR(100) NOT NULL,product_manufacturer VARCHAR(40) NOT NULL,submission_date DATE,PRIMARY KEY ( product_id ));

A continuación, ejecute el siguiente comando para comprobar la tabla:

SHOW TABLES;

Salida:

+----------------+
| Tables_in_mydb |
+----------------+
| products       |
+----------------+

En el servidor esclavo, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Proporcione su contraseña raíz cuando se le solicite y luego verifique el estado del esclavo:

SHOW SLAVE STATUS \G

Debería ver el siguiente resultado:

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: your-master-host-ip
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 721
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 945
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

A continuación, ejecute el siguiente comando para verificar si la base de datos está replicada:

show databases;

Debería ver la base de datos mydb que creó en el servidor maestro:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
+--------------------+

Luego, verifique la tabla de productos que creó en el servidor maestro:

MariaDB [(none)]> use mydb;
MariaDB [mydb]> show tables;

Debería ver la tabla de productos en el siguiente resultado:

+----------------+
| Tables_in_mydb |
+----------------+
| products       |
+----------------+

¡Felicidades! Su replicación maestro-esclavo de MariaDB funciona como se esperaba. Ahora puede recuperar fácilmente su base de datos en caso de falla. Comience hoy con la replicación maestro-esclavo de MariaDB con un paquete de alojamiento VPS de Atlantic.Net.


Linux
  1. Cómo configurar la replicación de esclavo maestro de MySQL

  2. Cómo configurar el servidor Rsyslog en Ubuntu 18.04 LTS

  3. Cómo configurar MariaDB Galera Cluster en Ubuntu 20.04

  4. Configurar el servidor Rsyslog en Ubuntu 20.04 - ¿Cómo hacerlo?

  5. Cómo instalar MariaDB en Ubuntu 22.04

Cómo configurar el servidor Git en Ubuntu 20.04

Cómo configurar el servidor Rsyslog en Ubuntu

Cómo configurar el servidor DHCP en Ubuntu

Cómo instalar el servidor DNS maestro y esclavo BIND9 en Ubuntu

Cómo:Configuración inicial del servidor Ubuntu 15.04

¿Cómo configurar la replicación maestro-esclavo de MySQL en RHEL 7?