Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo configurar una copia de seguridad activa en dos máquinas de la base de datos MySQL

Cómo configurar una copia de seguridad activa en dos máquinas de la base de datos MySQL

1. La base de datos MySQL no tiene un mecanismo de copia de seguridad incremental. Cuando la cantidad de datos es demasiado grande, la copia de seguridad es un gran problema. Afortunadamente, la base de datos mysql proporciona un mecanismo de respaldo maestro-esclavo, que en realidad escribe todos los datos de la base de datos maestra en la base de datos de respaldo al mismo tiempo. Implementar copia de seguridad en caliente de la base de datos MySQL. 2. Para realizar una copia de seguridad en caliente de doble máquina, primero debe comprender la base de datos maestro-esclavo

1. La base de datos MySQL no tiene un mecanismo de copia de seguridad incremental cuando la cantidad de datos es demasiado grande, la copia de seguridad es un método. gran problema. Afortunadamente, la base de datos mysql proporciona un mecanismo de respaldo maestro-esclavo, que en realidad escribe todos los datos de la base de datos maestra en la base de datos de respaldo al mismo tiempo. Implementar copia de seguridad en caliente de la base de datos MySQL.

2. Si desea implementar una copia de seguridad en caliente en dos máquinas, primero debe comprender los requisitos para las versiones del servidor de base de datos maestro-esclavo. Para lograr el modo de espera activo, la versión de MySQL debe ser superior a 3.2. Otro principio básico es que la versión de la base de datos esclava puede ser superior a la versión de la base de datos del servidor maestro, pero no puede ser inferior a la versión de la base de datos del servidor maestro.

3. Configure el servidor de base de datos principal:

a. Primero verifique si la versión del servidor principal admite el modo de espera activo. Luego verifique si la configuración del bloque de configuración mysqld en my.cnf (tipo Unix) o my.ini (Windows) tiene log-bin (registro de cambios de la base de datos), porque el mecanismo de replicación de mysql es un mecanismo de replicación basado en registros. , el servidor principal debe admitir registros de cambios. Luego configure la base de datos en la que se debe escribir el registro o la base de datos donde no se debe escribir el registro. De esta manera sólo los cambios en la base de datos que le interesan se escriben en el registro de la base de datos.

server-id=1 //La identificación de la base de datos debe ser 1 de forma predeterminada y no es necesario cambiarla

log-bin=log_name //El nombre de la base de datos. archivo de registro, aquí puede especificar el registro. Si no se configuran otros directorios, un nombre de registro del nombre de host predeterminado

binlog-do-db=db_name //Base de datos para registrar registros

binlog-ignore-db=db_name // Bases de datos que no registran registros

Si hay varias bases de datos arriba, use "," para separarlas y luego configure la cuenta de usuario para sincronizar la base de datos

mysqlgt; CONCEDER ESCLAVO DE REPLICACIÓN EN *.*

-gt; A 'repl'@'.mydomain.com' IDENTIFICADO POR 'slavepass'

Para versiones anteriores a 4.0.2, debido a que la REPLICACIÓN no es compatible, use la siguiente declaración. Implemente esta función

mysqlgt; GRANT FILE ON *.*

-gt; '.midominio.com' IDENTIFICADO POR 'slavepass';

Reinicie la base de datos después de configurar el archivo de configuración del servidor principal

b. Bloquee la base de datos existente y haga una copia de seguridad de los datos actuales.

Bloquear la base de datos

mysqlgt; FLUSH TABLAS CON READ LOCK;

Hay dos formas de hacer una copia de seguridad de la base de datos. Una es ingresar directamente al directorio de datos. de mysql y empaquete la carpeta que necesita para hacer una copia de seguridad de la base de datos. El segundo es usar mysqldump para hacer una copia de seguridad de la base de datos. Pero debe agregar el parámetro "--master-data". hacer una copia de seguridad de la base de datos

c. Verificar el estado del servidor maestro

mysqlgt; mostrar el estado del maestroG

---------- ----- ---------- --------------- ---- -------------

| Archivo | Posición | Binlog_Do_DB |

------------- ---------- ------- ------- ------------------

| mysql-bin.003 | prueba | >

--------------- ---------- -- ------------ ------- -----------

Registre los valores de los elementos Archivo y Posición para su uso posterior.

d. Luego active el bloqueo de la base de datos

mysqlgt; UNLOCK TABLES;

4. a. Primero configure el archivo de configuración de la base de datos

server-id=n //Establezca la identificación de la base de datos. El servidor maestro predeterminado es 1, que se puede configurar de manera casual, pero si hay varios servidores esclavos, no puede. repetirse.

master-host=db-master.mycompany.com //La dirección IP o nombre de dominio del servidor maestro

master-port=3306 //El número de puerto del maestro base de datos

master-user=pertinax //Usuario para sincronizar la base de datos

master-password=freitag //Contraseña para sincronizar la base de datos

master-connect-retry= 60 //Si desde El servidor encontró que el servidor principal estaba desconectado y la diferencia horaria entre la reconexión

report-host=db-slave.mycompany.com //Reportar el servidor incorrecto

b. Haga una copia de seguridad del servidor de base de datos principal esclavo. Importe la base de datos resultante al servidor esclavo.

c. Luego inicie el servidor de base de datos esclavo si no se agrega el parámetro "--skip-slave-start". al comenzar, ingresará mysql

mysqlgt; Slave Stop; // Detendrá el servicio esclavo

d. Establece varios parámetros del servidor maestro

mysqlgt; MASTER TO

- gt; MASTER_HOST='master_host_name', //Dirección IP del servidor principal

-gt; MASTER_USER='replication_user_name', //Usuario para sincronizar la base de datos

-gt; MASTER_PASSWORD=' replication_password', //La contraseña para la base de datos de sincronización

-gt; MASTER_LOG_FILE='recorded_log_file_name', //El nombre del archivo del registro binario del servidor principal , los parámetros que deben recordarse previamente

-gt ; MASTER_LOG_POS=recorded_log_position; // La posición inicial del archivo de registro (los parámetros que deben recordarse previamente)

e. hilo para sincronizar la base de datos

mysqlgt; inicio esclavo;

Verifique el estado de sincronización de la base de datos. Si la sincronización puede ser exitosa, ¡felicidades!

Verifique el estado de los servidores maestro y esclavo

mysqlgt; MOSTRAR P

Nota: Para artículos más interesantes, Preste atención a la sección Tutorial de programación de Sanlian.