MYSQL---GTID主从备份

本文详细介绍了MYSQL中的GTID主从备份,包括GTID的定义、组成部分、优势及工作原理。通过设置GTID,可以简化主从复制的配置过程,提高数据安全性。文章还提供了基于GTID的主从备份配置步骤,包括在主从数据库服务器上的配置修改和验证方法。
摘要由CSDN通过智能技术生成

MYSQL—GTID主从备份

GITD定义

1.全局事物标识(global transaction identifieds)
2.GTID事物是唯一性一个事务对应一个GTID
3.一个GTID在服务器上只执行一次,避免重复执行,导致数据混乱
4.使用master_auto_postion=1的方式自动匹配GTID断点进行复制
5.mysql-5.6.5开始支持,mysql-5.6.10开始完善

GTID = source_id:transation_id

GTID的组成部分

server_uuid:后面是一个序列号
uuid:每个mysql实例的唯一ID,由于会传递到slave,所以可以理解为源ID
Sequence number:在每台mysql服务器上都是从1开始自增长的序列,一个数值对应一个事务。

GTID比传统复制的优势

1.更容易实现failover,不用一千那样在需要找log_file和log_pos.
2.更简单的搭建主从复制
3.更加安全
4.GTID是连续没有空洞的,因此主从库出现数据冲突时,可以用添加空事物的方式进行跳过。

GTID工作原理

1.master更新数据时,会在事务前产生GTID,一同记录到binlog日志中
2.slave端的I/O线程将变更的binlog,写入到本地的relay log中
3.sql线程从reloy log中获取GTID,然后对比slave端的binlog是否有记录
4.如果有记录,说明该GTID的事务已经执行,slave会忽略
5.如果没有记录,slave就好从relay log中执行该GTID的事务,并记录到binglog
6.在解析过程中会判断是否有主键,如果没有就用二级索引,如果没有就用全部扫描。

MYSQL基于GTID的主从备份

准备两台虚拟机,分别两台都安装MySQL,步骤略。详情参照MySQL主从配置这篇文章。

数据库角色 IP 应用与系统版本
主数据库 192.168.228.23 centos7
从数据库 192.168.228.30 centos7

在主数据库服务器修改/etc/my.cnf配置文件

[root@yxr ~]# vim /etc/my.cnf

[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve

#GTID
server-id=23  //主服务器id(可以修改成自己的主机,方便区分)
gtid-mode=on    //开启gtid模式
enforce-gtid-consistency=on  //强制gtid一致性,开启后对于特定create table不被支持
#binlog
log_bin=master-binlog
log-slave-updates=1
binlog_format=row  //强烈建议,其他格式可能导致数据不一致
#relay log
skip_slave_start=1

重启mysql服务

[root@yxr ~]# service mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL.. SUCCESS! 
[root@yxr ~]# ss -antl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128           *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值