GNU/Linux >> Tutoriales Linux >  >> Linux

Configurar la replicación fuente-fuente de MySQL

Nota :Rackspace Support no puede ayudar con las configuraciones de replicación de origen a origen debido a la complejidad de la configuración y la probabilidad de error. Como alternativa a la replicación fuente-fuente directa de MySQL, considere nuestro servicio de bases de datos en la nube o un motor de replicación como Tungsten para una replicación de datos más confiable entre instancias de bases de datos.

Replicación fuente-fuente de MySQL

Este artículo le muestra cómo configurar la replicación de clústeres:replicación bidireccional y circular entre dos servidores en la nube. La replicación de datos fuente-fuente permite que los datos replicados, almacenados en varias computadoras, sean actualizados por cualquier miembro contribuyente autorizado del grupo. Esto permite una colaboración más abierta que la replicación de réplicas de fuentes, donde cualquier cambio necesario identificado por un miembro del grupo debe enviarse a la fuente designada del nodo.

Este tutorial utiliza el sistema operativo Debian 5 (Lenny), creado a partir de la imagen base de RackspaceCloud.

Resumen de configuración

Hay dos servidores en la nube, debian501 y debian502 , en este ejercicio. Ambos servidores tienen dos direcciones IP (una pública y otra privada). El ejercicio configura la replicación para que se realice a través de la interfaz de IP privada para que no incurra en cargos por ancho de banda.

Creando los Servidores en la Nube

Debe crear dos servidores en la nube de Linux utilizando la imagen base de Debian 5. 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 Seleccione un producto> Rackspace Cloud .
  3. Seleccione Servidores> Servidores en la nube .
  4. Haga clic en Crear servidor .
  5. Nombra los servidores para que puedas identificarlos fácilmente durante la configuración. En este ejercicio se denominan debian501 y debian502.
  6. Seleccione la imagen de Debian.
  7. Seleccione la configuración de RAM (tipo) que cumpla con los requisitos de su base de datos.
  8. Haga clic en Crear servidor .

Los siguientes comandos del servidor deben ejecutarse como un usuario privilegiado (raíz, grupo sudo).

Instalando MySQL

Primero necesitamos instalar MySQL en ambos servidores Debian Cloud. Como siempre, antes de instalar cualquier paquete, debemos asegurarnos de que nuestra lista de paquetes esté actualizada y que nuestra configuración regional/idioma esté configurada correctamente.

  • Actualice la base de datos del paquete:

      # aptitude update
    
  • Instalar configuraciones regionales:

      # aptitude install locales
    
      # dpkg-reconfigure locales
    
  • Los dpkg-reconfigure locales El comando abre una ventana de configuración de locales donde puede elegir los locales para su sistema dependiendo de su país y región. En este caso, elija en\_GB.UTF-8 .

  • Ahora, ejecute los siguientes comandos para instalar MySQL:

      # aptitude install mysql-server mysql-client libmysqlclient15-dev
    

Configuración de la replicación

Una vez que el servidor mysql El paquete se ha instalado correctamente, comience a configurar cada uno de los nodos de MySQL para habilitar la replicación entre ellos.

Debe crear la base de datos que se replicará, así como el nombre de usuario y la contraseña de replicación que se usarán con ella. Puede usar los comandos que se describen a continuación para configurarlos, recordando cambiar todas las cadenas/valores entre paréntesis para que se apliquen a su configuración específica.

  • Primero, en debian501, inicie sesión en la consola mysql (utilizando la contraseña raíz de mysql que configuró durante la instalación de MySQL).

      # mysql -u root -p
      mysql>
    
  • Ahora, cree el usuario de replicación, que se utiliza para sincronizar los cambios.

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian502]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • Haga lo mismo para debian502.

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian501]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • De vuelta en debian501, edite /etc/mysql/my.cnf e inserte, actualice o descomente las siguientes entradas:

      bind-address = 0.0.0.0
      server-id = 1
      log-bin = /var/log/mysql/var/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 1
      master-host = [private IP address of debian502]
      master-user = [replication username]
      master-password = [replication password]
      replicate-do-db = <database name to be replicated>
    
  • Repita los pasos en el servidor debian502.

      bind-address = 0.0.0.0
      server-id = 2
      log-bin = /var/log/mysql/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 2
      master-host =  [private IP address of debian501]
      master-user = [replication username]
      master-password = [replication user password]
      replicate-do-db = [database name to be replicated]
    
  • Ahora, reinicie ambas bases de datos. Si falla el reinicio del servicio en cualquiera de los servidores, verifique /var/log/mysql/error.log archivo para cualquier error. Actualice la configuración y verifique que no haya errores tipográficos, y así sucesivamente.

Probando los escenarios

Para probar su configuración de replicación, cree la base de datos especificada en la sección de configuración anterior. También cree una tabla de prueba en uno de los nodos y observe los archivos de registro en /var/log/mysql directorio. Tenga en cuenta que todos los cambios en la base de datos deben replicarse en su otro servidor inmediatamente.

  mysql> create database [your-db-name];
  mysql> use [your-db-name]
  mysql> create table foo (id int not null, username varchar(30) not null);
  mysql> insert into foo values (1, 'bar');
  • Como prueba adicional, detenga el servicio MySQL en debian502, realice cambios en la base de datos en el servidor debian501 y luego reinicie el servicio MySQL en debian502. El servicio MySQL de debian502 debería sincronizar todos los cambios nuevos automáticamente.

  • También debe considerar cambiar los valores predeterminados de rotación de registros binarios (expire_logs_days y max_binlog_size ) en el /etc/mysql/my.cnf porque, de forma predeterminada, todos los registros binarios se conservan durante 10 días. Si tiene un alto número de transacciones en su aplicación de base de datos, puede causar un uso significativo del espacio del disco duro en los registros. Por lo tanto, considere cambiar esos valores para que coincidan con las políticas de copia de seguridad de su servidor. Por ejemplo, si tiene copias de seguridad diarias configuradas de su nodo MySQL, no necesita mantener 10 días de registros binarios.


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

  2. Cómo configurar la replicación multimaestro de MySQL en Oracle Linux

  3. Configurar el servidor MySQL en el sistema operativo Ubuntu

  4. Configurar la replicación de la 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 CentOS 7

Cómo configurar la replicación maestro-esclavo de MySQL (MariaDB) en Debian 10

Configurar la replicación multimaestro de OpenLDAP en Linux

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

Cómo instalar y configurar MySQL en Ubuntu 18.04

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