记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

如何在 MySQL 5.6 中设置 GTID 复制

mysql-master-slave-replication

什么是 GTID?

GTID (全局事务标识符) 是一个唯一标识符,创建并关联在源服务器上提交的每个事务。它由两个部分组成,由一列分隔:

GTID = source_id:transaction_id

在哪里,

source_id : 服务器的 UUID

transaction_id : 序列编号

GTID 优势

  • 易于设置 MySQL 复制。
  • 主和从之间的一致性是保证的。
  • 故障转移过程变得简单。
  • 自动故障转移脚本现在并不痛苦。
  • 易于确定不一致。

使用 GTID 设置复制

MySQL 主端配置
MySQL 从侧配置

主侧配置

将以下变量添加到 /etc/my.cnf。

# vim /etc/my.cnf
[mysqld]
log-bin = mysql-bin
server-id = 1
relay-log = relay-log-slave
gtid-mode =ON
enforce-gtid-consistency
binlog_format = MIXED
log_slave_updates

保存并关闭文件。

重新启动 MySQL 以应用配置更改:

# service mysql restart

现在创建一个 MySQL 用户,由从属服务器使用。

mysql> GRANT REPLICATION SLAVE ON *.* TO
'slave_user_name'@'slave_ip'
IDENTIFIED BY 'password';

从侧配置

将以下变量添加到 /etc/my.cnf。

# vim /etc/my.cnf
[mysqld]
log_bin = mysql-bin
server_id = 2
binlog_format = ROW
skip_slave_start
gtid_mode = on
enforce_gtid_consistency
log_slave_updates

保存并关闭文件。

重新启动 MySQL 以应用配置更改:

# service mysql restart

现在运行 CHANGE MASTER TO 命令:

mysql> CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_PORT=3306,
MASTER_USER='slave_user_name',
MASTER_PASSWORD='password',
MASTER_AUTO_POSITION=1;

开始复制

mysql> start slave;

检查复制

现在,通过运行以下命令来检查复制副本状态:

mysql> show slave status\G;
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.5
Master_User: repleuser
Master_Port: 3306
. . .
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
. . .
Retrieved_Gtid_Set: b9b4712a-df64-11e3-b391-60672090eb04:1-2
Executed_Gtid_Set: b9b4712a-df64-11e3-b391-60672090eb04:1-2
Auto_Position: 1 

向 GTID 复制添加新从属

按照以下步骤向 GTID 复制添加新的从属服务器:

1. 主服务器备份使用 mysqldump .

mysql> mysqldump -u root -p --all-databases –flush-privileges --single-transaction --flush-logs --triggers --routines --events –hex-blob > /path/to/backupdir/full_backup-$TIMESTAMP.sql

2. 编辑新的从属服务器/etc/my.cnf文件,如上所述。
3.现在还原从属服务器上的主备份文件。
4.使用 CHANGE MASTER TO 命令并添加 MASTER_AUTO_POSITION=1
5.启动 MySQL 从站。

mysqldump 知道 Gtid

--
-- GTID state at the beginning of the backup
--
SET @@GLOBAL.GTID_PURGED='b9b4712a-df64-11e3-b391-60672090eb04:1-7';

谢谢:)

谢谢!访问看 Linux 。

如果您发现本教程有帮助,请与你的朋友分享,以保持它活着。有关更多有用的主题,请浏览我的www.looklinux.com。成为作者在看Linux提交文章。与 Facebook保持联系



转载请标明出处【如何在 MySQL 5.6 中设置 GTID 复制】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论