linux的mysql的高可用配置_mysql高可用实现

本文详细介绍了如何构建一个基于NFS共享存储的MySQL高可用集群。首先在NFS服务器上创建逻辑卷并挂载,然后配置NFS服务以读写方式共享给两个MySQL服务器。接着在MySQL服务器上进行用户配置、挂载NFS、安装MySQL并初始化数据。通过Corosync和Pacemaker实现高可用性,配置资源约束和启动顺序,确保在故障发生时能够自动切换。最后,进行了故障模拟和验证,确保集群的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:mysql高可用集群方案设计

server1 mysqld服务器    172.16.23.11

server2 mysqld服务器    172.16.23.12

数据存放 nfs 服务器     172.16.23.6

server1,2为了实现高可用,需要一个共享存储,这里用一个nfs服务器提供,nfs服务器上新建一个逻辑卷,把它挂载在/mydata目录下,这样方便mysql数据的存储。nfs只需把这个目录以读写方式共享给server1,2,且三台服务器都有同一个mysql用户,mysql组,且id号都一样。这样mysql服务器上只需挂载这个目录到本地,那么就可以共享数据。这篇博客与上一篇共同实现!

一、nfs服务器配置

1、新建分区,并挂载到/mydata下

fdisk /dev/sda

新建一个20G的分区,8e逻卷

partprob /dev/sda

pvcreate /dev/sda5

vgcreate myvg /dev/sda5

lvcreate -L 10G -n mydata myvg

mke2fs -j  -L MYDATA /dev/myvg/mydata //格式化

mkdir /mydata

vim /etc/fstab //实现开机自动挂载

LABLE=MYDATA    /mydata    ext3    default  0 0

mount -a   //读取文件,进行挂载

mount  //查看是否挂载

groupadd -g 355 -r mysql

useradd -g mysql -r -u 355 -s /sbin/nologin mysql

id mysql

chown -R mysql:mysql  /mydata

2、启动nfs服务器,并导出文件系统

vim /etc/exports  添加如下一行

mydata    172.16.23.11(rw,no_root_squash) 172.16.23.12(rw,no_root_squash)

service nfs start

rpcinfo -p localhost  查看是否启动

chkconfig nfs on    开机自动启动

showmount -e localhost   查看共享给谁

二、mysql服务器设置 server1,server2一样

(1)保证三台服务器时间同步

(2)增加用户:

groupadd -g 355 -r mysql

useradd -g mysql -r  -u 355 mysql

(3)挂载文件系统,

mkdir /mydata

mount -t nfs 172.16.23.6:/mydata  /mydata

su - mysql

touch   aa    测试是否有写权限

mkdir /mydata/data    //属于mydata用户、组,这样mysql数据才能写入

(4) 下载安装mysql lftp 172.16.0.1/pub/Sources/mysql-5.5   mysql-5.5.22

tar xf mysql-5.5.22..... -C /usr/local

ln -sv mysql-5.5.22... mysql

cd mysql

chown -R msyql:mysql .

scripts/mysql_install_db --user=mysql --datadir=/mydata/data  重要

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

vim /etc/my.cnf 添加一行datadir=/mydata/data

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

chkconfig --list mysqld

chkconfig mysqld off    //不能开机自动启动,服务器集群

(5)server2安装mysql跟server1基本一样

server2不需要初始化,因为/mydata已经有元数据了。

hostname 要设置,date要一致

(6)由于前面已经配置了Corosync+Pacemaker高可用集群,

这里只需保证以下配置

crm configure property stonith-enabled=false //由于没stonith设备,启用会报错,这里禁用

crm configure no-quorum-policy=ignore //由于这里是两台服务群集,不需要quorum,ignore表示一台故障,另一台仍能用

crm configrue rsc_defaults resource-stickiness=100  设置默认资源粘性值,表示一台故障时,再次启动服务时是否会再转移回来,正值表示更愿留在当前服务器上

查看资源属性: crm(live)ra# meta ocf:heartbeat:IPaddr

primitive myip ocf:heartbeat:IPaddr params ip="172.16.23.6"  添加一条基本资源

show

commit 提效crm configure property no-quorum-policy=ignore

(7)给nfs服务器上的/mydata目录定义为高可用资源

umount /mydata   两服务器都需卸载,只有active的服务器才能访问数据

#crm ra  list ocf heartbeat    有一个Filesystem代理脚本

crm ra meta ocf:heartbeat:Filesystem   查看这个脚本里的参数,方便我们设置

定义资源:

crm(live)configure# primitive mynfs ocf:heartbeat:Filesystem params device="172.16.23.6:/mydata" directory="/mydata" fstype="nfs" op start timeout=60s op stop timeout=60s

设备为nfs那台服务器上共享的目录,目录为当前主机挂载的目录,类型为nfs类型 op 选项里面的值最好大于脚本文件只定义的最小值,否则会报错

commit 提交

crm status 查看挂载到那个主机上,在那个主机上查看 ls /mydata  如果在server1上

让server1变为被动,查看内容

crm node standby

crm node online

(8)、添加mysqld服务,nfs与mysqld应在同一个主机上,且nfs先于mysqld挂载

crm(live)configure# primitive mysqld lsb:mysqld  添加mysql服务

crm(live)configure# colocation  mysqld_and-mynfs inf: mysqld mynfs myip  排列约束,mysqld与nfs一定要在一起(如果错可delete)

crm(live)configure# order mysqld_after_mynfs mandatory:mynfs mysqld:start  //mysqld启动必须晚于nfs

crm(live)configure# show xml

crm(live)configure# order mysql_after_myip mandatory: myip mysqld   //ip地址早于mysqld启动

commit

[定义组  group web WebIP mynfs]

crm status  看那台服务器上

(9)、验证测试

/usr/local/mysql/bin/mysql

创建远程连接的用户:

grant all on *.* to root@'172.16.%.%' identified by '12345'

flush privileges;

172.16.23.9这台客户端连接测试

mysql -uroot -h172.16.23.6 -p12345

创建数据库测试

(10)、模拟正在工作的mysql服务器故障

crm node standby

crm status

172.16.23.9这台客户端连接测试

mysql -uroot -h172.16.23.6 -p12345

创建数据库测试

(11)、查看当前系统支持stonith设备

stonith -L

man stonith

stonith -t meatware -n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值