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的复制的更多相关文章

  1. Mysql基于GTID复制模式-运维小结 (完整篇)

    先来看mysql5.6主从同步操作时遇到的一个报错:mysql> change master to master_host='192.168.10.59',master_user='repli' ...

  2. 详解MySQL主从复制实战 - 基于GTID的复制

    基于GTID的复制 简介 基于GTID的复制是MySQL 5.6后新增的复制方式. GTID (global transaction identifier) 即全局事务ID, 保证了在每个在主库上提交 ...

  3. Mysql基于GTID主从复制

    Mysql5.6基于GTID全局事务的复制 什么是GTID?   GTID(Global Transaction Identifiers)是全局事务标识 当使用GTIDS时,在主上提交的每一个事务都会 ...

  4. MySQL5.7配置基于GTID的复制

    MySQL5.7下配置GTID复制的方法: 修改主库和从库的配置文件,加入下列部分的配置项:主库:[mysqld]log-bin=mysql-binbinlog_format= ROWgtid-mod ...

  5. MySQL 使用GTID进行复制

    MySQL 使用GTID进行复制 1. GTID的格式和存储 1.1 GTID 集 1.2 mysql.gtid_executed 表 1.3 mysql.gtid_executed 表压缩 2. G ...

  6. MySQL 基于 GTID 主从架构添加新 Slave 的过程

    内容全部来自: How to create/restore a slave using GTID replication in MySQL 5.6 需求说明 需求: 对于已经存在的 MySQL 主从架 ...

  7. Mysql基于GTIDs的复制

    通过GTIDs[global transaction identifiers],可以标识每一个事务,并且可以在其一旦提交追踪并应用于任何一个Slave上:这样 就不需要像BinaryLog复制依赖Lo ...

  8. MySQL基于GTID的组复制(MGR)

    环境准备 IP 主机名 操作系统 192.168.131.129 mgr-node1 CentOS7.6 192.168.131.130 mgr-node2 CentOS7.6 192.168.131 ...

  9. Mysql 基于GTID的主从复制(实操)

    实现环境: Master 主:192.168.0.102 (Mysql 5.6.36) Slave  从 :192.168.0.103 (Mysql 5.6.36) 步骤1.在主DB服务器上建立复制账 ...

随机推荐

  1. Java之美[从菜鸟到高手演变]之Spring源码学习 - 环境搭建

    准备工作 1.下载安装STS(Spring Tool Suite),在eclipse market里直接搜索.下载.安装.2.下载安装gradle, Spring源码使用gradle构建,下载后解压到 ...

  2. IOS基础面试题

    最近离职了,找工作,光会做项目,对基础不熟,今天就总结了一点面试题. 废话不多说,上题吧: 1.objective-c中的数字对象都有哪些,简述它们与基本数据类型的区别是什么. 基本类型和C一样,主要 ...

  3. CentOS 命令模式下设置静态IP

    ASP.NET程序猿第一次修改IP,之前没有接触过Linux,有点伤不起... # cd /etc/sysconfig/network-scripts/ # ls  会看到 ifcfg-eth0 if ...

  4. session 存储方式

    Session 的存储方式 在 php.ini 文件中,进行配置. 涉及配置参数: - session.save_handler - session.save_path 注意:这两个参数可以在 PHP ...

  5. java开发_读写txt文件操作

    package com.mi.util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStr ...

  6. 通过FTP命令上传下载

      用命令如何把自己电脑上的文件上传到被入侵的电脑上呢.方法有很多.用ftp是个不错的选择.方法如下 echo open 你的ftpip >ftp.txt echo user >>f ...

  7. sysobjects中字段的含义

    --列名 数据类型 描述 name sysname --对象名. Id int --对象标识号. xtype ) --对象类型.可以是下列对象类型中的一种: C = CHECK --约束 D = -- ...

  8. WITH AS的含义

    一.WITH AS的含义WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是为了让S ...

  9. 二叉树JAVA实现

    为了克服对树结构编程的畏惧感和神秘感,下定决心将二叉树的大部分操作实现一遍,并希望能够掌握二叉树编程的一些常用技术和技巧.关于编程实现中的心得和总结,敬请期待!~ [1]  数据结构和表示: 二叉树的 ...

  10. python-操作csv文件

    import csv lv,er=[],[] #读 with open('date.csv') as mycsv: reader=csv.DictReader(mycsv) for row in re ...