IV 10 MySQL+heartbeat+nfs

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

一、相关注意事项:

基于heartbeatV2crm)和nfs共享实现mysql高可用集群(关键点:如果是一主一从两个node,主若挂掉,从可以取而代之,并且主node上的数据,从node可以访问到;此种架构并不理想,nfs-server易成为单点故障,若再对nfs做高可用共享存储要用iscsi,这时至少要4台设备,再者如果有iscsi设备就可直接使用,不用再中间夹个nfs

 

本例中在NFS共享存储中仅是mysql数据目录,两个node均在本地有mysql程序和配置文件(若NFS上存放mysql程序、mysql数据及配置文件,如何实现让mysql到共享存储上读配置文件?使用选项指定)

注:mysql读取配置文件的先后次序:/etc/my.cnf-->/etc/mysql/my.cnf-->$MYSQL_HOME/my.cnf-->--default-extra-file=/PATH/TO/FILE-->~/.my.cnf(让mysqld服务器端程序接受选项(--default-extra-file=/PATH/TO/FILE),同时将前面几处位置的不提供配置文件即可)

 

OCF格式的RA(可灵活指定很多参数,来配置脚本的工作属性)

LSB格式的RA(脚本固定,内设好的,不能提供参数)此例使用的是LSB格式的脚本

注:corosync中专门为mysql提供了RA,这个RA可接受参数用于告知mysql程序配置文件在哪

 

注意nfs输出时的UIDGIDmysql访问数据,都要是mysql用户,mysql组,要对相应目录有读写权限,而且此例中有两个node,这两个nodemysql用户和组的UIDGID最好一样,若不一样就得配置nfs在输出时文件属性中要有这两个nodeUIDGID

 

mysql数据最好放在LVM上,既方便扩展又方便备份,LVM应在nfs所属的服务器上创建

 

二、操作:

wKiom1ZiNbzxp9ExAAA9NVBeyI0640.jpg

注:在同一时刻,node1node2仅一台提供服务,若当前提供服务的node1-mysql-server挂掉,另一台node2接替其工作

 

node3-side

本例是单独拿出一块磁盘制作LVM

#fdisk /dev/sdb(大小+5G,分区类型8e

#partprobe /dev/sdb

#pvcreate /dev/sdb1

#vgcreate myvg  /dev/sdb1

#lvcreate -L  5G  -n mydata  myvg

#lvs

#mke2fs -j  /dev/myvg/mydata

#groupadd -g  3306  mysql

#useradd -u  3306  -g mysql  -s  /sbin/nologin -M  mysql

#mkdir /mydata

#vim /etc/fstab

/dev/myvg/mydata  /mydata ext3  defaults  0  0

#mount -a

#mount

#mkdir /mydata/data

#chown -R  mysql:mysql  /mydata/data

#vim /etc/exports

/mydata/data  192.168.41.129/24(no_root_squash,rw)  192.168.41.130/24(no_root_squash,rw)  (此处一定要有no_root_squash,默认生效的是root_squash是将root转为anonymous

#exportfs -arv

 

node1-side

#groupadd -g  3306  mysql

#useradd -u  3306  -g mysql  -s  /sbin/nologin -M  mysql

#mkdir /mydata

#mount -t  nfs  192.168.41.128:/mydata  /mydata

#usermod -s  /bin/bash  mysql(测试下mysql用户是否对该目录有写权限)

#su -  mysql

#cd /mydata/data

#touch test.txt

#ll

#usermod -s  /sbin/nologin  mysql

#tar xf  mysql-5.5.45-linux2.6-i686.tar.gz -C  /usr/local/

#cd /usr/local

#ln -sv  mysql-5.5.45-linux2.6-i686/  mysql

#cd mysql

#ll

#chown -R  root:mysql  ./*

#mount -t  nfs  192.168.41.128:/mydata  /mydata

#scripts/mysql_install_db  --user=mysql --datadir=/mydata/data

#ll /mydata/data

#cp support-files/my-large.cnf /etc/my.cnf

#vim /etc/my.cnf

[mysqld]

datadir = /mydata/data

innodb_file_per_table = 1

#cp support-files/mysql.server /etc/init.d/mysqld

#chkconfig --add  mysqld

#chkconfig mysqld  off

#chkconfig --list  mysqld

#service mysqld  start

#/usr/local/mysql/bin/mysql

>SHOW DATABASES;

>CREATE DATABASE  mydb;

>SHOW DATABASES;

>GRANT ALL  ON  *.* TO  ‘root’@’%’  IDENTIFIED BY  ‘redhat’;

>FLUSH PRIVILEGES;

>\q

#service mysqld  stop

#umount /mydata

#scp /etc/init.d/mysqld node2:/etc/init.d/

#scp /etc/my.cnf  node2:/etc/

 

node2-side

配置与node1-side相同,node2上不用执行初始化,最后查看有无node1创建的mydb

#hb_gui &

添加如图组和资源:

add new item:-->group-->ID:mysql-->resourceID:mysqlip-->IPaddr-->添加如图ipniccidr_netmask

add new item:-->native-->resourceID:mysqlstore-->filesystem-->添加如图devicedirectoryfstype

add new item:-->native-->resourceID:mysqld-->mysqld

wKiom1ZiNdXSZXUdAACV_nkor2E691.jpg

wKioL1ZiNkGR3ic6AACYdBnVk_U607.jpg


在组上右键start

测试:

node3-side

#mysql -u  root  -p -h192.168.41.222

>SHOW DATABASES;

>USE mydb;

>CREATE TABLE  testtb  (id int  unsigned  not null  auto_increment  primary key,name  char(20));

>SHOW TABLES;

在图形界面的窗口上,右键node2standby,在node3上再试登录mysql看是否正常

wKioL1ZiNn3hf4ZVAACR-whDPZ0462.jpg


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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
监控 关系型数据库 MySQL
HeartBeat监控Mysql状态
HeartBeat监控Mysql状态
|
3月前
|
Kubernetes 关系型数据库 MySQL
k8s练习--通过NFS+PV+PVC+POD,部署一个MySQL服务,并将MySQL的数据进行持久化存储
本文档介绍了如何使用Kubernetes (K8s)、NFS、PersistentVolume (PV)、PersistentVolumeClaim (PVC)和Pod来部署并实现MySQL服务的数据持久化存储。Kubernetes是一个用于自动化部署、扩展和管理容器化应用的强大平台。NFS作为一种网络文件系统协议,能够使Kubernetes集群中的Pod跨节点访问共享文件。PV和PVC机制则提供了持久化的存储解决方案,确保数据即使在Pod生命周期结束后仍得以保留。
167 0
|
MySQL 关系型数据库 Windows
使用Heartbeat实现MySQL主从高可用
使用Heartbeat实现MySQL主从高可用 前面我们使用Keepalived实现MySQL主从复制的失败自动切换,参见“使用Keepalived实现MySQL主从高可用”。本篇介绍如何利用Heartbeat来完成相同的功能。
1817 0
|
Oracle 关系型数据库 MySQL
|
Web App开发 Linux 开发工具
|
关系型数据库 MySQL 网络安全
下一篇
无影云桌面