MYSQL 基于GTID的复制
1.概述
从MYSQL5.6 开始,mysql开始支持GTID复制。
基于日志点复制的缺点:
从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致。
基于GTID复制:
1.从服务器会告诉主服务器已执行的事务的GTID值。
2.主库会告诉从哪些GTID事务没有被执行。
同一个事务在指定的从库执行一次。
什么是GTID
GTID即全局事务ID,器保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID.
GTID=source_id:transaction_id
source_id:是主库的server UUID,在数据目录的auto.cnf 文件中。
transaction_id: 从1开始的一个序列。
2.基于GTID复制的步骤
1.在主DB服务器上建立复制帐号。
和日志点是一样的。
2.配置主数据库服务器
bin_log =mysql-bin
server_id=1001
gtid_mode=on
enforce-gtid-consiste:强制事务一致性,保证事务的安全
不能使用:
1.create table 。。select
2.在事务中使用create temporary table 建立临时表,使用关联更新事务表和非事务表。
log-slave-updates=on
在从服务器中记录从主服务器传过来的日志数据。
使用GTID 5.6 必须使用此参数,5.7可以不使用。
3.配置从服务器。
server_id=1002
relay_log=relay_log
gtid_mode=on
enforce-gtid-consistency
建议配置
read_only=on
保证从服务器数据安全性
master_info_reposistory=TABLE
relay_log_info_reposistory=TABLE
从服务器连接主服务器的信息和中继日志存放咱 master_info,和relay_log中。
4.初始化从服务器数据。
mysqldump --master-data=2 -single-transaction
xtarbackup –slave-info
记录备份时最后的事务GTID值。
导出数据
mysqldump --single-transaction --master-data=2 --triggers -routines --all-databases -uroot -p -P3308 >all2.sql
导入数据
mysql -uroot -p -P3309 < all2.sql
5.启动基于GTID的复制
change master to master-host=’主服务IP’,
master_user=’repl’,
master_password=’password’,
master_auto_position=1
change master to MASTER_HOST='192.168.1.106',
MASTER_PORT=3308,
MASTER_USER='repl',
MASTER_PASSWORD='repl',
master_auto_position=1;
start slave;
show slave status \G;

在启动slave时报错。
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
解决办法:
reset slave;重置slave
再启动 slave
start slave;
测试同步:
1.在主库创建一张表,插入记录。
2.在从库查询验证是否正确,经验证配置正确。
MYSQL 基于GTID的复制的更多相关文章
- Mysql基于GTID复制模式-运维小结 (完整篇)
先来看mysql5.6主从同步操作时遇到的一个报错:mysql> change master to master_host='192.168.10.59',master_user='repli' ...
- 详解MySQL主从复制实战 - 基于GTID的复制
基于GTID的复制 简介 基于GTID的复制是MySQL 5.6后新增的复制方式. GTID (global transaction identifier) 即全局事务ID, 保证了在每个在主库上提交 ...
- Mysql基于GTID主从复制
Mysql5.6基于GTID全局事务的复制 什么是GTID? GTID(Global Transaction Identifiers)是全局事务标识 当使用GTIDS时,在主上提交的每一个事务都会 ...
- MySQL5.7配置基于GTID的复制
MySQL5.7下配置GTID复制的方法: 修改主库和从库的配置文件,加入下列部分的配置项:主库:[mysqld]log-bin=mysql-binbinlog_format= ROWgtid-mod ...
- MySQL 使用GTID进行复制
MySQL 使用GTID进行复制 1. GTID的格式和存储 1.1 GTID 集 1.2 mysql.gtid_executed 表 1.3 mysql.gtid_executed 表压缩 2. G ...
- MySQL 基于 GTID 主从架构添加新 Slave 的过程
内容全部来自: How to create/restore a slave using GTID replication in MySQL 5.6 需求说明 需求: 对于已经存在的 MySQL 主从架 ...
- Mysql基于GTIDs的复制
通过GTIDs[global transaction identifiers],可以标识每一个事务,并且可以在其一旦提交追踪并应用于任何一个Slave上:这样 就不需要像BinaryLog复制依赖Lo ...
- MySQL基于GTID的组复制(MGR)
环境准备 IP 主机名 操作系统 192.168.131.129 mgr-node1 CentOS7.6 192.168.131.130 mgr-node2 CentOS7.6 192.168.131 ...
- Mysql 基于GTID的主从复制(实操)
实现环境: Master 主:192.168.0.102 (Mysql 5.6.36) Slave 从 :192.168.0.103 (Mysql 5.6.36) 步骤1.在主DB服务器上建立复制账 ...
随机推荐
- Redis linux 下安装 及扩展配置
1.首先在/usr/local/ 创建文件夹 reids Cd /usr/local/ mkdir redis 2.把redis安装包放在redis目录下面进行解压phpredis-2.2.4.tar ...
- SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- windows系统调用 利用事件对象实现进程通信
#include "iostream" #include "windows.h" #include "cstring" using name ...
- C#实现执行多条SQl语句,实现数据库事务
C#实现执行多条SQl语句,实现数据库事务 在数据库中使用事务的好处,相信大家都有听过银行存款的交易作为事务的一个例子.事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的 ...
- 创建和导出SVG的技巧(转载)
本文转载自: 创建和导出SVG的技巧
- 夺命雷公狗-----React---3--标签的规则
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- flask学习资源
1.flask快速入门(视频) http://www.pythoner.cn/course/topic/flask-web-development/ 2.flask教程,开源中国 http://www ...
- ECStore在Win环境下如何运行CMD命令
大多数程序员使用windows开发环境来做ECStore二次开发,经常需要使用 ECStore自带的cmd命令进行一些系统操作,如清除缓存(cacheclean),升级程序(update),创建新的a ...
- fgets函数
打开文件 fopen("需要打开的路径") 然后使用fgets函数读取行 #include <stdio.h> #include <stdlib.h> #i ...
- androidBroadCast总结
BoradCast广播1.接受广播 BroadCastReceiver(接收系统的广播) 1-1:电话的广播 1-1-1:拨打电话的广播 1.创建一个类,继承BoradcastReceiver 2.重 ...