主从复制
学习内容
1. 备份的三种类型
1. 热备份
2. 逻辑备份
3. 物理备份
2. 情景
⼊职企业,发现企业架构为⼀主多从,但是两台从服务器和主库不同 步,但是每天会全库北⽅主服务器上的数据到从服务器,由于数据量 不是很⼤,所以没有⼈处理主从不同步的问题。
2. 技术
1. 熟悉mysql数据库常⻅主从架构
2. 理解mysql主从架构实现原理
3. 掌握mysql主从架构的搭建
3. 业务场景
1. 企业对数据安全性越来越重视,由于常规备份不能实时记录 数据库的所有状态,为了能够保障数据库实时备份冗余,希 望将现有的单机数据库变成双机热备
4. ⽬标
1. 了解什么mysql的replication
2. 理解mysql的replication的架构原理
3. 掌握mysql基本复制架构 m-s
4. 了解和掌握基于GTID复制特点以及搭建
集群概述
1. 集群主要类型
1. ⾼可⽤集群 High Avaible Cluster HA cluster
2. ⾼可⽤集群是指通过特殊软件,把独⽴的服务器连接起来, 组成⼀个能够提供故障切换(Fail Over)功能的集群
2. ⾼可⽤标准
3. 常⽤的集群架构
1. mysql replication
2. mysql cluster
3. mysql group replication MGR
4. Maradb Galera CLuster
5. MHA|keepalived|HeatBeat|Lvs,Haproxy等技术构建⾼可⽤ 集群
复制原理
1. replication,可以实现将数据从⼀台数据库服务器(mster)复制 到多台数据库服务器slave
2. 默认情况下,replication属于异步复制,所以⽆需⻓连接
3. ⼯作原理
1. master 主服务器
2. slave 从服务器
3. 描述
1. slave端的io线程发送请求给master端的binlog dump线 程
2. master端的binlog dump线程获取⼆进制⽇志信息(⽂ 件名和位置信息)发送给slave端的io线程 3. slave端的io线程获取到内容,依次写到slave端relay log (中继⽇志)并把master端的binlog⽂件名和位置记录 到master。info⾥头,
4. slave端的sql线程检测到relaylog中的内容更新,就会解 析relaylog中的更新内容,并执⾏这些操作,从⽽达到和 master端数据⼀致
复制架构体系
1. 双机热备 主从复制
1. 默认情况下 master接收读写,从服务器只接受读
2. 级联复制
1. 可以分担读的压⼒
2. 中间服务器出现故障,就瘫痪了
3. 并联复制 ⼀主多从
1. 解决单点故障
2. 承担更多的读的压⼒
3. 从服务器都从主服务器读取数据,master服务器压⼒⼤
4. 双主复制
1. 看起来可以同时接收读写,实际运作中只有⼀台服务器在⼯ 作,另外⼀台只接受读
安装前的环境准备
1. 普通的ab复制,最基本的架构 M-S
2. 两者数据库的的版本必须⼀致
3. 环境的规划
4.前期准备,克隆机器,设置ip,修改主机名称,关闭 NEtworkManager,防⽕墙 selinux,配置yum源,配置时间同步
时间同步是⾮常重要的设置
ntpdate cn.ntp.org.cn
主从复制核⼼思路
1. 思路
1. slave和master必须安装相同的msyql版本 # master服务器中添加 sed -i '$a192.168.137.80 master.msyql.yuanyu.zhangmin' /etc/hosts # slave服务器中添加 sed -i '$a192.168.137.90 slave.msyql.yuanyu.zhangmin' /etc/hosts ntpdate cn.ntp.org.cn
2. master开启⼆进制⽇志,slave必须开始relay⽇志
3. mster端和slava端的server-id不能⼀致
4. se
1. master必须创建⼀个复制⽤户
2. 保持master和slave端初始数据⼀致
3. slave端配置主从复制
2. 思路
1. 思路
主从复制之master配置
1.编写mysql安装脚本
1. 上传mysql安装包到mstaer和slave
2. 编写脚本
3. 编写配置⽂件
4. 重启服务
5. 设置开机启动
主从复制之slave从服务器软件的安装
1. 不需要初始化
相对于主服务器的安装与配置,从服务器不需要初始化,他的数 据都来⾃于主服务器,其他都⼀样
2. 查看⽂件
3. 脚本
4. 配置⽂件
主从复制之数据同步
1. master服务器同步到slave服务器
1. 停⽤master服务器msyql服务
service mysql8 stop
2. master删除/usr/local/mysql/data/auto.cnf 每安装⼀个 mysql软件,data数据⽬录都会产⽣⼀个auto.cnf⽂件,⾥⾯ 是⼀个唯⼀性编号,相当于每个⼈的身份证编号
3. master和slave都安装rsync
yum -y install rsync
4. 同步master中的data到slave对应位置
rsync -av /usr/local/mysql/data
root@10.1.1.110:/usr/local/mysql/
5. 启动主服务器和从服务器
6. 登录从服务器
主从复制的实现
1. master创建授权账号
2. 在master中锁表,然后查看⼆进制⽂件和位置
3. 在从服务器中,使⽤change master to 指定主服务器,并实现数 据同步
4. 启动slave数据同步,查看状态
5. 常⻅⽂件
1. change-master-to写错
6. 解锁⽂件
8.0需要ssl⾮对称加密
1. 获得远程master主机的公钥
2. 登录slave服务器本地的数据库
mysql -pZhang_Min_666 -P3310
3. 停⽤slave服务,重新设置slave服务
4. 启动slave服务
slave服务器不⼩⼼写⼊数据的解决⽅案 基于gtids的主从复制搭建