当前位置: 首页 > 编程日记 > 正文

MySQL数据库高可用集群搭建-PXC集群部署

Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法。集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上。

PXC原理描述:

分布式系统的CAP理论:
C:一致性,所有的节点数据一致
A:可用性,一个或者多个节点失效,不影响服务请求
P:分区容忍性,节点间的连接失效,仍然可以处理请求
其实,任何一个分布式系统,需要满足这三个中的两个。PXC的优点:
1)服务高可用;
2)数据同步复制(并发复制),几乎无延迟;
3)多个可同时读写节点,可实现写扩展,不过最好事先进行分库分表,让各个节点分别写不同的表或者库,避免让galera解决数据冲突;
4)新节点可以自动部署,部署操作简单;
5)数据严格一致性,尤其适合电商类应用;
6)完全兼容MySQL; 

一些名词介绍:

WS:write set写数据集,写/更新事务
IST:Incremental State Transfer 增量同步
SST:State Snapshot Transfe 全量同步。SST支持的方法有:mysqldump,rsync ,xtrabackup 。
mysqldump,rsync同步需要READ LOCK, (SST applies FLUSH TABLES WITH READ LOCK command)xtrabackup 在整个同步数据过程中不需要READ LOCK。
配置参数:wsrep_sst_method=xtrabackup-v2 UUID:节点状态改变及顺序的唯一标识 GTID:Global Transaction ID,由UUID和sequence number偏移量组成。wsrep api中定义的集群内部全局事务id,用于记录集群中发生状态改变的唯一标识以及队列中的偏移量。 WSRWP API:在DBMS库和wsrep provider之间提供接口 

PXC环境所涉及的端口:

#mysql实例端口:3306
#PXC cluster相互通讯的端口:4567 
#用于SST传送的端口:4444 
#用于IST传送的端口:4568 

1.有3个节点

pxc_node0 192.0.0.197 
pxc_node1 192.0.0.198 
pxc_node2 192.0.0.199 

2.防火墙设置 

01关闭防火墙

# systemctl stop firewalld.service 
# systemctl disable firewalld.servie

02或开启防火墙对应的端口:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent

开放完4个端口后,重新加载防火墙规则

firewall-cmd --reload 

3.关闭SELINUX ,安全增强型 Linux(Security-Enhanced Linux)SELinux主要由美国国家安全局开发

01执行命令 永久关闭Selinux

vi /etc/selinux/config 把SELINUX属性值设置成disabled  

02或者执行命令 Linux临时关闭Selinux

setenforce 0

4.下载安装,在pxc_node0,pxc_node2,pxc_node2分别进行如下安装 

基础安装
[root@percona1 ~]# yum -y groupinstall Base Compatibility libraries Debugging Tools Dial-up Networking suppport Hardware monitoring utilities Performance Tools Development tools组件安装
[root@percona1 ~]# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm -y
[root@percona1 ~]# yum install Percona-XtraDB-Cluster-55 -y

5.停止mysql服务,选择一个node作为名义上的master,只需要修改mysql的配置文件/etc/my.cnf(需要分别配置)

#PXC集群中MySQL实例的唯一ID,不能重复,必须是数字
server-id=1  
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
#PXC集群的名称
wsrep_cluster_name=pxc-cluster 
wsrep_cluster_address=gcomm://192.0.0.197,192.0.0.198,192.0.0.199
#当前节点的名称
wsrep_node_name=pxc1 
#当前节点的IP
wsrep_node_address=192.0.0.197 
#同步方法(mysqldump、rsync、xtrabackup)
wsrep_sst_method=xtrabackup-v2 
#同步使用的帐户
wsrep_sst_auth= admin:Abc_123456  #同步严厉模式
pxc_strict_mode=ENFORCING 
#基于ROW复制(安全可靠)
binlog_format=ROW  
#默认引擎
default_storage_engine=InnoDB 
#主键自增长不锁表
innodb_autoinc_lock_mode=2 

6.启动第一个节点

/etc/init.d/mysql bootstrap-pxc 
如果是centos7,则启动命令如下:
systemctl start mysql@bootstrap.service
若是重启的话,就先kill,然后删除pid文件后再执行上面的启动命令

7.数据库用户名密码的设置

mysql> UPDATE mysql.user SET password=PASSWORD("Passw0rd") where user='root'; 

8.配置SST认证账号

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

9.启动其他节点

/etc/init.d/mysql start

各个节点都采用第一个修改的root密码登录

10.常用命令

查看节点数:

show global status like 'wsrep_cluster_size';  

查看集群状态:

show global status like 'wsrep_cluster_size';

查看当前节点状态:

show global status like 'wsrep_cluster_status'; 

通过查看4567 端口确认集群是否启动:

netstat -plantu | grep mysqld 

集群关闭:所有节点都用

/etc/init.d/mysql  stop

节点重启
第一个节点用:

/etc/init.d/mysql restart-bootstrap

其他节点用:

/etc/init.d/mysql  restart

11.其他注意事项:

集群关闭之后,再启动,谁做第一个节点谁就执行/etc/init.d/mysql  bootstrap-pxc

如果最后关闭的PXC节点是安全退出的,那么下次启动要最先启动这个节点,而且要以主节点启动 如果最后关闭的PXC节点不是安全退出的,

那么要先修改/var/lib/mysql/grastate.dat 文件, 把其中的safe_to_bootstrap属性值设置为1, 再安装主节点启动。

除了名义上的master之外,其它的node节点只需要启动mysql即可。

节点的数据库的登陆和master节点的用户名密码一致,自动同步。所以其它的节点数据库用户名密码无须重新设置。

只需要在名义上的master节点上设置权限,其它的节点配置好/etc/my.cnf后,只需要启动mysql就行,权限会自动同步过来。

转载于:https://www.cnblogs.com/hiit/p/11107455.html

相关文章:

搭建Jupyter学习环境

python notebook是一个基于浏览器的python数据分析工具,使用起来非常方便,具有极强的交互方式和富文本的展示效果。jupyter是它的升级版,它的安装也非常方便,一般Anaconda安装包中会自带。安装好以后直接输入jupyter notebook便可…

[转贴]2006十大经典语句

1. 骑白马的不一定是王子,他可能是唐僧; 2. 带翅膀的也不一定是天使,他可能是鸟人。 3. 站的更高,尿的更远。 4. 穿别人的鞋,走自己的路,让他们找去吧, 5. 我不是随便的人。我随便起来不是人 6.…

开放-封闭原则(The Open-Closed Principle,OCP)

自己设计的软件系统“易于维护”、“扩展性好”、“可重用”、“具有灵活性”,这是每位程序员所追求的目标。“开闭原则”为我们指明了方向,即我们所设计的软件尽量满足“开闭原则–对扩展开放,对修改关闭”,这样就能降低需求不断…

Interesting visualization tools for profiling.

Interesting visualization tools for profiling. http://dtrace.org/blogs/brendan/2012/03/17/linux-kernel-performance-flame-graphs/ http://dtrace.org/blogs/brendan/2013/07/01/detecting-outliers/转载于:https://www.cnblogs.com/kungfupanda/p/3245651.html

javascript网页开发 第二章

HTML高级部分 2.1. 表格标签 2.1.1 <table></table> Bgcolor 设置表格的背景色 Border 设置边框的宽度 Bordercolor 设置边框的颜色 Bordercolorlight 设置边框明亮部分的颜色 Bordercolordark 设置边框昏暗部分的颜色 Cellspacing 设置单元格之间的间隔大小 Cel…

ORACLE JET BASIC TABLE

转载于:https://blog.51cto.com/feitai/1917581

Visual Studio UML Use Case Diagram(1)

前几天我们介绍了Visual Studio UML Activity Diagram&#xff0c;今天我们介绍Visual Studio UML Use Case Diagram的内容。通常RUP按照动态划分&#xff0c;分为周期、阶段、里程碑、迭代&#xff0c;按照静态划分&#xff0c;分为角色、制品、工作流、活动&#xff0c;在Wor…

可以左右移动多选下拉列表的javaScipt(可以兼容IE和firefox)

自己在项目业余时间总结了一份可以左右移动&#xff08;Add和remove&#xff09;多选下拉列表的javaScipt,可以兼容IE和firefox,并且经过测试&#xff0c;只是代码略显臃肿&#xff0c;希望各位网友参考后给一些指点&#xff0c;特别是在简化代码方面。我在让其兼容 firefox很是…

OLAP和OLTP的区别(基础知识)

联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的&#xff0c;他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响&#xff0c;OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。当今的数据处理大致可以分成两大类&#xff1a;联机事务…

如何让phpmyadmin输入密码再进入

分类&#xff1a;wamp对于很多不熟悉PHP环境安装的朋友来说&#xff0c;用集成环境可以更快的上手&#xff0c;更方便的搭建PHP的运行环境&#xff0c;但是&#xff0c;WAMP的集成环境仅仅是将底层基础工作做好了&#xff0c;有些个别关键的配置操作并没有集成到环境安装中&…

Visual Studio UML Use Case Diagram(2)

Use Case Model是捕获用户需求确定系统边界最流行的方法。Use Case Model由两部分组成Use Case Diagram和Use Case Specification&#xff0c;对于不方便描述的部分可以放在Supplementary Specification中&#xff0c;通过Glossary统一大家的用词规范。昨天我们介绍了Visual St…

Delphi下利用WinIo模拟鼠标键盘详解

本文最早在编程论坛上发表&#xff0c;文章地址&#xff1a;http://programbbs.com/bbs/view12-17207-1.htm&#xff0c;相关文件可以在上述地址的页面中下载。转载时请注明出处。 前言 一日发现SendInput对某程序居然无效&#xff0c;无奈只好开始研究WinIo。上网查了很多资料…

在vs2005中使用Jmail发送邮件问题

jmail.Message Jmail new jmail.Message(); DateTime t DateTime.Now; String Subject " From EMail .net"; String body "你好科学12:15"; String FromEmail "jsyxo163.com"; String ToEmail…

nginx学习之静态内容篇(五)

1.根目录和索引文件 server {root /www/data;location / {}location /images/ {}location ~ \.(mp3|mp4) {root /www/media;} } root指令能放置的位置是&#xff1a;http&#xff0c;server&#xff0c;location。 上面的意思是&#xff1a;我所有的location定义都是基于根目录…

Modeling System Behavior with Use Case(1)

Modeling System Behavior with Use case 我们分为三个部分进行介绍&#xff0c;主要内容包括&#xff1a;需求简介、Use Case Model&#xff08;Use Case Diagram、Use Case Specification&#xff09;、Supplimentary Specification和Glossary&#xff0c;这部分内容是开发过…

matlab练习程序(高斯牛顿法最优化)

计算步骤如下&#xff1a; 图片来自《视觉slam十四讲》6.2.2节。 下面使用书中的练习yexp(a*x^2b*xc)w这个模型验证一下&#xff0c;其中w为噪声&#xff0c;a、b、c为待解算系数。 代码如下&#xff1a; clear all; close all; clc;a1;b2;c1; %待求解的系数x(0:0…

和Office一起做减肥操

随着微软公司的不断开发&#xff0c;Microsoft Office这款大家熟悉的软件真是越来越好用。可是随着版本的更新&#xff0c;软件的身材却越来越“肥胖”&#xff0c;于是很多朋友总想知道如何给它们“减肥”&#xff1f;今天&#xff0c;我们就说一说如何为Office2003减肥吧&…

codevs——1220 数字三角形(棋盘DP)

时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题解题目描述 Description如图所示的数字三角形&#xff0c;从顶部出发&#xff0c;在每一结点可以选择向左走或得向右走&#xff0c;一直走到底层&#xff0c;要求找出一条路径&#xff0c;使路径上的值最大。 输入描述 …

Modeling System Behavior with Use Case(2)

这是Modeling System Behavior with Use Case的第二部分&#xff0c;本图文首先介绍Use Case Model&#xff0c;然后介绍Actor以及Actor之间的关系&#xff0c;Use Case以及Use Case之间的关系&#xff0c;最后介绍Actor与Use Case之间的关系。

【Python】keras卷积神经网络识别mnist

卷积神经网络的结构我随意设了一个。 结构大概是下面这个样子&#xff1a; 代码如下&#xff1a; import numpy as np from keras.preprocessing import image from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten, Activation from keras.…

IIS安全机制基础

IIS (Internet Information Server)作为当今流行的Web服务器之一&#xff0c;提供了强大的Internet和Intranet服务功能。如何加强IIS的安全机制&#xff0c;建立高安全性能的可靠的Web服务器&#xff0c;已成为网络管理的重要组成部分。 以Windows NT的安全机制为基础 …

CLion 2017 注册码

注册码使用时间2017-2018 CNEKJPQZEX-eyJsaWNlbnNlSWQiOiJDTkVLSlBRWkVYIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb…

Modeling System Behavior with Use Case(3)

这是Modeling System Behavior with Use Case的最后一个部分&#xff0c;主要介绍Use Case Specification、Supplementary Specification和Glossary。今天华电时断时续停电&#xff0c;导致早晨所做的工作丢失&#xff0c;很是难过&#xff0c;发完这个图文&#xff0c;我继续代…

2019最新版本的PanDownload纯净版,网盘满速下载和搜索神器,追剧和动漫新番必不可少的下载工具【亲测有效】

PanDownload是百度网盘的第三方下载神器&#xff0c;它支持快速搜索功能&#xff0c;快速找到你想要的东西&#xff0c;还支持满速下载&#xff0c;可谓是不可多得的下载神器。 下载地址&#xff1a;http://t.cn/EobUOTS 城通网盘下载地址&#xff1a;https://u20150046.ctfi…

codevs——2894 Txx考试(背包)

时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解题目描述 DescriptionTxx是一个成绩很差的人&#xff0c;考试便成了他的噩梦。于是他常在考试时睡觉以打发时间。今天他又要面临一次考试&#xff0c;为了保证有充足的睡眠&#xff0c;他决定只做k分钟题目。这次测…

利用Use Case为系统行为建模(1)

需求这块写了很多了&#xff0c;就剩下最后的三篇图文了。后面我们进入分析与设计部分。大概10月中旬&#xff0c;我们结束这块。开始机器学习的总结与代码实现。

LightTools( 32-64) 8.4.0下载与安装方法,lighttools免费版,lighttools(光学建模软件)【亲测有效】

对于从事光学建模的同学们来说拥有一款功能强大的光学建模软件来辅助的话那么将能提升工作效率&#xff0c;LightTools就是一款功能强大的光学建模软件。它是面向专业用户推出的一款能够增进光学系统设计效率的光学建模软件&#xff0c;该软件支持光机一体化设计&#xff0c;并…

百叶窗显示图片

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data; namespace Image{ /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.…

python安装pillow模块错误

安装的一些简单步骤就不介绍了&#xff0c;可以去搜索一下&#xff0c;主要就记录下我在安装pillow这一模块遇到的问题 1&#xff1a;安装好pillow后&#xff0c;安装过程没有出错 2&#xff1a;但是在python的IDLE输入from PIL import Image出错 原因&#xff1a;pillow版本与…

利用Use Case为系统行为建模(2)

本节主要介绍Use Case Diagram部分&#xff0c;其中包括Actor以及Actor之间的关系、Use Case以及Use Case之间的关系、Actor与Use Case之间的关系。这是利用Use Case Model捕获系统行为最核心的部分。明天还有一节&#xff0c;有关于软件需求部分就全部介绍完了。