MySQL/MariaDB数据库的主从级联复制
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.主从复制类型概述
1>.主从复制
博主推荐阅读:
https://www.cnblogs.com/yinzhengjie/p/11816066.html
2>.一主多从
其实就是重复主从复制的步骤即可。一个master节点多个slave节点,此时多个slave节点同时同步master节点。
3>.级联复制
在一主多从的架构上稍作改进,依旧是一个master节点,指定一个slave节点从master节点拉取数据,其它slave节点从该slave节点拉取数据的架构。
二.级联复制案例实战
1>.试验架构说明
node102.yinzhengjie.org.cn(172.30.1.102):
master节点 node103.yinzhengjie.org.cn(172.30.1.103): slave节点,级联节点,该节点直接通过master节点复制数据
node104.yinzhengjie.org.cn(172.30.1.104):
slave节点,该节点并不直接通过从master节点复制数据,而是通过级联节点复制数据
2>.master节点配置文件("/etc/my.cnf")
[root@node102.yinzhengjie.org.cn ~]# cat /etc/my.cnf [mysqld] binlog_format = row #推荐使用基于行数据的复制 log_bin = /data/logbin/mysql-bin #需要启用二进制日志,建议和数据文件分开放存放 server-id = 102 #为当前节点设置一个全局惟一的ID号,用于标识当前MySQL实例 log-basename = master #可选项,设置datadir中日志名称,确保不依赖主机名 character-set-server = utf8mb4 default_storage_engine = InnoDB datadir = /var/lib/mysql socket = /var/lib/mysql/mysql.sock [mysqld_safe] log-error = /var/log/mariadb/mariadb.log pid-file = /var/run/mariadb/mariadb.pid !includedir /etc/my.cnf.d [root@node102.yinzhengjie.org.cn ~]#
3>.备份master节点数据并拷贝备份数据级联节点(模拟对生产环境再用的数据库进行级联复制)
[root@node102.yinzhengjie.org.cn ~]# mysqldump -uroot -pyinzhengjie -A -F --single-transaction --master-data=1 > /root/all_bak.sql
[root@node102.yinzhengjie.org.cn ~]# [root@node102.yinzhengjie.org.cn ~]# ll -h total 20M -rw-r--r-- 1 root root 20M Nov 8 14:26 all_bak.sql [root@node102.yinzhengjie.org.cn ~]#
[root@node102.yinzhengjie.org.cn ~]# scp all_bak.sql node103.yinzhengjie.org.cn:~ root@node103.yinzhengjie.org.cn's password: all_bak.sql 100% 20MB 91.4MB/s 00:00 [root@node102.yinzhengjie.org.cn ~]#