返回
Linux下实现MySQL双主热备高效部署指南
后端
2023-10-31 23:08:08
随着互联网应用的飞速发展,数据库系统在企业和组织中扮演着越来越重要的角色,如何保障数据库系统的稳定性和可用性成为了一项关键任务。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双主热备的部署,为您的数据库系统提供坚实的保障。