基于PXC的MySQL高可用环境简单部署
PXC简介
原理描述
分布式系统的CAP理论:
C 一致性,所有的节点数据一致
A 可用性,一个或者多个节点失效,不影响服务请求
P 分区容忍性,节点间的连接失效,仍然可以处理请求
任何一个分布式系统,需要满足这三个中的两个
安装部署
环境描述
三个node节点
hostname: percona1
IP: 192.168.100.7
node #2
hostname: percona2
IP: 192.168.100.8
node #3
hostname: percona3
IP: 192.168.100.9
基础环境包
三个node节点都要执行以下操作。
基础环境
yum -y groupinstall Base Compatibility libraries Debugging Tools Dial-up Networking suppport Hardware monitoring utilities Performance Tools Development tools
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm -yyum install Percona-XtraDB-Cluster-55 -y
数据库配置
选择一个node作为名义上的master,咱们以node1为master,以下操作只在node1上执行。
只需要修改mysql的配置文件--/etc/my.cnf
说明:这里的IP地址是内网地址。
[root@i-kysyolko ~]# cat /etc/my.cnf# Template my.cnf for PXC# Edit to your requirements.[mysqld]datadir=/var/lib/mysqluser=mysql# Path to Galera librarywsrep_provider=/usr/lib64/libgalera_smm.so# Cluster connection URL contains the IPs of node#1, node#2 and node#3wsrep_cluster_address=gcomm://192.168.100.7,192.168.100.8,192.168.100.9# In order for Galera to work correctly binlog format should be ROWbinlog_format=ROW# MyISAM storage engine has only experimental supportdefault_storage_engine=InnoDB# This changes how InnoDB autoincrement locks are managed and is a requirement for Galerainnodb_autoinc_lock_mode=2# Node #1 addresswsrep_node_address=192.168.100.7# SST methodwsrep_sst_method=xtrabackup-v2# Cluster namewsrep_cluster_name=my_centos_cluster# Authentication for SST methodwsrep_sst_auth="sstuser:s3cret"[mysqld_safe]pid-file = /run/mysqld/mysql.pidsyslog!includedir /etc/my.cnf.d
启动数据库
CentOS6:/etc/init.d/mysql bootstrap-pxc
CentOS7:systemctl start mysql@bootstrap.service
配置数据库
mysql> show status like 'wsrep%';+----------------------------+--------------------------------------+| Variable_name | Value |+----------------------------+--------------------------------------+| wsrep_local_state_uuid | c2883338-834d-11e2-0800-03c9c68e41ec |...| wsrep_local_state | 4 || wsrep_local_state_comment | Synced |...| wsrep_cluster_size | 1 #主要看这里 || wsrep_cluster_status | Primary || wsrep_connected | ON |...| wsrep_ready | ON |+----------------------------+--------------------------------------+40 rows in set (0.01 sec)# 数据库用户名密码的设置mysql@percona1> UPDATE mysql.user SET password=PASSWORD("Passw0rd") where user='root';# 创建、授权、同步账号mysql@percona1> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 's3cret';mysql@percona1> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';mysql@percona1> FLUSH PRIVILEGES;
node2、node3节点配置
只需要修改第26行,当前node的IP地址。两个node都是只是修改这个地址即可。
wsrep_node_address=192.168.100.8
[root@i-kysyolko ~]# cat /etc/my.cnf# Template my.cnf for PXC# Edit to your requirements.[mysqld]datadir=/var/lib/mysqluser=mysql# Path to Galera librarywsrep_provider=/usr/lib64/libgalera_smm.so# Cluster connection URL contains the IPs of node#1, node#2 and node#3wsrep_cluster_address=gcomm://192.168.100.7,192.168.100.8,192.168.100.9# In order for Galera to work correctly binlog format should be ROWbinlog_format=ROW# MyISAM storage engine has only experimental supportdefault_storage_engine=InnoDB# This changes how InnoDB autoincrement locks are managed and is a requirement for Galerainnodb_autoinc_lock_mode=2# Node #1 addresswsrep_node_address=192.168.100.8# SST methodwsrep_sst_method=xtrabackup-v2# Cluster namewsrep_cluster_name=my_centos_cluster# Authentication for SST methodwsrep_sst_auth="sstuser:s3cret"[mysqld_safe]pid-file = /run/mysqld/mysql.pidsyslog!includedir /etc/my.cnf.d
启动数据库
CentOS6:/etc/init.d/mysql start
CentOS7:systemctl start mysql.service
说明:
1、除了名义上的master之外,其它的node节点只需要启动mysql即可。
2、节点的数据库的登陆和master节点的用户名密码一致,自动同步。所以其它的节点数据库用户名密码无须重新设置。
测试
在任意一个node上,进行操作,然后去其它的节点上看是否取得相同的结果。
官方引用:
https://www.percona.com/doc/percona-xtradb-cluster/5.5/howtos/centos_howto.html
基于PXC的MySQL高可用环境简单部署的更多相关文章
- MySQL高可用方案--MHA部署及故障转移
架构设计及必要配置 主机环境 IP 主机名 担任角色 192.168.192.128 node_master MySQL-Master| ...
- 基于MHA的MYSQL高可用方案
一.MHA 简介 MHA (Master High Availability )目前在 MySQL 高可用方面是一个相对成熟的解决方案,它由日本 DeNA 公司的 youshimaton 员工(现就职 ...
- 使用KeepAlived搭建MySQL高可用环境
使用KeepAlived搭建MySQL的高可用环境.首先搭建MySQL的主从复制在Master开启binlog,创建复制帐号,然后在Slave输入命令 2016年7月25日 配置安装技巧: ...
- 基于Keepalived的MySQL高可用
keepalived负责的是故障转移,至于故障转以后的节点之间数据的一致性问题依赖于具体的复制模式.不管是主从.一主多从还是双主.集群节点个数.主从具体的模式无关(常规复制,半同步复制,GTID复制, ...
- 基于keepalived搭建MySQL高可用集群
MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...
- heatbeat-gui实现基于nfs的mysql高可用集群
一.简述HA高可用集群 高可用集群就是当集群中的一个节点发生各种软硬件及人为故障时,集群中的其他节点能够自动接管故障节点的资源并向外提供服务.以实现减少业务中断时间,为用户提供更可靠,更高效的服务. ...
- MySQL 高可用MHA安装部署以及故障转移详细资料汇总 转
http://blog.itpub.net/26230597/cid-87082-list-2/ 1,简介 .1mha简介 MHA,即MasterHigh Availability Manager a ...
- MySQL之Haproxy+Keepalived+MySQL高可用均衡负载部署 (网络摘抄)
来源于:https://blog.csdn.net/weisong530624687/article/details/71536837?utm_source=blogxgwz3 一.安装主从MySQL ...
- KEEPALIVED+LVS+MYCAT实现MYSQL高可用环境搭建
一.安装keepalived和ipvsadm 注意:ipvsadm并不是lvs,它只是lvs的配置工具. 为了方便起见,在这里我们使用yum的安装方式 分别在10.18.1.140和10.18.1.1 ...
随机推荐
- abap 选择屏幕事件AT SELECTION-SCREEN
AT SELECTION-SCREEN (1).其实就像一个FORM,所以在这个事件里声明的变量都是局部变量. (2).根据SY-UCOMM这个系统变量可以判断用户的命令 (3).在这个事件里响应的是 ...
- 关于SAP的视图类型
1 sap的视图的类型sap的视图的类型有五种 Database views (数据库视图):和数据库的视图形同,连接条件是必须自定义. Projection views(投影视图): 用于屏蔽一些字 ...
- 解决SharePoint 2013 designer workflow 在发布的报错“负载平衡没有设置”The workflow files were saved but cannot be run.
原因是app management service没有设置好,在管理中心把他删掉,重新建一个就可以了 Provision App Management Service In SharePoint 20 ...
- WKWebView API精讲(OC)
WKWebView API精讲(OC) 前言 鉴于LL同志对笔者说:“能不能写个OC版本的WKWebView的使用教程?”,还积极打赏了30RMB,笔者又怎么好意思拒绝呢,于是才有了下文. 所有看到本 ...
- 可展开的列表组件——ExpandableListView深入解析
可展开的列表组件--ExpandableListView深入解析 一.知识点 1.ExpandableListView常用XML属性 2.ExpandableListView继承BaseExpanda ...
- .NET下金额大小写转换
说明:金额转换可以转换50位的数值,单位从分到级.对于中间部分是否显示零,可以根据修改TranslateJInen()函数修改.中间数值为零的去掉不显示 public string GetChCapi ...
- android 音乐播放器简单实现
package com.zhangbz.musicplayer; import java.io.File; import android.app.Activity; import android.me ...
- IOS开发之功能模块--自定义UITabBarViewController的备用代码
前言:因为常用,所以我就备份到这里,然后如果需要修改,可以根据需求进行相关的更改. @implementation YMTabBarController - (void)viewDidLoad { [ ...
- UIWebView的基本用法
一.UIWebView的基础使用 1.创建UIWebView: CGRect bouds = [[UIScreen manScreen]applicationFrame]; UIWebView* we ...
- vs(vistual studio)项目文件名字重复问题
今天遇到一情况,比较神奇,vs项目,我更新SVN的时候,发现竟然出现文件名字重复的现象. [caption id="" align="alignnone" wi ...