云网牛站
所在位置:首页 > Linux云数据库 > 在Debian 10(Buster)上设置MariaDB Galera集群的方法

在Debian 10(Buster)上设置MariaDB Galera集群的方法

2019-08-15 11:35:30作者:陈铜稿源:云网牛站

本文介绍在Debian 10(Buster)上安装MariaDB Galera Cluster所需的步骤,对于在MariaDB中运行严重生产工作负载的人来说,数据库的高可用性需要部署Galera集群。它具有的主要功能:它提供主动多主拓扑、你可以读取和写入任何群集节点、它有一个自动节点连接、自动成员资格控制,失败的节点从群集中删除、在行级上具有真正的并行复制、直接客户端连接。

在Debian 10(Buster)上设置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

在Debian 10(Buster)上设置MariaDB Galera集群的方法

通过以root用户身份连接到MariaDB进行测试,如下图:

在Debian 10(Buster)上设置MariaDB Galera集群的方法

 

三、配置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

在Debian 10(Buster)上设置MariaDB Galera集群的方法

确认群集设置是否正常:

$ MariaDB [(none)]> show status like 'wsrep_%'; 

在Debian 10(Buster)上设置MariaDB Galera集群的方法

我们可以确认簇的大小为3,集群中的三个节点:

wsrep_cluster_size    3

让我们在db1上创建一个测试数据库,并确认其他节点上的状态:

root@db1:~# mysql -u root -p

在Debian 10(Buster)上设置MariaDB Galera集群的方法

2、使用HAProxy配置Galera Cluster负载平衡参考文章

配置HAproxy以确保你的数据库服务始终可用,参考在Ubuntu 18.04/CentOS 7上使用HAProxy进行Galera集群高可用性。有了这个设置,你可以轻松隔离节点以进行维护。

 

相关主题

在Ubuntu 18.04/16.04上配置MariaDB Galera Cluster的方法

精选文章
热门文章