Simulación del entorno: estructura maestro-esclavo, falla de la biblioteca maestra, actualización de la biblioteca esclava a la biblioteca maestra, nuevo maestro escribe datos, luego recuperación maestro-esclavo, importa con éxito los datos escritos por el nuevo maestro durante la falla de la biblioteca principal
Despliegue del entorno
- Versión del sistema
CentOS Linux, versión 7.5.1804 (Core) - Versión de Kernel
3.10.0-862.el7.x86_64 - Cortafuegos y selinux cerrados
- Asignación de roles
192.168.153.179 maestro base de datos maestro
192.168.153.178 esclavo base de datos esclavo
Iniciar simulación
Primero, la fundación del entorno maestro-esclavo
esclavo de:
maestro maestro:
Simular el reinicio por falla de la biblioteca principal
vim /etc/my.cnf
systemctl restart mariadb
esclavo de:
vim /etc/my.cnf
systemctl restart mariadb
Cerrar restablecer esclavo
MariaDB [(none)]> stop slave;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> reset slave;
Query OK, 0 rows affected (0.01 sec)
Crear biblioteca e insertar datos
MariaDB [(none)]> create database ceshi charset utf8;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use ceshi;
Database changed
MariaDB [ceshi]> create table a(id int(4),name char(12));
Query OK, 0 rows affected (0.01 sec)
MariaDB [ceshi]> insert a values(1,'测试');
Query OK, 1 row affected (0.00 sec)
MariaDB [ceshi]> select * from a;
+------+--------+
| id | name |
+------+--------+
| 1 | 测试 |
+------+--------+
1 row in set (0.00 sec)
Ver la posición inicial antes de insertar datos y la posición después de insertar datos
MariaDB [ceshi]> show master status ;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 633 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Luego restaure el maestro y el esclavo y verifique si nuestra biblioteca maestra tiene los datos escritos cuando el nuevo maestro asumió el control
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
esclavo de:
Importe los datos al archivo sql de acuerdo con el archivo de registro "mysql-bin.000004" de nuestro nuevo maestro antes y después de insertar los datos, y luego transfiera el archivo a nuestro maestro maestro
Exportar datos a un archivo sql
mysqlbinlog mysql-bin.000004 --start-position=245 --stop-position=6
33 > /root/mysql-bin.sql
Transferir al servidor maestro
maestro maestro:
Importar datos a la biblioteca
MariaDB [(none)]> source /root/mysql-bin.sql
Importado exitosamente
MariaDB [ceshi]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ceshi |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [ceshi]> use ceshi;
Database changed
MariaDB [ceshi]> select * from a;
+------+--------+
| id | name |
+------+--------+
| 1 | 测试 |
+------+--------+
1 row in set (0.00 sec)
Datos importados con éxito