目录
1.简介
数据库高可用集群是指通过技术手段确保数据库服务在出现故障时仍能持续可用的一套系统架构
当主节点故障时,系统能自动切换到备用节点,多节点存储相同数据,防止单点数据丢失,最大限度减少服务中断时间
得到以下方案:
多节点同步(wsrep同步):
三个节点(node1、node2、node3)组成集群,数据实时同步。
使用 wsrep_cluster_address="gcomm://192.168.30.5,192.168.30.6,192.168.30.7" 确保集群通信。
通过 wsrep_ready=ON 和 wsrep_cluster_size=3 验证集群状态。
自动故障转移:如果某个节点(如 node1)宕机,其他节点(node2、node3)仍然可以提供服务。
新写入的数据会在集群恢复后自动同步。
读写多主模式:
所有节点均可读写(不同于传统主从架构),提高并发能力。
负载均衡
通过 HAProxy 实现了数据库请求的负载均衡:
请求分发:HAProxy 监听 3307 端口,将请求按 roundrobin 轮询策略分发给后端三个 MariaDB 节点。
权重(weight)控制流量分配(node1=1,node2=2,node3=4)。
健康检查:check 参数让 HAProxy 定期检测节点是否存活,自动剔除故障节点。
监控面板:
通过 http://192.168.30.5:9000/stats 可查看 HAProxy 的负载情况,管理后端节点。
2.高可用与负载均衡具体操作实现
[root@node1 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.30.5 node1
192.168.30.6 node2
192.168.30.7 node3都执行:
yum install mariadb mariadb-server galera -ysystemctl start mariadb
mysql_secure_installation
初始化数据库
[root@node1 ~]# mysql -uroot -p000000三个节点都登录数据库,并赋予root用户远程权限,命令如下:
MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by '000000';vim /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.30.5,192.168.30.6,192.168.30.7"
wsrep_node_name=node1
wsrep_node_address=192.168.30.5
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
#
# Allow server to accept connections on all interfaces.
#
bind-address=192.168.30.5
#
# Optional setting
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0# this is only for embedded server
-----------------------------------------------------------------------
node2配置:vi /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so