- Эксперимент MySQL master-slave ※※※※※※
- Сцена господин-раб:
- Непосредственно построить архитектуру ведущий-ведомый для сценариев ведущий-ведомый
- В сценарии ведущий-ведомый есть только одна ведущая служба, а затем необходимо создать ведомый сервер.
- Полусинхронная репликация mysql
- механизм синхронизации mysql
- полусинхронная репликация mysql
- Реализация полусинхронной репликации mysql
- Команды управления плагином
- Полусинхронные связанные переменные
- Резюме полусинхронной репликации mysql
- фильтр репликации mysql
- Девять. Двоичная установка mysql5
- Настроить главный сервер
- Конфигурация
- Окружение
- Конфигурация узла 2 (192. 168. 206)
- 3.1 Добавить конфигурацию синхронизации данных
- 3.2 Мастер конфигурация
- 3.3 Конфигурация ведомого
- 3.4, запустить Slave
- Многопоточность, мониторинг и обслуживание репликации MySQL
- Начало цепочки
- Мониторинг и обслуживание репликации
- Настроить синхронизацию главный-подчиненный
- Настроить подчиненный сервер
Эксперимент MySQL master-slave ※※※※※※
Сцена господин-раб:
1. Сценарий MySQL master-slave:
- ① Когда предприятие впервые создает базу данных, оно напрямую строит структуру главный-подчиненный.
- ② В начале у предприятия есть главный сервер, но ему необходимо построить архитектуру главный-подчиненный из-за следующих бизнес-требований.
Непосредственно построить архитектуру ведущий-ведомый для сценариев ведущий-ведомый
【1. Экспериментальное планирование:】
- Непосредственно создайте главный-подчиненный. Поскольку вначале в базе данных главного сервера нет данных, позиция двоичной синхронизации — 245 (исходная позиция по умолчанию — mariadb-bin.000001)
- master ip:192.168.38.17
- slave ip:192.168.38.27
【2. Подготовка к эксперименту】
- master:# yum install -y mariadb-server
- slave:# yum install -y mariadb-server
【3. главная конфигурация】
1) Конфигурация файла конфигурации
# vim /etc/my.cnf
[mysqld]
# Master-slave replication configuration
innodb-file-per-table
log-bin
server-id=17 2) Запустите службу и выполните сценарий усиления безопасности.
# systemctl start mariadb
# mysql_secure_installation 3) Создайте учетную запись синхронизации в базе данных master:
# mysql -p123456
> grant replication slave on *.* to [email protected]'192.168.38.%' identified by 'centos';1) Конфигурация файла конфигурации
# vim /etc/my.cnf
[mysqld]
# Master-slave replication configuration
server-id=27 Прокомментированы следующие параметры, которые не требуют обязательной настройки, рекомендуется настраивать, только server-id является обязательным
innodb-file-per-table # log-bin (если учитывается загрузка ведущего устройства и необходимо выполнить резервное копирование ведомого устройства, необходимо включить двоичный журнал)
# read-only
# relay_log=relay-log
# relay_log_index=relay-log.index 2) Запустите службу
# systemctl start mariadb 3) Подчиненное устройство использует учетную запись пользователя с разрешениями репликации для подключения к главному серверу и запуска потока репликации > помочь сменить мастер на (команда поможет получить или не запомнить команду)
>CHANGE MASTER TO MASTER_HOST='192.168.38.17', masterip MASTER_USER = 'repluser', пользователь репликации, созданный мастером MASTER_PASSWORD = 'centos', скопируйте пароль пользователя MASTER_PORT = 3306, номер главного порта MASTER_LOG_FILE = 'mariadb-bin.000001', имя главного двоичного файла MASTER_LOG_POS = 245, синхронизировать с магической позиции двоичного файла MASTER_CONNECT_RETRY=10; Удобно копировать и использовать позже:
> CHANGE MASTER TO MASTER_HOST='192.168.38.17', MASTER_USER='repluser', MASTER_PASSWORD='centos', MASTER_PORT=3306, MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245, MASTER_CONNECT_RETRY=10; После выполнения change master на файлы журнала реле relay-log.000001, relay-log.index, relay-log.info появляются в каталоге datadir.
# ll /var/lib/mysql/relay-log.* ② Запустить поток репликации:
> START SLAVE [IO_THREAD|SQL_THREAD];- Непосредственно проверьте, синхронизирован ли корневой пароль мастера
- Измените основную базу данных, синхронизируется ли ведомое устройство
Создание базы данных, таблицы и записи в основной базе данных
> CREATE DATABASE testdb DEFAULT CHARACTER SET utf8;
> use testdb
> create table students ( id tinyint(5) unsigned not null auto_increment, name varchar(20) not null , age tinyint(5) unsigned not null, gender enum('F','M') not null default 'M', primary key (id) );
> insert students values (1,'Shi Zhongyu',22,'M'),(2,'Shi Potian',22,'M'),(3,'Xie Yanke',53,'M'),(4,'Ding Dian',32,'M'),(5,'Yu Yutong',26,'M'); Запросить, синхронизирован ли он в ведомом устройстве
> select * from testdb.students;- Seconds_Behind_Master: 0 Ключевые показатели синхронизации master-slave
указывает, как долго существует разница во времени между ведомым и ведущим
> show processlist;
> show slave status\GВ сценарии ведущий-ведомый есть только одна ведущая служба, а затем необходимо создать ведомый сервер.
【1. Экспериментальное планирование:】
- В этом эксперименте можно использовать описанный выше эксперимент, поскольку база данных на главном сервере изменилась, вам нужно только восстановить моментальный снимок hostB, а затем сделать полную резервную копию данных, уже находящихся в базе данных A, и отправить их на hostB. Во время этого процесса все еще предоставляет услуги A. Необходимо объединить расположение двоичного журнала для синхронизации.
- master ip:192.168.38.17
- slave ip:192.168.38.27
【2. Подготовка к эксперименту】
- slave hostB:# yum install -y mariadb-server
- В производственной среде такое полное резервное копирование должно выполняться каждый день, вы можете напрямую сгенерировать данные полной резервной копии на хосте B.
- Экспериментируйте, чтобы вручную создать полную резервную копию
# mysqldump -uroot -p123456 -A -F --single-transaction --master-data=1 > fullbak.sql Передайте файл резервной копии на hostB:
# scp fullbak.sql 192.168.38.27:/data/- HostB должен сначала изменить файл конфигурации, чтобы обеспечить согласованность некоторых параметров данных системы установки.
①Установочная конфигурация:
# vim /etc/my.cnf
[mysqld]
server-id=27
innodb-file-per-table
log-bin
# systemctl start mariadb
# mysql_secure_installation ②Восстановить в hostB
# mysql -p123456 Поскольку двоичный журнал включен, обычно нет необходимости записывать двоичный журнал при восстановлении.
> show variables like 'sql_log_bin'; > установить sql_log_bin = 0; временно закрыть двоичный журнал > источник /data/fullbak.sql восстановить резервную копию > set sql_log_bin = 1; Включить двоичный журнал после восстановления резервной копии> insert students(name,age)values('Tom',18); Затем hostB указывает, что расположение двоичного журнала CHANGE MASTER TO должно основываться на расположении файла резервной копии.CHANGE MASTER TO MASTER_LOG_FILE='mariadb-bin.000004', MASTER_LOG_POS=245; Видимый двоичный журнал файла резервной копии и его текущее местоположение (размер файла)
>CHANGE MASTER TO MASTER_HOST='192.168.38.17', MASTER_USER='repluser', MASTER_PASSWORD='centos', MASTER_PORT=3306, MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245, MASTER_CONNECT_RETRY=10;
> start slave; > показать статус ведомого \ данные G синхронизированы- Завершите синхронизацию и смените мастер напрямую на
Восстановите прямо в команде и напрямую укажите метод изменения мастера на:
#vim /data/fullbak.sql
CHANGE MASTER TO .... Вставьте соответствующую информацию
.....
MASTER_LOG_FILE='mariadb-bin.000004',
MASTER_LOG_POS=245;
# mysql < /data/fullbak.sql Наконец, запустите поток на hostB:
> start slave;Полусинхронная репликация mysql
механизм синхронизации mysql
Механизм синхронной репликации по умолчанию в системе является асинхронным, и асинхронный может вызвать потерю данных ~~
Полусинхронизация: когда пользователь обновляет базу данных, ведущему устройству необходимо дождаться успешной синхронизации хотя бы одного подчиненного узла, прежде чем вернуть сообщение об успешном обновлении пользователя. Или дождитесь истечения времени ожидания синхронизации ведомого устройства, прежде чем успешно вернуть обновление данных пользователя.
Однако, если полусинхронизация может быть медленной из-за сетевых проблем, решение на данном этапе состоит в разработке времени ожидания.После истечения времени ожидания, если ведомое устройство не синхронизировано, также будет возвращено успешное обновление пользователя.
** Примечание. ** В среде генерации обычно используется механизм полусинхронизации, который может не только улучшить взаимодействие с пользователем, но и гарантировать наличие хотя бы одной резервной копии данных.
полусинхронная репликация mysql
- Чтобы добиться полусинхронной репликации, вам необходимо установить соответствующие плагины на главном и подчиненном узлах соответственно.Плагины устанавливаются по умолчанию при установке служебных файлов базы данных.
# rpm -ql mariadb-server|grep semisync
/usr/lib64/mysql/plugin/semisync_master.so
/usr/lib64/mysql/plugin/semisync_slave.soРеализация полусинхронной репликации mysql
- master ip:192.168.38.17
- slave1 ip:192.168.38.27
- slave2 ip:192.168.38.47
- Примечание: для упрощения эксперимента корневой пароль mysql пуст.
- master slave1 slave2 установить mariadb-server
- Архитектура ведущий-ведомый подробно не описывается, прямо напишите ключевые шаги для достижения
1、master
[mysqld]
innodb-file-per-table
server-id=17
log-bin rpl_semi_sync_master_enabled master включает полусинхронный плагин rpl_semi_sync_master_timeout = 3000 Время задержки ожидания составляет 3 секунды
>grant replication slave on *.* to [email protected]'192.168.38.%' identified by 'centos';slave1:
[mysqld]
innodb-file-per-table
server-id=27
log-bin
read-only rpl_semi_sync_slave_enabled slave включает полусинхронный плагин
> CHANGE MASTER TO MASTER_HOST='192.168.38.17', MASTER_USER='repluser', MASTER_PASSWORD='centos', MASTER_PORT=3306, MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245, MASTER_CONNECT_RETRY=10;
> start slave;slave2:
[mysqld]
innodb-file-per-table
server-id=47
log-bin
read-only rpl_semi_sync_slave_enabled slave включает полусинхронный плагин
> CHANGE MASTER TO MASTER_HOST='192.168.38.17', MASTER_USER='repluser', MASTER_PASSWORD='centos', MASTER_PORT=3306, MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245, MASTER_CONNECT_RETRY=10;
> start slave;master Установите плагин semisync_master.so
> install plugin rpl_semi_sync_master soname 'semisync_master.so'; Вновь установленный плагин временно действует:
> set global rpl_semi_sync_master_enabled=1;slave Установите плагин semisync_slave.so
> install plugin rpl_semi_sync_slave soname 'semisync_slave.so'; Вновь установленный плагин временно действует:
> set global rpl_semi_sync_slave_enabled=1;Команды управления плагином
- show plugins;
Просмотр подключаемых модулей в системе
- установить плагин Плагин с именем soname ‘install plugin’s .so file’
Установить плагин
Полусинхронные связанные переменные
1. Сервисные переменные
переменные главного сервера
> show global variables like '%semi%';
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled | OFF |
| rpl_semi_sync_master_timeout | 10000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_no_slave | ON |
+------------------------------------+-------+rpl_semi_sync_master_enabled: не запускается после установки плагина по умолчанию
Для постоянной активации необходимо записать соответствующий файл конфигурации.rpl_semi_sync_master_timeout: продолжительность тайм-аута 10000 мс = 10 с в мс
переменные подчиненного сервера
> show global variables like '%semi%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled | OFF |
| rpl_semi_sync_slave_trace_level | 32 |
+---------------------------------+-------+2. Переменные состояния
> show global status like '%semi%';
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients | 0 |
| Rpl_semi_sync_master_net_avg_wait_time | 0 |
| Rpl_semi_sync_master_net_wait_time | 0 |
| Rpl_semi_sync_master_net_waits | 0 |
| Rpl_semi_sync_master_no_times | 0 |
| Rpl_semi_sync_master_no_tx | 0 |
| Rpl_semi_sync_master_status | ON |
| Rpl_semi_sync_master_timefunc_failures | 0 |
| Rpl_semi_sync_master_tx_avg_wait_time | 0 |
| Rpl_semi_sync_master_tx_wait_time | 0 |
| Rpl_semi_sync_master_tx_waits | 0 |
| Rpl_semi_sync_master_wait_pos_backtraverse | 0 |
| Rpl_semi_sync_master_wait_sessions | 0 |
| Rpl_semi_sync_master_yes_tx | 0 |
+--------------------------------------------+-------+Резюме полусинхронной репликации mysql
- 1. Он может гарантировать, что у пользователя есть хотя бы одна резервная копия для операции обновления базы данных.
- 2. Проблема потери данных, вызванная простоем мастера во время асинхронной репликации, может быть в определенной степени предотвращена.
- 3. Но когда сеть не соответствует периоду тайм-аута и ведомое устройство не синхронизировало основные данные, простой ведущего устройства все еще может вызвать потерю данных.
- 4. Полусинхронизация обычно включена в производственной среде.
фильтр репликации mysql
1. Сценарий использования: база данных MySQL имеет несколько баз данных, но не каждая база данных хочет реплицировать. Например, если главный узел имеет базу данных, объем данных невелик, и в обычное время есть несколько обновлений, и есть нет необходимости в репликации. В настоящее время вы можете использовать фильтр копирования, чтобы выбрать библиотеку характеристик для копирования.
2. Скопировать фильтр:
- Разрешить подчиненному узлу копировать только указанную базу данных или указанную таблицу указанной базы данных.
3. Как скопировать фильтр
(1) Вариант сервера: главный сервер записывает в двоичный журнал только события, относящиеся к конкретной базе данных.
Примечание. Этот элемент связан с binlog_format
См. https://mariadb.com/kb/en/library/mysqld-options/#-binlog ignore-dbbinlog-do-db = Белый список базы данных, для реализации нескольких баз данных требуется несколько строк
binlog-ignore-db = Черный список базы данных
Проблема: двоичное восстановление невозможно; не рекомендуется(2) Когда события в журнале реле с сервера SQL_THREAD считываются, только события, относящиеся к конкретной базе данных (конкретной таблице), считываются и применяются локально.
Проблема: приведет к потере сетевого и дискового ввода-вывода
4.Скопируйте переменные, связанные с фильтром, на сервер
- replicate_do_db = Укажите белый список библиотеки репликации
- replicate_ignore_db = назначенный черный список репликации базы данных
- replicate_do_table = Укажите белый список таблиц репликации
- replicate_ignore_table = Укажите черный список таблиц репликации
- replicate_wild_do_table = foo% .bar% поддерживает подстановочные знаки
- replicate_wild_ignore_table=
- Возможна реализация фильтрации репликации на ведомом узле
[mysqld] binlog-do-db = db1 добавить эту строку Указывает, что только db1 может создавать двоичные журналы. Не рекомендуется устанавливать эту опцию на главном устройстве.
> show master status;
+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000004 | 245 | db1 | |
+--------------------+----------+--------------+------------------+ Тогда только db1 может передавать двоичные журналы на мастере в это время, конечно, только db1 может достичь синхронизации[mysqld] binlog-do-db = db1 добавить эту строкуДевять. Двоичная установка mysql5
- Примечание: компиляция и установка mysql5.7 отличается от предыдущей двоичной установки mariadb.
【1. Подготовительный этап】
- Получите двоичное программное обеспечение mysql5.7
# tar xf mysql-5.7.27-el7-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# ln -s ./mysql-5.7.27-el7-x86_64/ mysql
# cd /usr/local/mysql Проверьте атрибуты файла, владелец и группа файла являются корневыми# groupadd -g 666 -o -r mysql
# useradd -s /sbin/nologin -r -d /data/mysql -g 666 -u 666 -c "mysql server" mysql
# getent passwd mysql# echo 'PATH=/usr/local/mysql/bin:$PATH' >/etc/profile.d/mysql.sh
# . /etc/profile.d/mysql.sh# mkdir /data/mysql/
# chown mysql.mysql /data/mysql/# yum install -y libaio
# mysqld --initialize --user=mysql --datadir=/data/mysql
Начальный пароль пользователя mysql @ local: frsdkWii <9W /- В настоящее время все файлы помещаются в каталог datadir.
- При размещении других соответствующих каталогов обращайте внимание на атрибуты файлов.
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock# cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld# service mysqld start
# mysql -p'frsdkWii<9W/' mysql> Для работы с базой данных необходимо изменить пароль
mysql> set password for [email protected]'localhost'=password('123456'); Это можно изменить, но есть предупреждение, этот способ изменения пароля будет исключен в будущих версиях.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+---------------+-----------+-------------------------------------------+
| root | localhost | *8DDA22DAC660080A5FDE0FF4B8D0C392B98AD12C |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec) Изменить пароль пользователя root @ localhost
mysql> update user set authentication_string=password('123456') where user='root'; ==> Поле пароля стало authentication_string ==> функция password () будет удалена в будущих версияхНастроить главный сервер
0. Сначала запишите некоторые данные в базу данных главного сервера (можно проигнорировать, как правило, на главном сервере будут существующие данные)
mysql> create database mydb;
Query OK, 1 row affected (0.00 sec)
mysql> use mydb
mysql> create table mytb(id int(3),name char(10));
Query OK, 0 rows affected (0.03 sec)
mysql> insert into mytb values (001,’myself’);
Query OK, 1 row affected (0.00 sec)
Обратите внимание, что указанные выше значения log-bin и server-id могут быть изменены на другие значения, если нет указанной выше конфигурации, сначала выключите сервер mysql, затем добавьте его, а затем перезапустите сервер.
2. Для создания пользователей каждому подчиненному серверу требуется имя учетной записи и пароль для подключения к главному серверу.Вы можете создать учетную запись для каждого подчиненного сервера или сделать так, чтобы все серверы использовали одну и ту же учетную запись. Далее необходимо создать учетную запись, которая может выполнять синхронизацию только главный-подчиненный для всех подчиненных серверов в том же IP-сегменте сети.
3. Получите информацию двоичного журнала и экспортируйте базу данных, шаги:
Сначала войдите в основную базу данных, затем обновите все таблицы и добавьте блокировку чтения в базу данных, чтобы предотвратить любые операции записи в базу данных.
mysql > flush tables with read lock;
Затем выполните следующую инструкцию, чтобы получить информацию о двоичном журнале
mysql > show master status;
1 row in set (0.00 sec)
Значение File — это имя файла бинарного журнала, который используется в настоящее время, а Position — это информация о местоположении в журнале (не нужно запутывать, что это означает). Помните эти два значения, которые будут использоваться при настройке подчиненного сервера ниже. .
Выберите один из следующих способов скопировать исходные данные:
Скопируйте файл данных главного сервера (весь каталог данных: / data / mysql) в каталог данных подчиненного сервера.Рекомендуется заархивировать и сжать его с помощью tar, а затем передать на подчиненный сервер для распаковки.
Используйте ссылку на команду:
Конечно, вы также можете использовать mysqldump
Используйте ссылку на команду:
mysqldump -uroot -p’123456′ —all-databases > /server/backup/mysql_bak.$(date +%F).sql
Если объем данных большой, его можно сжать примерно до одной трети исходного при экспорте.
Импорт с сервера базы данныхmysql -uroot -p’123456′ < /server/backup/mysql_bak.2015-07-01.sql
Отмените блокировку основной базы данных, и основная база данных сможет нормально читать и записывать данные. С этого момента измененные данные будут записываться в двоичный журнал. Данные, синхронизированные из базы данных, являются записью операции после этого.
mysql> UNLOCK TABLES;
Конфигурация
Ссылка перед настройкой«Установка и настройка MySQL5.7 (YUM)»Установите MySQL (обратите внимание, что эта статья демонстрирует версию 5.6, вам нужно изменить источник yum в статье до 5.6)
Окружение
Версия операционной системы: CentOS7 64-bit
Версия MySQL: mysql5.6.33
Узел 1IP: 192.168.1.205 Имя хоста: edu-mysql-01
Узел 2IP: 192.168.1.206 Имя хоста: edu-mysql-02
MySQL master-slave копия официального документа:http://dev.mysql.com/doc/refman/5.6/en/replication.html
Замечания:
1> Версия операционной системы и цифры главного и подчиненного серверов должны быть согласованы
2> Версии баз данных Master и Slave должны быть одинаковыми
3> Данные в базе данных Master и Slave должны быть согласованы
Конфигурация узла 2 (192. 168. 206)
3.1 Добавить конфигурацию синхронизации данных
> vim /etc/my.cnfserver_id
binlogmysql
edu
binlog_cache_sizeM
binlog_formatmixed
expire_logs_days
slave_skip_errors
relay_logedu
log_slave_updates
Self-повышениеСтарт, двойной
auto_increment_increment
auto_increment_offset3.2 Мастер конфигурация
# Сначала перезапустите сервис
shell> service mysqld restart # Войдите в MySQL
shell> mysql -uroot -p # Создайте пользователя для синхронизации базы данных и предоставьте соответствующие разрешения (только пользователям repl разрешено входить в систему с 192.168.1.205)
mysql> grant replication slave, replication client on to @ identified by ; # Обновить информацию таблицы авторизации
mysql> flush privileges; # Просмотр значений положения (смещения) и файла (файла журнала) файла binlog, который необходимо использовать на ведомом устройствеmysql> show master status;
+----------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)В это время вы можете запустить ведомую службу узла 1 (205)
3.3 Конфигурация ведомого
# master_log_file и master_log_pos: выполнить отображение основного статуса на узле 205; соответствующие значения файла и позицииmysql> change master to masteruser='repl', masterport=3306, masterfile='edu-mysql-bin.000001', masterpos=120, masterretry=30;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
mysql> show slave status\G;** 1. row **3.4, запустить Slave
shell> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G;** 1. row ** Slave_IO_State: Waiting for master to send eventМногопоточность, мониторинг и обслуживание репликации MySQL
Начало цепочки
1. Поток io по умолчанию и поток SQL начнутся при запуске службы mysql / mariadb.
2. Включите метод отключения автоматического запуска потока io и потока SQL на подчиненном узле.
- skip-slave-start=on
3. Связанные операторы SQL для потока io и потока seq
- показать статус ведомого \ G view
- старт раб старт
- остановить выключение ведомого
- сбросить ведомое все очистить информацию, связанную с ведомым
Мониторинг и обслуживание репликации
(1). Очистите журнал
- PURGE { BINARY | MASTER } LOGS { TO ‘log_name’ | BEFORE
- datetime_expr }
- RESET MASTER
- RESET SLAVE
(2). Контроль копирования
- SHOW MASTER STATUS
- SHOW BINARY LOGS
- SHOW BINLOG EVENTS
- SHOW SLAVE STATUS
- SHOW PROCESSLIST
(3). Отстает ли подчиненный сервер от основной службы.
- Seconds_Behind_Master:0
(4). Как определить, согласуются ли данные главного и подчиненного узлов
- percona-tools
(5) Как исправить несоответствие данных
- Удалить из базы, скопировать заново
Настроить синхронизацию главный-подчиненный
Есть много способов настроить синхронизацию ведущий-ведомый, которые можно обобщить в виде следующих шагов:
1. На главном сервере должен быть включен механизм двоичного журнала и должен быть настроен независимый идентификатор.
2. На каждом подчиненном сервере настройте уникальный идентификатор и создайте учетную запись, чтобы специально копировать данные главного сервера.
3. Перед запуском процесса копирования запишите информацию о местоположении двоичного файла на главном сервере.
4. Если перед началом копирования в базе данных есть данные, необходимо сначала создать моментальный снимок данных (вы можете использовать mysqldump для экспорта базы данных или скопировать файл данных напрямую)
Настроить подчиненный сервер
Если есть несколько подчиненных серверов, идентификатор сервера, настроенный на каждом сервере, должен быть несовместимым. Нет необходимости настраивать корзину журнала на подчиненном сервере. Конечно, вы также можете настроить опцию корзины журнала, потому что вы можете выполнять резервное копирование данных и аварийное восстановление на подчиненном сервере или позволить этому подчиненному серверу стать главным сервером один день
Сначала подтвердите, что ранее зарезервированные данные уже существуют в базе данных, настройте параметры синхронизации, войдите в mysql и введите следующую информацию:
Запустить процесс синхронизации ведущий-ведомый
mysql > start slave;
mysql > show slave status \G;

Если оба вышеуказанных процесса показывают ДА, конфигурация успешна.
Slave_IO_Running: отвечает за чтение двоичного журнала из библиотеки в основную библиотеку и запись в журнал реле подчиненной библиотеки.
Slave_SQL_Running: отвечает за преобразование журнала реле в операторы SQL, а затем выполнение

