MariaDB GTID 复制同步

GTID:Global Transaction ID,全局事务ID,在整个主从复制架构中任何两个事物ID是不能相同的。全局事务ID是Mster服务器生成一个128位的UUID+事物的ID号组成的,UUID标示主服务器的身份,此UUID在整个主从复制架构中是绝对唯一,而且即使更换主服务器后UUID也不会改变而是继承当前主服务器的UUID身份。

一、环境确认

master  IP : 10.6.0.96

slave   IP :  10.6.0.138

配置本地hosts

vim /etc/hosts

10.6.0.96 master.mysql

10.6.0.138 slave.mysql

二、配置文件确认,确保配置文件中有以下的配置:

binlog_format                         二进制日志的格式,有row、statement和mixed几种类型;

log-slave-updates、

report-port

report-host:                         用于启动GTID及满足附属的其它需求;

master-info-repository

relay-log-info-repository             启用此两项,可用于实现在崩溃时保证二进制及从服务器安全的功能;

sync-master-info                      启用之可确保无信息丢失;

slave-parallel-workers                设定从服务器的SQL线程数;0表示关闭多线程复制功能;

binlog-checksum

master-verify-checksum

slave-sql-verify-checksum             启用复制有关的所有校验功能;

binlog-rows-query-log-events          启用之可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度;

log-bin                               启用二进制日志,这是保证复制功能的基本前提;

server-id                             同一个复制拓扑中的所有服务器的id号必须惟一.

三、配置master配置文件

//修改如下内容

log-bin=/opt/local/mysql/binlog/mysql-bin          #二进制日志文件目录

server-id       = 1                                #从服务器不能跟此id重复

binlog_format=ROW                                  #二进制日志文件格式

innodb_file_per_table=1                            #innodb表空间独立

log-slave-updates=true                             #从master取得并执行的二进制日志写入自己的二进制日志文件中

//添加以下内容

binlog-do-db=mysql                             #指定只同步mysql库

master-info-repository=TABLE                       #用于实现在崩溃时保证二进制及从服务器安全的功能;

relay-log-info-repository=TABLE                    #用于实现在崩溃时保证二进制及从服务器安全的功能;

sync-master-info=1                                 #启用之可确保无信息丢失

slave-parallel-threads=2                           #设定从服务器的SQL线程数;0表示关闭多线程复制功能

binlog-checksum=CRC32                              #启用复制有关的所有校验功能

master-verify-checksum=1                           #启用复制有关的所有校验功能

slave-sql-verify-checksum=1                        #启用复制有关的所有校验功能

binlog-rows-query-log_events=1                     #启用之可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度;

report-host=master.mysql                           #master 主机名,必须能ping通

report-port=3306                                   #端口

// 重启 mysql

service mysqld restart

//master创建用于主从复制的账号

mysql -uroot -p

grant replication slave,replication client on *.* to "rep"@'10.6.0.138' identified by 'rep12345';

flush privileges;

四、配置slave配置文件

//修改如下内容

log-bin=/opt/local/mysql/binlog/mysql-bin          #二进制日志文件目录

server-id       = 10                               #从服务器不能跟此id重复

binlog_format=ROW                                  #二进制日志文件格式

innodb_file_per_table=1                            #innodb表空间独立

log-slave-updates=true                             #从master取得并执行的二进制日志写入自己的二进制日志文件中

relay-log=/opt/local/mysql/relaylog/s74-relay-bin

//添加以下内容

replicate-do-db=mysql                           #指定只同步mysql库

master-info-repository=TABLE                       #用于实现在崩溃时保证二进制及从服务器安全的功能;

relay-log-info-repository=TABLE                    #用于实现在崩溃时保证二进制及从服务器安全的功能;

sync-master-info=1                                 #启用之可确保无信息丢失

slave-parallel-threads=2                           #设定从服务器的SQL线程数;0表示关闭多线程复制功能

binlog-checksum=CRC32                              #启用复制有关的所有校验功能

master-verify-checksum=1                           #启用复制有关的所有校验功能

slave-sql-verify-checksum=1                        #启用复制有关的所有校验功能

binlog-rows-query-log_events=1                     #启用之可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度;

report-host=slave.mysql                            #slave 主机名,必须能ping通

report-port=3306                                   #端口

# 在slave服务器使用主mysql上创建的账号密码登陆

mysql -uroot -p

change master to master_host='10.6.0.96',master_user='rep',master_password='rep12345',master_use_gtid=current_pos;

start slave;

# 查看是否启用 gtid:

show processlist;

# 查看同步状态:

show slave status\G;

以下为传统主从复制的解决方案

-----------------------------------------------------------------------------------------

# 在master 查看 Position

show master status;

记录 Position

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000008 |     1062 |              |                  |

+------------------+----------+--------------+------------------+

# 在 slave 上面 执行

CHANGE MASTER TO MASTER_HOST='10.6.0.96',MASTER_USER='rep',MASTER_PASSWORD='rep12345',MASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=1062;

start slave;

show slave status \G;

MariaDB GTID 复制同步的更多相关文章

  1. MySQL GTID复制

    什么是GTID 什么是GTID呢, 简而言之,就是全局事务ID(global transaction identifier ),最初由google实现,官方MySQL在5.6才加入该功能.GTID是事 ...

  2. MariaDB的GTID复制和多源复制

    什么是GTID? GTID就是全局事务ID(global transaction identifier ),最初由google实现,官方MySQL在5.6才加入该功能.GTID实际上是由UUID+TI ...

  3. GTID复制详解

    前言 GTID复制是MySQL 5.6后的新功能,在传统的方式里,主从切换后,需要找到binlog和POS点,然后执行命令change master to 指向新的主库.对于不是很有经验的人来说,往往 ...

  4. MySQL\MariaDB 多线程复制初探

    背景: MariaDB 在10.0.5就已经支持了并行复制的功能,即从库多线程复制的功能.MySQL最先在5.6.3中支持.目前暂时没有用MySQL5.6的版本,故暂时只对MariaDB进行一些说明, ...

  5. mysql之 MySQL 主从基于 GTID 复制原理概述

    一. 什么是GTID ( Global transaction identifiers ):MySQL-5.6.2开始支持,MySQL-5.6.10后完善,GTID 分成两部分,一部分是服务的UUid ...

  6. mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)

    环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火 ...

  7. MySQL的GTID复制与传统复制的相互转换

    主库:192.168.225.128:3307从库1:192.168.225.129:3307 Gtid作为5.6版本以来的杀手级特性,却因为不支持拓扑结构内开关而饱受诟病.如果你需要从未开启GTID ...

  8. 深入MySQL复制(二):基于GTID复制

    相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. MySQL基于GTID复制官方手册:https://dev.mysql.com/doc/refman ...

  9. MySQL5.7 的GTID复制

    MySQL5.7 的GTID复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 在MySQL5.6之后其官方推出了GTID复制方式,和传统的基于bin log复制方式有所不同,接 ...

随机推荐

  1. AVFoundation(一)---AVAudioPlayer

    AVAudioPlayer相当于一个播放器,它支持多种音频格式,而且能够进行进度.音量.播放速度等控制. 下边通过代码来看一下,它的属性和常用方法(具体说明都写在了注释中): //AVAudioPla ...

  2. regress

    #! /bin/ksh ############### ###   UAT   ### ############### export ENVS=/test/change/env/env_test.sq ...

  3. JQuery Each循环遍历每个元素

    输出每个 li 元素的文本: $("button").click(function(){ $("li").each(function(){ alert($(th ...

  4. bash和sh区别

    在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模式(等效于bash的 --posix 参数),一般的,sh是bash的“子集”,不是子集的部分. ...

  5. mysql 字段的类型有哪些

    int型包括(tinyint, smallint, mediumint, int, bigint) tinyint是1个字节表达范围就是2的8次方(-128-128) 或者(0-255) 很多人不明白 ...

  6. PullToRefreshGridView上拉加载、下拉刷新

    eclipse中的项目: //注意:此刷新功能是使用的第三方的PullToRefreshScrollView,因此需要导入第三方library作为依赖 步骤:导入第三方library,依赖:点击你的应 ...

  7. C++builder编译别人工程报错

    编译时遇到错误,信息如下: [C++ Error] NVRAMEditor.h(83): E2209 Unable to open include file 'CONTROLSLib_OCX.h'[C ...

  8. java中list的使用方法

    LIST是个容器接口,可以理解为动态数组,传统数组必须定义好数组的个数才可以使用,而容器对象无须定义好数组下标总数, 用add()方法即可添加新的成员对象,他可以添加的仅仅只能为对象,不能添加基本数据 ...

  9. Dev之ChartControl控件(一)

    ChartControl控件主要包括Chart Title,Legend,Annotations,Diagram,Series五部分:如图: 1.  用RangeControl控件控制ChartCon ...

  10. VS2013编译FileZilla0.9.44

    2014年,FileZilla更新了一下,到了44版本了,貌似也是用VS2013的工程做的项目,所以下载了server的安装包,然后安装SourceCode即可(需要安装InterFace,是安装必选 ...