replicación maestro-esclavo mariadb (la base de datos maestra ya tiene datos)

Una determinada base de datos en el entorno de producción de la empresa debe realizar la replicación maestro-esclavo sobre la base de los datos existentes en la base de datos maestra. Cuando se trata del entorno de producción, debe tener cuidado.

1. Instale la base de datos esclava

La biblioteca principal ya existe, la IP de la intranet es 10.200.9.183 y la biblioteca esclava está lista para construirse el 10.200.9.188.

(1) Descargue y descomprima el paquete de compresión de la base de datos

La versión de la base de datos utilizada es mariadb-10.0.33, método de descarga:

wget https://downloads.mariadb.com/MariaDB/mariadb-10.0.33/bintar-linux-x86_64/mariadb-10.0.33-linux-x86_64.tar.gz

Descomprima el paquete comprimido de la base de datos:

tar  -xzvf  mariadb-10.0.33-linux-x86_64.tar.gz 

Mover a la ubicación especificada:

mv mariadb-10.0.33-linux-x86_64 /data/mariadb-10.0.33

(2) Cambiar configuración

Haga una copia de seguridad del archivo de configuración de la base de datos predeterminada en / etc:

mv /etc/my.cnf  /etc/my.cnf.bak

Copie la plantilla del archivo de configuración en la base de datos en / etc /

cp support-files/my-innodb-heavy-4G.cnf  /etc/my.cnf

Editar archivo de configuración

vim /etc/my.cnf

Cambiar lo siguiente

basedir=/data/mariadb-10.0.33
datadir=/data/mariadb-10.0.33/data

(3) Cree un usuario de mysql y cambie los permisos

Crea un usuario de mysql:

useradd -s /sbin/nologin -M mysql

Cambie el usuario y el grupo de todos los archivos mysql a mysql

chown -R mysql:mysql /data/mariadb-10.0.33

Especifique el usuario y la ruta del archivo para inicializar mysql

./scripts/mysql_install_db  --basedir=/data/mariadb-10.0.33 --datadir=/data/mariadb-10.0.33/data/ --user=mysql

(4) Configure el script de inicio para iniciar mysql

MariaDB proporciona un script de inicio. En el directorio de archivos de soporte del directorio de instalación, el nombre del archivo es mysql.server y cópielo en /etc/init.d

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

Iniciar mysql

/etc/init.d/mysqld start

o

service mysqld start

Configuración de inicio automático de inicio de mysql:

chkconfig --add mysqld
chkconfig mysqld on

Verifique si mysql se agrega a la lista de inicio:

chkconfig --list

Como se muestra a continuación, la adición es exitosa
Inserte la descripción de la imagen aquí

(5) autorización de usuario root de mysql:

Iniciar sesión en mysql

/data/mariadb-10.0.33/bin/mysql -u root

Autorización:

grant all privileges on *.* to 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'localhost' identified by '123456';
grant all privileges on *.* to 'root'@'127.0.0.1' identified by '123456';

Actualizar permisos:

flush privileges;

(6) Agregue el comando mysql a la variable de entorno

Edite el archivo / etc / profile:

vim /etc/profile

Agregue lo siguiente a la última línea

export PATH=$PATH:/data/mariadb-10.0.33/bin

Actualizar variables de entorno

source /etc/profile

2. Configuración de la biblioteca principal

(1) Edite el archivo de configuración de la biblioteca principal:

vim /etc/my.cnf

Configure el nombre del archivo binlog:

log-bin = mysql-bin

Establezca el ID del servidor (el ID del servidor debe ser único y no se puede duplicar desde la biblioteca):

server-id = 1

Configure la sincronización maestro-esclavo para sincronizar solo una determinada base de datos

binlog-do-db = newenergy

Establezca el tiempo de vencimiento del binlog:

expire_logs_days = 2

Establecer formato de registro

binlog_format = mixed
  • declaración guarda la declaración SQL
  • fila guarda los datos del registro de impacto
  • Se
    recomienda configurar la combinación de los dos primeros en modo mxed

(2) Cree una cuenta con permisos de copia

La IP es de la IP de la biblioteca

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@' 10.200.9.188' IDENTIFIED BY 'replpass';

Actualizar permisos

FLUSH PRIVILEGES;

Reiniciar la base de datos

service mysqld restart

4. Conjunto de la biblioteca

(1) Edite el archivo de configuración de la biblioteca

vim /etc/my.cnf

Establecer registro de relés registro de relés

relay-log = relay-bin

Establezca server-id (server-id debe ser único y no puede entrar en conflicto con la biblioteca principal y otras bibliotecas esclavas):

server-id = 2

(2) Reinicie el
servicio de base de datos mysqld restart

5. Sincronice la base de datos principal de la base de datos.

(1) Bloquee la biblioteca principal para que solo tenga permisos de solo lectura.

flush table with read lock;

(2) Verifique el estado del maestro y recuerde el punto de respaldo

Inserte la descripción de la imagen aquí
El contenido del cuadro rojo debe mantenerse y registrarse, y la copia de seguridad se inicia desde este lugar.

(3) Haga una copia de seguridad de la base de datos principal

Debido a que solo se sincroniza una base de datos, es suficiente realizar una copia de seguridad de esta.

mysqldump -uroot -p123456 newenergy > newenergy.sql

(4) Desbloquear mesa

unlock tables;

(5) Importe la copia de seguridad de la biblioteca

mysql -uroot -p123456
source newenergy.sql

(6) De la biblioteca a la biblioteca principal

Se recomienda utilizar la sentencia SQL "CHANGE MASTER TO" para modificar la configuración correspondiente. Las principales modificaciones son:

  • master_host: IP de host maestro
  • master_port: puerto de la base de datos maestra
  • master_user: el nombre de usuario utilizado por el esclavo para conectarse al maestro para la autenticación
  • master_password: la contraseña utilizada por el esclavo para conectarse al maestro para la autenticación
  • master_log_file: el nombre del registro binario maestro
  • master_log_pos: la posición inicial del registro binario donde el esclavo comienza a replicarse

El contenido de configuración de los dos últimos parámetros master_log_file y master_log_pos son los contenidos de Archivo y Posición que previamente se requería que se mantuvieran durante el estado del maestro de la demostración.
Inicie sesión en la base de datos esclava

mysql -u root -p123456

Conéctese a la biblioteca principal

 CHANGE MASTER TO MASTER_HOST='10.200.9.183',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='mysql-bin.000002',master_port=3307,MASTER_LOG_POS=154;

(7) Inicie el esclavo

start slave;

(8) Ver el estado del esclavo

show slava status\G;

Como se muestra a continuación, tanto Slave_SQL_Running como Slave_IO_Running muestran Sí para demostrar que el esclavo se conectó con éxito al maestro.
Inserte la descripción de la imagen aquí

(9) Solución de problemas

Si Slave_IO_Running no muestra sí, Last_IO_Error mostrará la causa del error, como se muestra en la figura:
Inserte la descripción de la imagen aquíAquí, el ID de servidor de la base de datos maestro-esclavo del nombre de la tabla está duplicado y uno de los ID de servidor debe ser modificado y reiniciado.
Inserte la descripción de la imagen aquíEsto significa que no se puede conectar a la base de datos principal, lo que puede deberse a la falla del puerto de la base de datos principal o la IP inalcanzable. Compruebe si la biblioteca secundaria se puede conectar a la biblioteca maestra.

6. Verifique si la sincronización es exitosa

Cree una tabla o agregue un campo en la base de datos newenergy de la biblioteca principal, y podrá verlo en la biblioteca esclava para indicar que la sincronización se realizó correctamente. También puede ver el retraso de sincronización al ver el valor de Seconds_Behind_Master.

Supongo que te gusta

Origin blog.csdn.net/xiguashixiaoyu/article/details/107062462
Recomendado
Clasificación