братан нытье
последний постMySQL
Процесс построения master-slave кластера репликации, но похоже, что моим друзьям эта статья не интересна, но из любви к технике и ответственности за своих друзей я все же хочу написать еще одну реализацию master-slave репликации:GTID
. Эти приемы действительно важны, и я надеюсь, что вы сможете их освоить.
О GTID
Новый метод репликации master-slave был добавлен из MySQL 5.6.5:GTID
, полное имя которогоGlobal Transaction Identifier
, глобальный идентификатор транзакции. пройти черезGTID
Убедитесь, что каждая транзакция, отправленная основной библиотекой, уникальна в кластере.事务ID
. Это усиливает непротиворечивость базы данных master-slave и отказоустойчивость данных восстановления после сбоя. В случае переключения master-slave, когда главная база данных не работает.GTID
Способ, которым вы можете автоматически найти расположение новой репликации первичной библиотеки иGTID
Вы можете игнорировать выполненную транзакцию, уменьшая вероятность ошибок данных.
Состав GTID
GTID
Является номером совершенной транзакции и является глобально уникальным.GTID
ОтUUID
иTID
состоит из.UUID
даMySQL
уникальный идентификатор экземпляра,TID
Представляет количество совершенных транзакций в этом экземпляре, увеличивающееся с увеличением количества совершенных транзакций.
Например:3E11FA47-71CA-11E1-9E33-C80AA9429562:23
, прежде чем двоеточиеUUID
, с последующимTID
.
Как работают GTID
-
Когда главный мастер библиотеки отправляет транзакцию, будет сгенерирован GTID и записан в журнал binlog.
-
Файл журнала binlog ведущего считывается потоком ввода-вывода подчиненной библиотеки и сохраняется в журнале реле подчиненного устройства. Подчиненное устройство устанавливает значение GTID ведущего в gtid_next, которое является следующим значением GTID для чтения.
-
Подчиненное устройство читает этот gtid_next, а затем сравнивает, есть ли этот GTID в собственном журнале binlog подчиненного устройства.
-
Если эта запись есть, значит транзакция данного GTID выполнена и ее можно игнорировать
-
Без этой записи подчиненное устройство выполнит транзакцию GTID и запишет ее в собственный журнал binlog подчиненного устройства. Прежде чем читать и выполнять транзакцию, он проверяет, что другие сеансы содержат GTID, чтобы гарантировать, что она не будет выполняться повторно.
-
В процессе синтаксического анализа будет оцениваться, есть ли первичный ключ, если нет, использовать вторичный индекс, если нет, использовать полное сканирование.
GTID достижения
окрестности
Здесь мы подготавливаем две машины, одну главную и одну подчиненную.
- Мастер: 192.168.216.111
- От (спасение): 192.168.216.222
главная конфигурация основной библиотеки
существует[mysqld]
Следующая конфигурация, вам необходимо перезапустить после настройки
#GTID:
server_id=111 #服务器id,一般设置为机器 IP 地址后三位
gtid_mode=on #开启gtid模式
#强制gtid一致性,开启后对于特定create table不被支持
enforce_gtid_consistency=on
#binlog
log_bin = 二进制日志文件存放路径
log-slave-updates=true
#强烈建议,其他格式可能造成数据不一致
binlog_format=row
#relay log
skip_slave_start=1
Рамовая конфигурация из библиотеки
существует[mysqld]
Следующая конфигурация, вам необходимо перезапустить после настройки
#GTID:
gtid_mode=on #开启gtid模式
enforce_gtid_consistency=on
#服务器id,一般设置为机器 IP 地址后三位
server_id=222
#binlog
log-bin=slave-binlog
log-slave-updates=true
#强烈建议,其他格式可能造成数据不一致
binlog_format=row
#relay log
skip_slave_start=1
Проверьте, включен ли GTID
show variables like '%gtid%';
Основная библиотека устанавливает авторизованных пользователей
# 建立授权用户
GRANT REPLICATION SLAVE ON *.* TO '用户名'@'从机IP' IDENTIFIED BY '密码';
# 刷新MySQL的系统权限相关表
FLUSH PRIVILEGES;
ведомый подключается к главному
CHANGE MASTER TO
MASTER_HOST='master的IP',
MASTER_USER='用户名',
MASTER_PASSWORD='密码',
MASTER_PORT=端口号,
# 1 代表采用GTID协议复制
# 0 代表采用老的binlog复制
MASTER_AUTO_POSITION = 1;
Включить репликацию master-slave
start slave;
Посмотреть статус ведомого
show slave status\G
Просмотр информации о Salve на Master
show slave hosts;
ужеGTID
После того как метод репликации master-slave настроен, вы можете управлять главной библиотекой, чтобы проверить, есть ли синхронизированные данные в подчиненной библиотеке.
айтишник
一个在大厂做高级Java开发的程序猿
Обратите внимание на публичный аккаунт WeChat: IT-брат
Ответ: полный набор учебных пособий по Java, которые вы можете получить: основы Java, веб-приложение Java, все учебные пособия по JavaEE, включая весеннюю загрузку и т. д.
Re: Шаблон резюме, вы можете получить 100 красивых резюме
Re: Маршрут обучения Java, вы можете получить самую последнюю и самую полную дорожную карту обучения
Re: Java eBook, вы можете получить 13 обязательных к прочтению книг для лучших программистов
В этой статье используетсяmdniceнабор текста