编辑
2023-06-25
搭建文档
00
请注意,本文编写于 361 天前,最后修改于 361 天前,其中某些信息可能已经过时。

目录

CentOS 7 使用 Percona XtraDB Cluster 部署 MySQL HA 与 VIP 负载均衡
准备工作
安装 Percona XtraDB Cluster
1. 添加 Percona 存储库
2. 启用 Percona 存储库
3. 安装 Percona XtraDB Cluster
配置 Percona XtraDB Cluster
1. 配置 MySQL
2. 初始化第一个节点
3.修改密码
4.创建同步密码
4.在其他节点上启动 Percona XtraDB Cluster
步骤 1:在所有节点上创建测试数据库和表
步骤 2:插入记录
配置负载均衡和故障转移
1. 安装 keepalived
2. 配置 keepalived
3. 启动并启用 keepalived
备份与恢复
备份
恢复

CentOS 7 使用 Percona XtraDB Cluster 部署 MySQL HA 与 VIP 负载均衡

Percona XtraDB Cluster(PXC)是一个高可用、高性能、并且易于扩展的开源数据库解决方案。它基于MySQL数据库,并使用Percona Server和Galera Cluster技术构建。PXC旨在为企业级应用程序提供无缝的可扩展性和高可用性,同时降低操作复杂性和成本。

以下是Percona XtraDB Cluster的一些核心特性:

  1. 高可用性:通过使用Galera Cluster技术,PXC可以实现几乎无停机时间的数据库高可用性。数据库的所有节点都是主节点,可以同时执行写入和读取操作。当一个节点失败时,其他节点可以自动接管并继续提供服务。
  2. 数据同步复制:PXC支持真正的多主同步复制,这意味着在所有节点上的数据更改都会实时同步。这大大减少了数据丢失风险,并确保了数据的一致性。
  3. 负载均衡和故障切换:PXC可以通过负载均衡技术将读写请求分布到各个节点,从而提高系统性能。此外,它还支持自动故障切换,确保数据库服务在节点故障时不间断。
  4. 在线模式更改:PXC允许在不中断服务的情况下添加或删除节点,这意味着可以在不影响应用程序性能的情况下轻松扩展集群。
  5. 数据压缩和加密:PXC支持数据压缩和加密,以降低存储成本并保护数据安全。
  6. 备份和恢复:Percona XtraBackup工具提供了对PXC进行完整、增量和部分备份的能力,同时支持在线备份和恢复,以便在数据丢失或损坏时快速恢复服务。

准备工作

确保您有三个运行 CentOS 7 的节点,以便部署三节点 Percona XtraDB Cluster。在本指南中,我们将使用以下 IP 地址和主机名(请根据实际情况替换):

node1: 192.168.100.15 node2: 192.168.100.16 node3: 192.168.100.17

修改主机名

sudo hostnamectl set-hostname node1 sudo hostnamectl set-hostname node2 sudo hostnamectl set-hostname node3
  • 修改vhosts
192.168.100.15 node1 192.168.100.16 node2 192.168.100.17 node3
  • 关闭防火墙
sudo systemctl stop firewalld sudo systemctl disable firewalld

安装 Percona XtraDB Cluster

1. 添加 Percona 存储库

在每个节点上,使用以下命令下载并安装 Percona 存储库:

bash
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y

2. 启用 Percona 存储库

bash
sudo percona-release setup pxc57

3. 安装 Percona XtraDB Cluster

bash
sudo yum install Percona-XtraDB-Cluster-57 -y

配置 Percona XtraDB Cluster

1. 配置 MySQL

在每个节点上,编辑 /etc/my.cnf 配置文件。删除现有的配置(如果有),并添加以下内容(确保在以下配置中替换您的 IP 地址和节点名称):

ini
[mysqld] # Galera Cluster 配置 wsrep_provider=/usr/lib64/galera3/libgalera_smm.so wsrep_cluster_address=gcomm://192.168.100.15,192.168.100.16,192.168.100.17 wsrep_node_name=mnode1 wsrep_node_address=192.168.100.15 binlog_format=ROW default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 # SST 配置 wsrep_sst_method=xtrabackup-v2 wsrep_sst_auth=sstuser:sstpassword [client] socket=/var/lib/mysql/mysql.sock

在其他节点上重复此步骤,确保更改 wsrep_node_namewsrep_node_address 以匹配每个节点的主机名和 IP 地址。

2. 初始化第一个节点

在第一个节点上,使用以下命令启动 Percona XtraDB Cluster:

bash
sudo systemctl start mysql@bootstrap.service

3.修改密码

mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'Wxq3012@';

4.创建同步密码

CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'sstpassword'; GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost'; FLUSH PRIVILEGES;

4.在其他节点上启动 Percona XtraDB Cluster

在其他节点上,使用以下命令启动 Percona XtraDB Cluster:

bash
sudo systemctl start mysql

为了测试数据库高可用性,我们将执行以下步骤:

  1. 在所有节点上创建测试数据库和表。
  2. 插入记录。
  3. 模拟故障。
  4. 验证故障转移后数据仍可用。

步骤 1:在所有节点上创建测试数据库和表

在其中一个节点上登录到 MySQL,然后创建一个测试数据库和表:

sql
CREATE DATABASE test_db; USE test_db; CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));

由于 Percona XtraDB Cluster 是一个同步复制集群,这些更改应该自动传播到所有其他节点。

步骤 2:插入记录

在相同的节点上,插入一些记录:

sql
INSERT INTO test_table (name) VALUES ('John Doe'); INSERT INTO test_table (name) VALUES ('Jane Doe');

查询刚刚插入的记录以验证它们已正确插入:

sql
SELECT * FROM test_table;

您应该看到如下输出:

+----+----------+ | id | name | +----+----------+ | 1 | John Doe | | 2 | Jane Doe | +----+----------+

配置负载均衡和故障转移

我们将使用 keepalived 配置虚拟 IP (VIP) 实现负载均衡和故障转移。

1. 安装 keepalived

在每个节点上,使用以下命令安装 keepalived

bash
sudo yum install keepalived -y

2. 配置 keepalived

在每个节点上,创建 /etc/keepalived/keepalived.conf 配置文件,并将以下内容复制到该文件中(确保替换虚拟 IP 地址):

ini
vrrp_script chk_mysql { script "pidof mysqld" interval 2 weight 2 } vrrp_instance VI_1 { interface eth0 state BACKUP virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass my_password } virtual_ipaddress { 192.168.100.28/24 dev eth0 } track_script { chk_mysql } }

在其他节点上重复此步骤,请注意更改 priority 字段的值。在主节点上,将其设置为较高的值(例如 200),在其他节点上将其设置为较低的值(例如 100 和 50)。

3. 启动并启用 keepalived

在每个节点上,使用以下命令启动并启用 keepalived 服务:

bash
sudo systemctl start keepalived sudo systemctl enable keepalived

现在,您已经成功在 CentOS 7 上使用 Percona XtraDB Cluster 部署了 MySQL 高可用性集群,并实现了虚拟 IP (VIP) 负载均衡和故障转移。从此,客户端可以使用虚拟 IP 地址连接到集群,实现无缝的负载均衡和故障转移。

Percona XtraDB Cluster(PXC)提供了一套完整的工具和方法来实现备份、恢复和监控。以下是关于PXC备份恢复和切换监控的详细介绍:

备份与恢复

对于PXC,可以使用Percona XtraBackup工具进行备份和恢复。Percona XtraBackup是一个开源的热备份解决方案,提供了对InnoDB和XtraDB存储引擎的数据库进行在线备份的能力。

备份

  1. 完整备份:要执行完整备份,请在命令行中运行以下命令:

    xtrabackup --backup --target-dir=/path/to/backup/directory ``` ``/path/to/backup/directory`是备份文件存储的目录。
  2. 增量备份:要执行增量备份,请在命令行中运行以下命令:

    xtrabackup --backup --target-dir=/path/to/incremental/backup/directory --incremental-basedir=/path/to/base/backup/directory ``` ``/path/to/incremental/backup/directory`是增量备份文件存储的目录,`/path/to/base/backup/directory`是完整备份文件的目录。

恢复

  1. 准备数据:在恢复之前,需要准备数据。对于完整备份,运行以下命令:

    xtrabackup --prepare --target-dir=/path/to/backup/directory ``` 对于增量备份,首先准备完整备份,然后将增量备份应用到完整备份:

    xtrabackup --prepare --apply-log-only --target-dir=/path/to/base/backup/directory xtrabackup --prepare --apply-log --target-dir=/path/to/base/backup/directory --incremental-dir=/path/to/incremental/backup/directory

  2. 恢复数据:将准备好的备份数据复制到MySQL数据目录,然后启动MySQL服务:

    rsync -avr /path/to/backup/directory/ /var/lib/mysql/ chown -R mysql:mysql /var/lib/mysql systemctl start mysql ```
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:丁一

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!