GNU/Linux >> Tutoriales Linux >  >> Linux

Configurar la replicación de réplica de origen de MySQL

La replicación de datos de réplica de origen le permite copiar datos replicados en varias computadoras para realizar copias de seguridad y análisis por parte de varias partes. Debe enviar los cambios necesarios identificados por un miembro del grupo al principal designado del nodo. Esto difiere de la replicación fuente-fuente, en la que cualquier colaborador autorizado del grupo puede actualizar los datos.

Este artículo proporciona los pasos para configurar la replicación de la base de datos de réplica de origen MySQL® entre dos servidores en la nube. El sistema operativo utilizado para los ejemplos del artículo es CentOS® 6, creado a partir de una imagen base de Rackspace CloudServers.

Antes de comenzar

Los pasos de este artículo utilizan dos servidores en la nube, db01 y db02 Los servidores .Cloud tienen dos direcciones IP (una pública y otra privada). Los ejemplos muestran cómo configurar la replicación a través de la interfaz IP privada para que no se incurra en cargos por ancho de banda. Por la duración del artículo, db01 se considera la fuente servidor MySQL (ejecutándose en modo lectura-escritura) y db02 se considera la réplica servidor (ejecutándose en modo de solo lectura).

Si ya tiene una base de datos MySQL ejecutándose en el nodo de origen, se requiere un volcado y una restauración en el nodo de réplica antes de configurar la replicación entre ellos. Usas el mysqldump comando para volcar una base de datos en un archivo, luego transferirla y restaurarla en la réplica. Después de realizar la configuración necesaria, la replicación no tiene efecto. Para obtener más información, consulte la sección Configurar replicación.

Crear los servidores en la nube

Cree dos servidores en la nube Linux® utilizando la imagen base de Centos 6. Utilice los siguientes pasos para crear cada servidor por separado.

  1. Inicie sesión en el Panel de control de la nube.
  2. En la barra de navegación superior, haga clic en Seleccionar un producto luego Nube de Rackspace .
  3. Seleccione Servidores luego Servidores en la Nube .
  4. Haga clic en Crear servidor .
  5. Nombra los servidores para que puedas identificarlos fácilmente durante la configuración.
  6. Seleccione la imagen base de Centos 6.
  7. Seleccione la configuración de RAM (tipo) adecuada para los requisitos de su base de datos.
  8. Haga clic en Crear servidor .

Los comandos descritos en las siguientes secciones deben ser ejecutados por un usuario root o sudo group privilegiado. Cualquier cadena o valor especificado entre paréntesis debe reemplazarse con datos específicos de su configuración.

Instalar MySQL

Debe instalar el servidor mysql paquete en ambos servidores de nube CentOS.

  1. Antes de instalar MySQL, confirme que la base de datos del paquete esté actualizada ejecutando el siguiente comando:

    #yum update
    
  2. Instale MySQL y permita que se ejecute en el arranque automáticamente:

     #yum install mysql-server
    #chkconfig mysqld on
    
  3. Inicie el mysqld servicio:

    #service mysqld start
    
  4. Después del mysqld se ha iniciado el servicio, configure su contraseña de MySQL serverroot usando los siguientes comandos:

    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h web01 password 'new-password'
    

    Nota :Alternativamente, puede ejecutar el script de instalación segura empaquetado con la instalación de MySQL:

    # /usr/bin/mysql_secure_installation
    Enter current password for root (enter for none):
    ...
    Set root password? [Y/n] Y
    ...
    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
    
  5. Para permitir conexiones en el puerto 3306 (el mysqld puerto predeterminado), agregue una regla de puerto TCP 3306 con una inserción en el último número de línea en el RH-Firewall-1-INPUT cadena (en este caso, línea 10):

    # iptables -I RH-Firewall-1-INPUT 10 -p tcp --dport 3306 -j ACCEPT
    
  6. Guarde la configuración del cortafuegos:

    # service iptables save
    

Complete la siguiente sección para realizar cambios de configuración relevantes para habilitar la replicación.

Configurar replicación

Se requiere un usuario de MySQL en el servidor de origen (db01 ) que se usará para la replicación.

  1. Ejecute los siguientes comandos para configurar el usuario de MySQL, actualizando las entradas entre paréntesis con cadenas o valores que planea usar con su configuración:

    Nota: Es posible que no necesite crear el usuario en el siguiente código.

    # mysql -u root -p
    mysql> create user [replication_username]@'[private IP of db02]' identified by '[some password]';
    mysql> grant replication slave on *.* TO [replication_username]@'[private IP of db02]';
    mysql> flush privileges;
    mysql> quit
    
  2. Edite el /etc/my.cnf y agregue las siguientes entradas:

    bind-address = 0.0.0.0
    server-id = 1
    log-bin = mysql-bin
    binlog-ignore-db = "mysql"
    
  3. Una vez que haya terminado de actualizar /etc/my.cnf archivo, reinicie el mysqld servicio.

    #service mysqld restart
    

    Antes de iniciar la replicación, los datos en los servidores de origen y de réplica deben ser los mismos. Para lograr esta duplicación, descargue los datos de la fuente (db01 ) servidor y agréguelo a la réplica (db02 ) servidor.

  4. Utilice el siguiente comando para asegurarse de que nada pueda escribir en la base de datos de origen durante un volcado de la base de datos. También tenga en cuenta el nombre de archivo y la posición del registro binario porque necesita estos valores para completar la configuración de replicación en db02:

    # mysql -u root -p
    mysql> FLUSH TABLES WITH READ LOCK;
    mysql> SHOW MASTER STATUS;
    
    +------------------+--------------------------+------------------+
    | File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+--------------------------+------------------+
    | mysql-bin.000010 |        10 |              | mysql            |
    +------------------+--------------------------+------------------+
    1 row in set (0.00 sec)
    

    Nota 1: Registre el nombre de archivo y la posición del registro binario porque necesita estos valores para completar la configuración de replicación en db02 .

    Nota 2: Mantenga esta sesión abierta, ¡cerrarla libera el bloqueo!

  5. Realice un volcado de la base de datos utilizando mysqldump de la siguiente manera:

    # mysqldump -u root -p --databases [database-1] [database-2] ...  > /root/db_dump.sql
    
  6. Una vez que se haya completado el volcado de la base de datos, levante el bloqueo de lectura de la fuente (db01 ) escribiendo lo siguiente o saliendo de la sesión abierta:

    mysql> UNLOCK TABLES;
    
  7. Copie el archivo de volcado de la base de datos en el servidor de réplica para que pueda restaurarse con el siguiente comando:

    scp /root/db_dump.sql [private-IP-of-db02]:/root/
    
  8. En db02 , edite el /etc/my.cnf archivo y agregue las siguientes entradas:

    bind-address = 0.0.0.0
    server-id = 2
    master-host =  [private-IP-of-db01]
    master-user = [replication-username]
    master-password = [replication-password]
    master-connect-retry = 60
    
  9. Importe el db_dump.sql archivo copiado anteriormente y reinicie el servicio MySQL.

    # mysql -u root -p < /root/db_dump.sql
    # service mysqld restart
    
  10. Complete los pasos de replicación de la réplica:

    # mysql -u root -p
    mysql> SLAVE STOP;
    mysql> CHANGE MASTER TO MASTER_HOST='[private-IP-of-db01]',
    MASTER_USER='[replication-username]',
    MASTER_PASSWORD='[replication-password]',
    MASTER_LOG_FILE='[file-listed-on-master-status]',
    MASTER_LOG_POS=[log-position-listed-on-master-status];
    mysql> START SLAVE;
    mysql> SHOW SLAVE STATUS\G
    

    Nota: El Slave_IO_State El campo debe mostrar "Esperando a que el maestro envíe el evento". Si muestra "Conectando al maestro", verifique su archivo de registro de MySQL. De forma predeterminada, es /var/log/mysqld.log , pero podría estar configurado de manera diferente en su sistema. Como siempre, /etc/my.cnf define la ubicación de su archivo de registro.

Prueba de replicación

Para probar la configuración de replicación, cree una nueva base de datos y una tabla asociada en db01 e inserte datos para confirmar que los cambios se reflejan en db02 . En el siguiente ejemplo, la nueva base de datos se llama testing y la nueva tabla se denomina usuarios :

# mysql -u root -p
mysql> create database testing;
mysql> use testing
mysql> create table users(id int not null auto_increment, primary key(id), username varchar(30) not null);
mysql> insert into users (username) values ('foo');
mysql> insert into users (username) values ('bar');
mysql> exit

Debería ver los cambios en db02 inmediatamente.


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

  2. Cómo configurar MySQL Cluster en Ubuntu

  3. Configurar la replicación de la fuente de MySQL

  4. Configurar la replicación fuente-fuente de MySQL

  5. ¿Cuál es el propósito de "usuario del sistema" en MySQL Replication

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

Cómo configurar la replicación maestro-esclavo de MySQL en CentOS 7

Replicación de MySQL 8 maestro-esclavo en Ubuntu 20.04

¿Cómo configurar el acceso remoto a MySQL en cPanel?

Cómo configurar la replicación maestro-esclavo de MariaDB en CentOS 7

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