辽宁专业网站建设大全,自己做的网站怎么挂网上,游戏开发需要学多久,南沙区做网站公司介绍#xff1a;级联复制架构
级联复制架构 是一种特殊的主从结构#xff0c;之前聊到的几种主从结构都只有两层#xff0c;但级联复制架构中会有三层#xff0c;关系如下#xff1a; 也就是在级联复制架构中#xff0c;存在两层从库#xff0c;这实际上属于一主多从架…介绍级联复制架构
级联复制架构 是一种特殊的主从结构之前聊到的几种主从结构都只有两层但级联复制架构中会有三层关系如下 也就是在级联复制架构中存在两层从库这实际上属于一主多从架构的升级版毕竟如果一个主节点存在多个从节点时多个从节点都会同时去主节点拉取新数据如果数据量较大就会导致主节点的 I/O 负载过高因此这种级联复制架构要解决的问题也就是多个从库会对主库造成太大压力的问题。
这个过程中第一层从库只有一个节点它会负责从主库上拉取最新的数据接着第二层的多个从库会从上一层的从库中拉取数据这样能够这在从库较多的情况下尽量降低数据同步对主节点的性能影响。 案例三台主机实现 级联复制 // 前置工作
yum install mariadb-server -y
systemctl enable --now mariadb// 关闭防火墙 and SELinux
setenforce 0
systemctl disable --now firewalld
# 10.0.0.8 充当 master
# 10.0.0.18 充当级联 slave
# 10.0.0.28 充当 slave
----
// 在 master 主节点实现
[rootmaster ~] vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
server-id8
log-bin # 开启二进制日志功能 ( 建议: 加个二进制日志存放路径 )[rootmaster ~] systemctl restart mariadb
[rootmaster ~] mysql
MariaDB [(none)] show master logs; // 记录二进制位置, 给中间级联从节点使用
-------------------------------
| Log_name | File_size |
-------------------------------
| mariadb-bin.000001 | 330 |
-------------------------------
1 row in set (0.001 sec)// 创建用户
## 注意: 修改 IP 地址
MariaDB [(none)] grant replication slave on *.* to repluser10.0.0.% identified by 123456;
[rootslave ~] mysqldump -A -F --single-transaction --master-data1 /root/all.sql
[rootmaster ~] scp /root/all.sql 10.0.0.18:/root # 拷贝到从节点
[rootmaster ~] scp /root/all.sql 10.0.0.28:/root # 拷贝到从节点----
// 在中间级联 slave 从节点实现 ( 必须开启 log_slave_updates 选项 )
[rootslave1 ~] vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
server-id18 # 唯一 ID
log-bin # 开启二进制日志功能
log_slave_updates # 级联复制中间节点的必选项 ( MySQL8.0 此为默认值,可以不人为添加 )
read-only # 只读
[rootslave1 ~] systemctl restart mariadb# 还原数据库
[rootslave1 ~] vim /root/all.sql
CHANGE MASTER TOMASTER_HOST10.0.0.8,MASTER_USERrepluser,MASTER_PASSWORD123456,MASTER_PORT3306,MASTER_LOG_FILEmariadb-bin.000001,MASTER_LOG_POS330;[rootslave1 ~] mysql
MariaDB [(none)] set sql_log_bin0;
MariaDB [(none)] source /root/all.sql
MariaDB [(none)] show master logs; // 记录二进制位置, 给第三个节点使用
-------------------------------
| Log_name | File_size |
-------------------------------
| mariadb-bin.000001 | 330 |
-------------------------------
1 row in set (0.000 sec)MariaDB [(none)] set sql_log_bin0;
MariaDB [(none)] start slave;// 验证当前主节点与中间级联节点的主从复制架构
MariaDB [(none)] create database db1; # 主节点
MariaDB [(none)] show databases; # 中间级联从节点
--------------------
| Database |
--------------------
| db1 |
| information_schema |
| mysql |
| performance_schema |
--------------------
4 rows in set (0.001 sec)// 验证线程
MariaDB [mysql] show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.80.8Master_User: repluserMaster_Port: 3306Connect_Retry: 60Master_Log_File: mariadb-bin.000002Read_Master_Log_Pos: 516Relay_Log_File: mariadb-relay-bin.000002Relay_Log_Pos: 684Relay_Master_Log_File: mariadb-bin.000002Slave_IO_Running: Yes # 运行中Slave_SQL_Running: Yes # 运行中----
// 在第三个节点 slave 上实现
[rootslave2 ~] vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
server-id28 # 唯一 ID
log-bin # 二进制日志功能 ( 非必须 )
read-only # 只读[rootslave2 ~] systemctl restart mariadb[rootslave2 ~] vim /root/all.sql
CHANGE MASTER TOMASTER_HOST10.0.0.18,MASTER_USERrepluser,MASTER_PASSWORD123456,MASTER_PORT3306,MASTER_LOG_FILEmariadb-bin.000001,MASTER_LOG_POS330;[rootslave2 ~] mysql
MariaDB [(none)] source /root/all.sql
MariaDB [(none)] start slave;// 验证线程
MariaDB [(none)] show slave status\G
*************************** 1. row ***************************Slave_IO_Running: Yes # 运行正常Slave_SQL_Running: Yes # 运行正常----
// 上一步验证如果存在问题 ( 重要! )
// 解决: ( 重新配置复制关系, 结果直接没有报错, 这个问题也就修复完成了 )stop slave;reset slave;change master to master_host192.168.80.8, master_userrepluser, master_password123456, master_port3306;start slave;
----# 验证级联复制架构 ( 主从复制 )
MariaDB [(none)] create database db2; # 主节点
MariaDB [(none)] show databases; # 从节点
MariaDB [(none)] show databases; # 从节点