MySQL/MariaDB主从又叫作Replication、AB复制。简单讲就是A和B两台机器作主从后,在A上写数据,另一台B也会跟着写数据,二者数据实时同步的,MySQL主从基于binlog,主上须开启binlog才能进行主从。html
主从过程大体有3个步骤mysql
1)主将更改操做记录到binlog里 2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里 3)从根据relaylog里面的sql语句按顺序执行
主从有3个线程:linux
主上有一个log dump线程,用来和从的I/O线程传递binlog 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另一个SQL线程用来把relaylog里面的sql语句落地
mysql主从使用场景:web
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/
两台机器sql
wangzb01 主 wangzb02 从
两台机器都安装 MariaDB数据库
wangzb01上开启binlog, 定义server-id, 定义log-bin 重启服务 受权主从用户 grant replication slave on *.* to 'repl'@'192.168.153.134' identified by 'repl_passwd';
wangzb02上定义server-id 增长 replicate_wild_do_table 或者 replicate_wild_ignore_table
备份 mariabackup --backup --user=root --password=aminglinux --target-dir /data/190310ide
拷贝测试
rsync -a /data/190327/ 192.168.153.134:/data/190327/
在从上恢复spa
中止数据库 清空datadir mariabackup --prepare --target-dir /data/190327/ mariabackup --copy-back --target-dir /data/190327/ 改属主、属组 启动
在从上
stop slave; change master to master_host='192.168.153.133', master_port=3306, master_user='repl', master_password='repl_passwd', master_log_file='xxxxx', master_log_pos=xxx; start slave;
从上:
show slave status\G
主上建立库、建立表,从上查看