一,环境部署

192.168.113.129

193.168.113.130

二进制部署mysql5.7的方法见mysql5.7二进制部署,以及部分优化参数

二,mysql基于二进制日志点的复制

1,在mysql主从上面创建复制账号

>create user slave@'192.168.113.%' identified by '123456';

2,授权该账号拥有主从库的所有操作权限

>grant replication slave on *.* to slave@'192.168.113.%';

3,配置主数据库服务器

vim /etc/my.cnf
#在mysqld下面添加类容
log_bin=mysql-bin #开启二进制日志,并指定存储目录(mysql-bin),如果未启动二进制日志,则重启后才能生效
server-id=50 #需要指定serverid,在复制集群中必须唯一,主从id不能相同, 建议:server-id 可以用主机ip的后几段
binlog_format=row

4,配置从数据库服务器

vim /etc/my.cnf
log_bin=mysql-bin
binlog_format=row
server-id=51
relay_log=mysql-relay-bin
#log_slave_update=on
read_only=on # 安全配置参数,防止从写入,从库只读

relay_log 启动了主从复制,该参数就会默认启动,但在默认情况下,参数名字是主机名字,如果因为某种原因更改了主机名的命名策略,这时在启动了从服务器的复制链路的就会报找不到原来的中继日志的错误,从而中断主从复制的链路,所以要更改中继日志的名字,这样就不会造成复制链路的中断了

log_slave_update=on 决定是否要把sql线程存放的中继日志记录到从服务器本机的二进制日志中,如果后续要做链路复制,要把该从服务器作为其他从的主服务器,该参数必须配置

5,从库初始化同步主库所有数据

在主库上面备份所有数据
为保持数据库的一致性主库不要有写入操作
mysqldump -uroot -p --all-databases --skip-lock-tables > all.sql
scp all.sql root@192.168.113.130:/root
从库导入数据
mysql -uroot -p < all.sql

可以使用xtrabackup –slave-info 热备工具进行快速备份

6,在从库上面配置启动主从配置连接

主库上查看binlog日志信息
>show master status;
从库配置链接
>change master to master_host='192.168.113.129',master_user='slave',master_password='123456',MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=946;
>start slave; #启动从
>show slave status\G; # 查看状态
注意防火墙跟selinux的设置

7,验证效果

可以在从库创建新的表

或者在原有的表插入数据等

查看从库是否有新建的数据

优点:

1.是mysql最早支持的复制技术,BUG相对较少。

2.对SQL查询没有任何限制。

3.故障处理比较容易。

缺点:

故障转移时重新获取新主的日志点信息比较困难。

指定偏移量错误的时候会可能出现问题

三,mysql基于GTID的复制方式

从MYSQL5.6 开始,mysql开始支持GTID复制。

1,基于日志点复制的缺点

从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致。

基于GTID复制:

从服务器会告诉主服务器已执行的事务的GTID值。
主库会告诉从哪些GTID事务没有被执行。
同一个事务在指定的从库执行一次。

2,什么是GTID

GTID即全局事务ID,器保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID.

GTID=source_id:transaction_id

source_id:是主库的server UUID,在数据目录的auto.cnf 文件中。

transaction_id: 从1开始的一个序列。

3,基于GTID复制的步骤

在主库上创建复制账号及授权

>create user slave@'192.168.113.%' identified by '123456';
>grant all privileges on *.* to slave@'192.168.113.%' identified by '123456';

4,配置主数据库配置信息


vim /etc/my.cnf
log_bin=mysql-bin
server_id=50
gtid-mode=on #打开GTID
#强制事务一致性,保证事务的安全
#注意如果使用了基于事务点日志配置下面两种情况不能使用:
#1.create table 。。select
#2.在事务中使用create temporary table 建立临时表,使用关联更新事务表和非事务表。
enforce_gtid_consistency
#在从服务器记录主服务器发过来的修改日志(5.7之前必须有),增加了IO负载
log-slave-updates=on

5,配置从数据库服务器

vim /etc/my.cnf
server_id=51
log_bin=mysql-bin
relay_log=mysql-relay-bin
gtid-mode=on
enforce-gtid-consistency
read_only=on #建议配置,保证从服务器数据安全性建议配置
master_info_repository=TABLE #从服务器连接主服务器的信息和中继日志存放咱 master_info,和relay_log中。
relay_log_info_repository=TABLE

6,从库初始化同步主库所有数据

在主库上面备份所有数据
为保持数据库的一致性主库不要有写入操作
mysqldump -uroot -p --all-databases --skip-lock-tables > all.sql
scp all.sql root@192.168.113.130:/root
从库导入数据
mysql -uroot -p < all.sql

可以使用xtrabackup –slave-info 热备工具进行快速备份

7,从库启动基于GTID的复制

>change master to master_host='192.168.113.130',master_user='slave',master_password='123456',master_auto_position=1;
>start slave; #启动从库
>show slave status\G; #查看状态

8,验证效果

可以在从库创建新的表

或者在原有的表插入数据等

查看从库是否有新建的数据

四,常见设计复制拓扑

           

         

           

           

               

mysql常规主从复制跟基于GTID的主从复制方法的更多相关文章

  1. 实现mysql的读写分离(mysql-proxy)____1(mysql的主从复制,基于gtid的主从复制,半同步复制,组复制)

    主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程: i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中:主库会生成一个 log ...

  2. 基于GTID搭建主从MySQL

    目录 基于gtid搭建主从MySQL 一.GTID的使用 二.GTID的简介 三.GTID的构成 四.查看GTID的执行情况 4.1 gtid_executed 4.2 gtid_own 4.3 gt ...

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

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

  4. Mysql5.7实现主从复制、基于GTID的主从复制、并行复制

    (一.主从复制) 一.mysql主从复制原理    mysql的默认复制方式是主从复制.Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制, ...

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

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

  6. 配置percona mysql server 5.7基于gtid主主复制架构

    配置mysql基于gtid主主复制架构 环境: 操作系统 centos7. x86_64 mysql版本:Percona-Server-- 测试环境: node1 10.11.0.210 node2 ...

  7. 基于GTID的主从架构异常处理流程

    通常情况下我们主库的binlog只保留7天,如果从库故障超过7天以上的数据没有同步的话,那么主从架构就会异常,需要重新搭建主从架构. 本文就简单说明下如何通过mysqldump主库的数据恢复从库的主从 ...

  8. 基于GTID Replication主从数据不一致操作

    基本的M-S结构   现在master与slave主机数据一致:   mysql> select * from t1; +------+ | id   | +------+ |    1 | | ...

  9. percona mysql server5.7基于gtid的主从复制

    配置mysql基于gtid主从复制架构 一.二进制安装mysql [root@node5 data]# --Linux.x86_64.ssl101.tar.gz [root@node5 data]# ...

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

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

随机推荐

  1. speedtest测速

    wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py chmod a+rx speedtest.py mv speed ...

  2. C# 前台线程 后台线程区别

    前台线程 会随进程一起结束 不管是否完成,后台线程需要执行完毕,进程才能结束 例子: class Program { static void Main(string[] args) { Thread ...

  3. Java方法定义及调用。

    一.什么是方法 1.Java方法是语句的集合,它们在一起执行一个功能. ①方法是解决一类问题的步骤的有序组合 ②方法包含与类或对象中 ③方法在程序中被创建,在其他地方被引用 2.设计方法的原则:方法的 ...

  4. blog2对PTA4,5,6集的习题总结

    一.      前言 通过本三次PTA得题目,我受益匪浅.题量的话不算太多,但是题目难度有些大.在本次PTA第六次题目集中,题目难度较中,第四次题目集第一道水文数据处理与第五次题目集的查询关键字出现次 ...

  5. (0319) uvm 库的安装编译:

    https://mp.weixin.qq.com/s/jCSp89UYsEZGRU2BN5IloA

  6. Android学习——控件ImageView

    1.主要属性 2.缩放类型

  7. vue2源码学习2vuex&vue-router

    1.vue插件编写 插件可以实现对象vue的拓展,比如新增全局属性/方法,添加实例方法,使用mixin混入其他配置项等等.编写插件必须要实现 install 方法,当调用Vue.use()使用插件时, ...

  8. springcloud(八) - 分布式事务seata

    术语 TM(transaction manage)事务管理器: 分布式事务的发起和终结者,负责提交和回滚全局事务. TC(transaction coordinatorr)事务协调器: 协调全局事务和 ...

  9. Javascript格式化数字字符串,如手机号,银行卡号的格式化

    手机号13312341234转化成133 1234 1234 //方式一 function format_tel(tel){ tel = String(tel); return tel.replace ...

  10. PyTables 教程(二)多维表单元格和自动健全性检查,使用链接更方便地访问节点

    翻译自http://www.pytables.org/usersguide/tutorials.html 多维表单元格和自动健全性检查 现在是一个更真实的例子(即代码中有错误)的时候了.我们将创建两个 ...