Percona XtraDB Cluster 集群环境建立与验证指南

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
Percona XtraDB Cluster 集群环境建立与验证指南
Percona XtraDB Cluster 是MySQL数据库的一种集群方案。并且与 MySQL Server 社区版本、Percona Server 和 MariaDB 兼容。
一、在Ubuntu上安装Percona XtraDB Cluster
实验环境:
    假设有3台计算机设备安装了ubuntu系统,将被用作3个节点:
    Node        Host        IP
    Node1       pxc1        172.16.24.209
    Node2       pxc2        172.16.24.208
    Node3       pxc3        172.16.24.207

前置条件:
    (1) 确保一下端口没被防火墙屏蔽或被其他进程占用:
    3306
    4444
    4567
    4568
    (2) 卸载 apparmor
    sudo apt-get remove apparmor

安装步骤:
    在每一台设备上执行下列命令:
    wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
    sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
    sudo apt update
    sudo apt install percona-xtradb-cluster-full-57
    passord:(设置root用户的密码)
    
    至此,percona-xtradb-cluster已经安装,mysql进程会自动开始运行.
    sudo service mysql stop
    

二、配置节点
1. 初始化集群
以第1台设备作为第1个集群节点。在 /etc/mysql/my.cnf 添加如下配置:
###############################################################
[mysqld]
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://
wsrep_node_name=pxc1
wsrep_node_address=172.16.24.209
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
log_error=/var/log/mysql/error.log
###############################################################
完成修改之后,执行:
sudo /etc/init.d/mysql bootstrap-pxc
数据库将以自举模式启动。至此,集群初始化工作已经完成。登录MySQL,查看初始化结果:
bn@u16:~$ mysql -uroot -p
Enter password: (输入root用户的密码)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.19-17-57-log Percona XtraDB Cluster (GPL), Release rel17, Revision c10027a, WSREP version 29.22, wsrep_29.22

Copyright (c) 2009-2017 Percona LLC and/or its affiliates
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
mysql> show status like 'wsrep%';
+----------------------------------+--------------------------------------+
| Variable_name                    | Value                                |
+----------------------------------+--------------------------------------+
| wsrep_local_state_uuid           | 0d718de1-a19c-11e7-81e3-127c64915155 |
| wsrep_protocol_version           | 7                                    |
| wsrep_last_committed             | 4                                    |
...
| wsrep_local_state_comment        | Synced                               |
...
| wsrep_cluster_conf_id            | 1                                    |
| wsrep_cluster_size               | 1                                    |
| wsrep_cluster_state_uuid         | 0d718de1-a19c-11e7-81e3-127c64915155 |
| wsrep_cluster_status             | Primary                              |
| wsrep_connected                  | ON                                   |
| wsrep_local_bf_aborts            | 0                                    |
| wsrep_local_index                | 0                                    |
| wsrep_provider_name              | Galera                               |
| wsrep_provider_vendor            | Codership Oy <info@codership.com>    |
| wsrep_provider_version           | 3.22(r8678538)                       |
| wsrep_ready                      | ON                                   |
+----------------------------------+--------------------------------------+
67 rows in set (0.00 sec)

2. 添加节点
添加第2台设备,修改其配置文件 /etc/mysql/my.cnf ,添加如下语句:
###############################################################
[mysqld]
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://172.16.24.209,172.16.24.208,172.16.24.207
wsrep_node_name=pxc2
wsrep_node_address=172.16.24.208
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
log_error=/var/log/mysql/error.log
###############################################################
退出重启即可。重启后也登录MySQL,执行“show status like 'wsrep%';”,查看添加结果。


添加第3台设备,修改其配置文件 /etc/mysql/my.cnf ,添加如下语句:
###############################################################
[mysqld]
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://172.16.24.209,172.16.24.208,172.16.24.207
wsrep_node_name=pxc3
wsrep_node_address=172.16.24.207
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
log_error=/var/log/mysql/error.log
###############################################################
退出重启即可。重启后也登录MySQL,执行“show status like 'wsrep%';”,查看添加结果。

三、验证写集复制功能(Write-Set Replication)
1. Create a new database on the second node:
mysql> CREATE DATABASE testDB1;
Query OK, 1 row affected (0.00 sec)

2. Create a table on the third node:
mysql> USE testDB1
Database changed
mysql> CREATE TABLE example (node_id INT PRIMARY KEY, node_name VARCHAR(30));
Query OK, 0 rows affected (0.01 sec)

3. Insert records on the first node:
mysql> INSERT INTO testDB1.example VALUES (1, 'percona1');
Query OK, 1 row affected (0.01 sec)


4. Retrieve rows from that table on the second node:
mysql> SELECT * FROM testDB1.example;
+---------+-----------+
| node_id | node_name |
+---------+-----------+
|       1 | percona1  |
+---------+-----------+
1 row in set (0.00 sec)

四、PXC集群开机关机顺序
    集群的第1个节点启动完成之后,才可以启动其他节点。。
    集群的第1个节点必须等待其他节点都关机完成之后才能关机。

参考文档:

Percona-XtraDB-Cluster-5.7.18-29.20.pdf






      本文转自FrankNie0101 51CTO博客,原文链接:http://blog.51cto.com/frankniefaquan/1968548,如需转载请自行联系原作者




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 Kubernetes 关系型数据库
Kubernetes(k8s)上搭建一主两从的mysql8集群
Kubernetes(k8s)上搭建一主两从读写分离的MySQL集群,采用了MySQL8。视频教程地址:https://www.bilibili.com/video/BV1iw411e7ZE/
836 2
|
负载均衡 关系型数据库 MySQL
MySQL篇(四):玩转MySQL高可用,快速搭建Percona XtraDB Cluster(PXC)集群方案
玩转MySQL高可用,快速搭建Percona XtraDB Cluster(PXC)集群方案。
2217 0
|
网络协议 Linux 开发工具
|
监控 关系型数据库 MySQL
|
关系型数据库 MySQL 数据中心
|
关系型数据库 MySQL 数据库
|
关系型数据库 MySQL 数据库
|
负载均衡 关系型数据库 MySQL