本文介绍在Debian 10(Buster)上安装MariaDB Galera Cluster所需的步骤,对于在MariaDB中运行严重生产工作负载的人来说,数据库的高可用性需要部署Galera集群。它具有的主要功能:它提供主动多主拓扑、你可以读取和写入任何群集节点、它有一个自动节点连接、自动成员资格控制,失败的节点从群集中删除、在行级上具有真正的并行复制、直接客户端连接。
一、更新所有服务器、设置主机名和DNS 1、更新所有服务器 让我们确保我们所有的服务器都得到更新: sudo apt update && sudo apt -y upgrade sudo reboot 也可参考:在Debian/Ubuntu上配置自动安全更新(无人值守升级)的方法。 2、设置主机名和DNS 让我们在服务器中配置适当的hostames: # DB1 sudo hostnamectl set-hostname db1.computingforgeeks.com --static # DB2 sudo hostnamectl set-hostname db2.computingforgeeks.com --static # DB3 sudo hostnamectl set-hostname db3.computingforgeeks.com --static 如果你有DNS服务器,请为所有计算机配置A记录DNS条目,对于基本设置,请在每台计算机上编辑/etc/hosts文件并填充所需的DNS entires: sudo tee -a /etc/hosts<<EOF 10.0.0.2 db1.computingforgeeks.com db1 10.0.0.3 db2.computingforgeeks.com db2 10.0.0.4 db3.computingforgeeks.com db3 EOF 尝试从一台服务器ping另一台服务器的DNS名称: # DB1 $ ping -c 1 db2 $ ping -c 1 db3
二、在所有节点上安装MariaDB Debian 10存储库中可用的MariaDB版本是10.3(参考Debian 10 Buster安装LAMP的方法[MariaDB 10.3+Apache 2.4+PHP 7.3]),如果你想使用MariaDB 10.4,请从MariaDB存储库安装它: sudo apt update sudo apt -y install mariadb-server mariadb-client 通过运行初始配置脚本来保护每个数据库服务器: $ sudo mysql_secure_installation
通过以root用户身份连接到MariaDB进行测试,如下图:
三、配置MariaDB Galera Cluster MariaDB服务默认绑定到127.0.0.1 IP地址,注释掉配置文件/etc/mysql/mariadb.conf.d/50-server.cnf上的绑定行: $ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf #bind-address = 127.0.0.1 1、配置第一个群集节点-DB1 编辑MariaDB配置文件,并将以下内容添加到文件末尾: $ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [galera] wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_address=gcomm:// binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_cluster_name="galera_cluster" wsrep_node_address="db1" 初始化Galera集群: sudo galera_new_cluster sudo systemctl restart mariadb 2、配置其他数据库节点 1]、配置DB2 $ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [galera] wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so # Specify cluster nodes wsrep_cluster_address="gcomm://db1,db2,db3" binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_cluster_name="galera_cluster" wsrep_node_address="db2" 重启mariadb: sudo systemctl restart mariadb 2]、配置DB3 $ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [galera] wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so # Specify cluster nodes wsrep_cluster_address="gcomm://db1,db2,db3" binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 wsrep_cluster_name="galera_cluster" wsrep_node_address="db3" 重启MariaDB: systemctl restart mariadb
四、确认MariaDB Galera群集设置及使用HAProxy配置Galera Cluster负载平衡参考文章 1、确认MariaDB Galera群集设置 以root用户身份从群集中的节点登录MySQL控制台: $ mysql -u root -p
确认群集设置是否正常: $ MariaDB [(none)]> show status like 'wsrep_%';
我们可以确认簇的大小为3,集群中的三个节点: wsrep_cluster_size 3 让我们在db1上创建一个测试数据库,并确认其他节点上的状态: root@db1:~# mysql -u root -p
2、使用HAProxy配置Galera Cluster负载平衡参考文章 配置HAproxy以确保你的数据库服务始终可用,参考在Ubuntu 18.04/CentOS 7上使用HAProxy进行Galera集群高可用性。有了这个设置,你可以轻松隔离节点以进行维护。
相关主题 |