5.77MariaDB主从
主从介绍:
MySQL/MariaDB主从又叫做Replication、AB复制。
简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。
MySQL主从基于binlog,主上须开启binlog才能进行主从。
5.77.1主从过程大致有3个步骤
1)主将更改操作记录到binlog里
2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里
3)从根据relaylog里面的sql语句按顺序执行
5.77.2主从有3个线程:
- 主上有一个log dump线程,用来和从的I/O线程传递binlog
- 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog
- 另外一个SQL线程用来把relaylog里面的sql语句落地
5.77.3mysql主从使用场景:
1)数据备份,主机器宕机,从机器还能随时对web提供服务
2)读写分离,作为一个从库,读的库,减轻主库的压力,数据备份且可以分担主机器被调用数据时的压力,写的操作只能在主库,不能在从库,如果从库写数据就会导致主从不同步。
补充几篇文章,希望大家有时间看看,面试的时候也许会被问到
https://blog.csdn.net/xiaoyi23000/article/details/80521423 https://www.cnblogs.com/abobo/p/4242417.html http://blog.itpub.net/15498/viewspace-2125085/
5.78 主从搭建
准备
两台机器
aming01 主
aming02 从
两台机器都安装 MariaDB
5.78.1 主机配置
-
重启服务
-
授权主从用户
grant replication slave on . to 'repl'@'192.168.222.129' identified by 'repl_passwd';
flush privileges;
5.78.2从机上配置
-
aming02上定义server-id
编辑客户机的/etc/my.cnf -
备份主上的数据,恢复到从上
备份主机内容:
mariabackup --backup --user=root --password=aminglinux --target-dir /data/190310 -
同步到从机上
rsync -a /data/190310/ 192.168.222.129:/data/190310/ 在从上恢复 -
停止数据库
-
清空datadir
-
恢复数据
mariabackup --prepare --target-dir /data/190310/
mariabackup --copy-back --target-dir /data/190310/
恢复的数据会复制到mysql启动脚本所指定的目录中。 -
把库文件的属主和属组都改为mysql(因为之前是由root用户创建的)
-
启动
5.78.3 开启主从同步
- 在从的数据库中:
stop slave;
change master to master_host='192.168.222.128', master_port=3306, master_user='repl', master_password='repl_passwd', master_log_file='xxxxx', master_log_pos=xxx;
start slave;
master_host就是主机ip
master_port默认3306
master_user在主机上制作的用于传数据的用户
master_logfiile和log_pos如下图查找