81.MySQL-PXC高可用集群

1.第一个节点启动。
Linux7:
my.cnf 文件需要拷贝到:/etc/my.cnf (非常重要)

[root@mysql51 ~]# mysqlpxc bootstrap-pxc   
Bootstrapping PXC (Percona XtraDB Cluster)Initializing MySQ[  OK  ]se:  
Starting MySQL (Percona XtraDB Cluster)..                  [  OK  ]
当前集群只有一个节点。
mysql> show status like 'wsrep_incoming_addresses%';
+--------------------------+-------------------+
| Variable_name            | Value             |
+--------------------------+-------------------+
| wsrep_incoming_addresses | 192.168.1.51:3306 |
+--------------------------+-------------------+
1 row in set (0.00 sec)
是主节点。
mysql> show status like 'wsrep_cluster_status%';
+----------------------+---------+
| Variable_name        | Value   |
+----------------------+---------+
| wsrep_cluster_status | Primary |
+----------------------+---------+
1 row in set (0.00 sec)
mysql> show status like 'wsrep_connected%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| wsrep_connected | ON    |
+-----------------+-------+
1 row in set (0.01 sec)

2.第二个节点启动:
data目录下都是空的。
(1)初始化 mysqlpxc start
[ERROR] xtrabackup not in path: /usr/sbin:/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/mysql/app/mysql/bin

vi /etc/my.cnf 
vi /mysql/data/3306/my.cnf
--wsrep_sst_method =xtrabackup-v2 改成下面的值:
wsrep_sst_method=rsync

[root@mysql52 3306]# mysqlpxc start
MySQL (Percona XtraDB Cluster) is not running, but lock fil[FAILED]lock/subsys/mysql) exists
Starting MySQL (Percona XtraDB Cluster).....State transfer in progress, setting sleep higher
.                                                          [  OK  ]

show status like '%wsrep%';
| wsrep_incoming_addresses         | 192.168.1.51:3306,192.168.1.52:3306  |
| wsrep_desync_count               | 0                                    |
| wsrep_evs_delayed                |                                      |
| wsrep_evs_evict_list             |                                      |
| wsrep_evs_repl_latency           | 0/0/0/0/0                            |
| wsrep_evs_state                  | OPERATIONAL                          |
| wsrep_gcomm_uuid                 | 9904418f-b825-11ed-8c37-9e3b6a5382f7 |
| wsrep_cluster_conf_id            | 10                                   |
| wsrep_cluster_size               | 2                                    |
| wsrep_cluster_state_uuid         | 0a6611e5-b823-11ed-91e5-be9f6caf4bbe |
| wsrep_cluster_status             | Primary                              |
| wsrep_connected                  | ON                                   |

发现2号节点加入了。
wsrep_connected=ON; 


3.第三个节点初始化
data目录下都是空的。

(1). 初始化
mysqlpxc start 
[root@mysql53 data]# pwd
/mysql/data/3306/data
[root@mysql53 data]# ll
total 1185872
-rw-r-----. 1 mysql mysql        56 Mar  1 19:44 auto.cnf
-rw-------. 1 mysql mysql      1676 Mar  1 19:44 ca-key.pem
-rw-r--r--. 1 mysql mysql      1120 Mar  1 19:44 ca.pem
-rw-r--r--. 1 mysql mysql      1120 Mar  1 19:44 client-cert.pem
-rw-------. 1 mysql mysql      1676 Mar  1 19:44 client-key.pem
-rw-r-----. 1 mysql mysql 134219048 Mar  1 19:44 galera.cache
-rw-r-----. 1 mysql mysql         0 Mar  1 19:44 grastate.dat
-rw-r-----. 1 mysql mysql       265 Mar  1 19:44 gvwstate.dat
-rw-r-----. 1 mysql mysql       692 Mar  1 19:44 ib_buffer_pool
-rw-r-----. 1 mysql mysql 209715200 Mar  1 19:44 ibdata1
-rw-r-----. 1 mysql mysql 209715200 Mar  1 19:44 ibdata2
-rw-r-----. 1 mysql mysql 209715200 Mar  1 19:44 ibdata3
-rw-r-----. 1 mysql mysql 209715200 Mar  1 19:44 ib_logfile0
-rw-r-----. 1 mysql mysql 209715200 Mar  1 19:44 ib_logfile1
drwxr-x---. 2 mysql mysql      4096 Mar  1 19:44 mysql
-rw-rw----. 1 root  root          5 Mar  1 19:44 mysqld_safe.pid
drwxr-x---. 2 mysql mysql      8192 Mar  1 19:44 performance_schema
-rw-------. 1 mysql mysql      1676 Mar  1 19:44 private_key.pem
-rw-r--r--. 1 mysql mysql       452 Mar  1 19:44 public_key.pem
-rw-r--r--. 1 mysql mysql      1120 Mar  1 19:44 server-cert.pem
-rw-------. 1 mysql mysql      1680 Mar  1 19:44 server-key.pem
drwxr-x---. 2 mysql mysql      8192 Mar  1 19:44 sys
-rw-r-----. 1 mysql mysql  10485760 Mar  1 19:44 undo001
-rw-r-----. 1 mysql mysql  10485760 Mar  1 19:44 undo002
-rw-r-----. 1 mysql mysql  10485760 Mar  1 19:44 undo003
[root@mysql53 data]# pwd
/mysql/data/3306/data

(2).启动报错:
2023-03-01T19:45:42.240128+08:00 0 [ERROR] WSREP: Failed to read 'ready ' from: 
wsrep_sst_rsync --role 'joiner' --address '192.168.1.53' --datadir '/mysql/data/3306/data/' 
--defaults-file '/mysql/data/3306/my.cnf' --defaults-group-suffix '' --parent '10288'  '' 
Read: ''lsof' not found in PATH'   
lsof工具保存在:
yum -y install lsof  
(3).重新启动。
mysqlpxc start 
[root@mysql53 data]# mysqlpxc start 
MySQL (Percona XtraDB Cluster) is not running, but lock fil[FAILED]lock/subsys/mysql) exists
Initializing MySQL database:                               [  OK  ]
Starting MySQL (Percona XtraDB Cluster)..State transfer in progress, setting sleep higher
.                                                          [  OK  ]

初始化全库拷贝data目录下数据。
(4)参数检查:
| wsrep_ist_receive_seqno_end      | 0                                                     |
| wsrep_incoming_addresses         | 192.168.1.51:3306,192.168.1.53:3306,192.168.1.52:3306 |
| wsrep_desync_count               | 0                                                     |
| wsrep_evs_delayed                |                                                       |
| wsrep_evs_evict_list             |                                                       |
| wsrep_evs_repl_latency           | 0/0/0/0/0                                             |
| wsrep_evs_state                  | OPERATIONAL                                           |
| wsrep_gcomm_uuid                 | 1677f634-b827-11ed-9b0d-1b9fbd16aa06                  |
| wsrep_cluster_conf_id            | 15                                                    |
| wsrep_cluster_size               | 3                                                     |
| wsrep_cluster_state_uuid         | 0a6611e5-b823-11ed-91e5-be9f6caf4bbe                  |
| wsrep_cluster_status             | Primary                                               |
| wsrep_connected                  | ON                                                    |
| wsrep_local_bf_aborts            | 0                                                     |
| wsrep_local_index                | 1                                                     |
| wsrep_provider_name              | Galera                                                |
| wsrep_provider_vendor            | Codership Oy                     |
| wsrep_provider_version           | 3.26(r)                                               |
| wsrep_ready                      | ON                                                    |

发现 51/52/53都加入集群了
wsrep_connected=ON; 


4.如何检查节点是否加入到集群:

1. wsrep_cluster_state_uuid 应该与其它所有节点相同
2. wsrep_cluster_conf_id 应该与其它所有节点不相同
3. wsrep_cluster_size 应该是所有节点的数目:3个节点。
4. wsrep_cluster_status 取值应该是:Primary
5. wsrep_ready 取值应该是ON
6. wsrep_connected 取值应该是ON

5.集群可用性验证
(1)1号节点创建数据库
root@itpux 19:55:  [(none)]> show databases; 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

root@itpux 19:55:  [(none)]> create database test; 
Query OK, 1 row affected (0.00 sec)

root@itpux 19:55:  [(none)]> show databases; 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |  --新创建的数据库。
+--------------------+

(2)2号和3号节点检查。
root@itpux 19:55:  [(none)]> show databases; 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |  --发现都同步了。
+--------------------+

6.PXC集群的使用总结
在生产环境下应该避免使用大事务,不建议在高并发写入场景下使用PXC cluster架构,会导致集群限流,从而引起整个集群hang住,出现生产故障,针对这种情况可以考虑主从,实现读写分离等手段。对数据一致性要求较高,并且数据写入不频繁,数据库容量也不大(50g所有),网络状况良好的情况下,可以考虑使用PXC方案。自动节点克隆。节点自动配置,在新增节点,或者停机维护时,增量数据或者基础数据不需要人工手动备份提供,PXC会自动拉取在线节点数据,最终集群会变为一致性。

PXC集群的缺点;
添加新节点时,必须从现有节点中一个复制完整数据集,即Data目录下全部复制。
每个节点都保留一份完整的数据。

你可能感兴趣的:(数据库运维-MySQL,mysql,数据库)