归纳整理之MySQL基于GTID主从搭建

文 / @WordPress主题

MySQL基于GTID主从搭建

MySQL的主从复制是数据库中非常重要的一项功能,常常用于备份数据和读写分离,而基于GTID的主从搭建是目前比较新的做法,相比传统的复制方式更加安全和简单。本文将从用xtarbackup备份数据库开始,围绕GTID的概念、优势及搭建过程逐一说明。

一、用xtarbackup备份数据库

1.1 优势

使用xtarbackup来做主从的前期准备是因为xtarbackup备份数据和恢复数据都很快,特别适合数据量很大的数据库备份,而且它的安装非常的简单。

1.2 安装具体版本

根据自己的具体情况来选择版本,然后按下面的命令来安装即可。

#rpm-Uvhhttps://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-3.noarch.rpm
#yum list|grep percona
#yum-yinstallperlperl-devellibcxxlibcxx-develperl-DBD-MySQLlibev-4.03-3.el6.x86_64.rpm
#yum install percona-xtrabackup –y

1.3 使用

备份有两种方式,分别是普通备份和tar备份。

1.3.1 普通备份

使用innobackupex命令来备份数据,如下:

innobackupex--defaults-file=/etc/my.cnf--user=root--password=123456/data/backupMysql/

1.3.2 tar备份

使用innobackupex和tar组合来备份,备份到本地或者远程都可以,具体命令如下:

#不压缩
innobackupex--defaults-file=/etc/my.cnf--user=root--password=123456--stream=tar/data/backupMysql/>/data/mysql.tar

#压缩
innobackupex--defaults-file=/etc/my.cnf--user=root--password=123456--stream=tar/data/backupMysql/|gzip>/data/mysql.tar.gz

#不压缩到远程
innobackupex--defaults-file=/etc/my.cnf--user=root--password=123456--stream=tar/data/backupMysql/|sshroot@192.168.1.7\"cat->/data/mysql.tar

#压缩到远程
innobackupex--defaults-file=/etc/my.cnf--user=root--password=123456--stream=tar/data/backupMysql/|sshroot@192.168.1.7\"gzip>/data/mysql.tar.gz

1.3.3 xbstream备份

除了使用tar命令备份外,也可以使用xbstream。具体命令如下:

#不压缩
innobackupex--defaults-file=/etc/my.cnf--user=root--password=123456--stream=xbstream/data/backupMysql/>/data/mysql.xbstream

#压缩
innobackupex--defaults-file=/etc/my.cnf--user=root--password=123456--stream=xbstream--compress/data/backupMysql/>/data/mysql_compress.xbstream

1.3.4 恢复

使用innobackupex命令配合copy-back参数来恢复数据,具体命令如下:

innobackupex--defaults-file=/etc/my.cnf--user=root--password=123456--copy-back/var/lib/mysql/backup/

二、基于GTID做数据同步

2.1 GTID的概念

GTID指全局事务标识,是一个事务一一对应,并且全局唯一的ID,用于代替传统复制方法中的MASTER_LOG_FILE + MASTER_LOG_POS开启复制。

2.2 GTID的组成

GTID由source_id和transaction_id两部分组成,如3E11FA47-71CA-11E1-9E33-C80AA9429562:23,其中source_id为唯一的server_uuid,transaction_id为已提交事务的一个序列号。

2.3 GTID的原理

当一个事务在主库端执行并提交时,产生GTID并记录到binlog日志中,binlog传输到从库,被存储到relaylog中,然后从relaylog中获取GTID并对比slave端的binlog是否有该GTID,如果有则忽略,如果没有就执行该GTID事务,并记录该GTID到自身的binlog。

2.4 GTID的优势

GTID的优势有以下几点:更简单的实现failover、更简单的搭建主从复制、比传统的复制更加安全、GTID是连续的没有空洞的,保证数据的一致性。

2.5 具体搭建过程

对于GTID的配置,主要修改配置文件中与GTID特性相关的几个重要参数,mysql版本建议mysql-5.6.5版本以上。

2.5.1 开启主(master)Gtid

配置文件中的主要参数如下:

[mysqld]
#GTID:
server_id=135#服务器id
gtid_mode=on#开启gtid模式
enforce_gtid_consistency=on#强制gtid一

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。