返回

Linux下实现MySQL双主热备高效部署指南

后端

随着互联网应用的飞速发展,数据库系统在企业和组织中扮演着越来越重要的角色,如何保障数据库系统的稳定性和可用性成为了一项关键任务。MySQL双主热备是一种有效的数据库高可用解决方案,它通过部署两个主节点,并在它们之间进行数据同步,当其中一个主节点发生故障时,另一个主节点可以立即接管,从而最大限度地减少服务中断时间。

一、准备环境

1.1、服务器资源

服务名称 IP 系统 内存 磁盘
Linux主服务器1 192.168.1.1 CentOS 7.6 16GB 500GB
Linux主服务器2 192.168.1.2 CentOS 7.6 16GB 500GB

1.2、软件资源

软件名称 版本 下载链接
MySQL 8.0.27 https://dev.mysql.com/downloads/mysql/
Percona XtraDB Cluster 8.0.27 https://www.percona.com/software/percona-xtradb-cluster/

二、安装配置

2.1、安装MySQL

在两台服务器上分别安装MySQL,并配置相同的root用户密码。

yum install mysql-server -y
systemctl start mysqld
systemctl enable mysqld

2.2、安装Percona XtraDB Cluster

在两台服务器上分别安装Percona XtraDB Cluster。

wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-8.0/Percona-XtraDB-Cluster-8.0.27-el7.x86_64.rpm
yum localinstall Percona-XtraDB-Cluster-8.0.27-el7.x86_64.rpm -y
systemctl start pxc
systemctl enable pxc

2.3、配置MySQL

在两台服务器上分别编辑/etc/my.cnf文件,添加以下配置:

[mysqld]
bind-address = 0.0.0.0
server-id = 1
innodb-flush-log-at-trx-commit = 2
innodb-doublewrite = 1
innodb-log-buffer-size = 16MB
innodb-flush-log-at-timeout = 100
binlog-format = ROW
transaction-write-set-extraction = XXHASH64

2.4、配置Percona XtraDB Cluster

在两台服务器上分别编辑/etc/pxc.cnf文件,添加以下配置:

[wsrep]
node_address=192.168.1.1:4406,192.168.1.2:4406
node_name=node1,node2
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://
wsrep_sst_method=rsync
wsrep_sst_auth=root:password

三、数据同步

3.1、初始化集群

在其中一台服务器上执行以下命令:

pxc-create-cluster --force --pxc-encrypt-cluster --password=password

3.2、加入集群

在另一台服务器上执行以下命令:

pxc-join-cluster --pxc-encrypt-cluster --password=password --force

3.3、验证集群

在两台服务器上分别执行以下命令:

mysql -uroot -ppassword -e "show status like '%wsrep%';"

输出结果应该显示集群状态为"Synced"。

四、故障切换

4.1、模拟故障

在其中一台服务器上执行以下命令:

systemctl stop mysqld

4.2、故障切换

在另一台服务器上执行以下命令:

pxc-switch-master --force

4.3、验证故障切换

在两台服务器上分别执行以下命令:

mysql -uroot -ppassword -e "show master status;"

输出结果应该显示当前主节点为故障切换后的服务器。

五、总结

在Linux环境下部署MySQL双主热备可以有效地提高数据库系统的可靠性和可用性,确保在发生故障时能够快速切换到备用主节点,从而最大限度地减少服务中断时间。通过本文提供的详细指南,您可以轻松地实现MySQL双主热备的部署,为您的数据库系统提供坚实的保障。