mysql主从复制/主从备份搭建
前言
最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,会持续更新。
如果对老铁有帮助,帮忙免费点个赞,谢谢你的发财手!
一、主从复制
1)为什么使用主从复制、读写分离?
- 主从复制、读写分离一般是一起使用的。
- 目的很简单,就是为了提高数据库的并发性能。假设是单机,读写都在一台MySQL上面完成,性能肯定不高。如果有三台MySQL,一台mater只负责写操作,两台salve只负责读操作,性能就能大大提高了。
2)主从复制原理
- 1、当Master节点进行insert、update、delete操作时,会按顺序写入到binlog中;
- 2、salve从库连接master主库,Master有多少个slave就会创建多少个binlog dump线程;
- 3、当Master节点的binlog发生变化时,binlog dump 线程会通知所有的salve节点,并将相应的binlog内容推送给slave节点;
- 4、I/O线程接收到 binlog 内容后,将内容写入到本地的 relay-log;
- 5、SQL线程读取I/O线程写入的relay-log,并且根据 relay-log 的内容对从数据库做对应的操作。
二、如何实现主从复制?
假设这里用三台Linux服务器,IP分别是101(Master),102(Slave),103(Slave),确保三台服务器能够相互访问。
我的mysql数据库版本是5.7
1)主库配置
1、修改配置文件
vim /etc/my.cnf
- 添加如下配置:
[mysqld]
#开启binlog
log-bin=mysql-bin # 启用bin log日志
server-id=101 #服务器唯一id