heatbeat-gui实现基于nfs的mysql高可用集群
一、简述HA高可用集群
高可用集群就是当集群中的一个节点发生各种软硬件及人为故障时,集群中的其他节点能够自动接管故障节点的资源并向外提供服务。以实现减少业务中断时间,为用户提供更可靠,更高效的服务。
二、基于nfs实现mysql的高可用集群配置
环境准备接上文
实验环境:
nfs server准备
- 、在nfs server准备LVM存储空间
- [root@node3 ~]# fdisk /dev/sdb
- Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
- Building a new DOS disklabel with disk identifier 0x61284c6a.
- Changes will remain in memory only, until you decide to write them.
- After that, of course, the previous content won't be recoverable.
- Warning: invalid flag 0x0000 of partition table will be corrected by w(rite)
- WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
- switch off the mode (command 'c') and change display units to
- sectors (command 'u').
- Command (m for help): n
- Command action
- e extended
- p primary partition (-)
- p
- Partition number (-):
- First cylinder (-, default ):
- Using default value
- Last cylinder, +cylinders or +size{K,M,G} (-, default ): +10G
- Value out of range.
- Last cylinder, +cylinders or +size{K,M,G} (-, default ): +5G
- Command (m for help): t
- Selected partition
- Hex code (type L to list codes): 8e
- Changed system type of partition to 8e (Linux LVM)
- Command (m for help): w
- The partition table has been altered!
- Calling ioctl() to re-read partition table.
- Syncing disks.
- [root@node3 ~]# partx -a /dev/sdb
- [root@node3 ~]# pvcreate /dev/sdb3
- Physical volume "/dev/sdb3" successfully created
- [root@node3 ~]# vgcreate myvg /dev/sdb3
- Volume group "myvg" successfully created
- [root@node3 ~]# lvcreate -L 5G -n mydata myvg
- Logical volume "mydata" created.
- [root@node3 ~]# mke2fs -t ext4 /dev/myvg/mydata
- mke2fs 1.41. (-May-)
- Filesystem label=
- OS type: Linux
- Block size= (log=)
- Fragment size= (log=)
- Stride= blocks, Stripe width= blocks
- inodes, blocks
- blocks (5.00%) reserved for the super user
- First data block=
- Maximum filesystem blocks=
- block groups
- blocks per group, fragments per group
- inodes per group
- Superblock backups stored on blocks:
- , , , , , ,
- Writing inode tables: done
- Creating journal ( blocks): done
- Writing superblocks and filesystem accounting information: done
- This filesystem will be automatically checked every mounts or
- days, whichever comes first. Use tune2fs -c or -i to override.
- 、开机自动挂载,并nfs导出
- [root@node3 ~]# mkdir /mydata
- [root@node3 ~]# vim /etc/fstab
- /dev/myvg/mydata /mydata ext4 defaults
- [root@node3 ~]# mount -a
- [root@node3 ~]# mount | grep /mydata
- /dev/mapper/myvg-mydata on /mydata type ext4 (rw)
- [root@node3 ~]# vim /etc/exports
- /mydata 192.168.0.0/(rw,no_root_squash)
- #共享给192.168.0./24网段,可读可写,允许root用户登录便于初始化,配置结束可取消root用户登录
- 、导出nfs共享目录
- #创建mysql用户,指明uid,gid。各节点的mysql用户uid,gid一致。
- [root@node3 ~]# groupadd -r -g mysql
- [root@node3 ~]# useradd -r -g -u mysql
- #创建共享目录,并修改属主属组。
- [root@node3 ~]# mkdir /mydata/data
- [root@node3 ~]# chown -R mysql.mysql /mydata/data
- #导出nfs共享目录
- [root@node3 ~]# exportfs -arv
- exporting 192.168.0.0/:/mydata
各节点准备mysql,并测试nfs。以下步骤,各节点一致。
node1配置
- [root@node1 ~]# mkdir /mydata
- [root@node1 ~]# showmount -e 192.168.0.20
- Export list for 192.168.0.20:
- /mydata 192.168.0.0/
- [root@node1 ~]# mount -t nfs 192.168.0.20:/mydata /mydata
- [root@node1 ~]# mount | grep /mydata
- 192.168.0.20:/mydata on /mydata type nfs (rw,vers=,addr=192.168.0.20,clientaddr=192.168.0.15)
- [root@node1 ~]# groupadd -r -g mysql
- [root@node1 ~]# useradd -r -g -u mysql
- #验证mysql用户是否拥有共享目录权限
- [root@node1 ~]# su - mysql
- su: warning: cannot change directory to /home/mysql: No such file or directory
- -bash-4.1$
- -bash-4.1$
- -bash-4.1$ cd /mydata/data
- -bash-4.1$ touch node1.txt
- -bash-4.1$ ls
- node1.txt
- -bash-4.1$ rm node1.txt
- -bash-4.1$ exit
- logout
- #在nfs server端验证
- [root@node3 ~]# cd /mydata/data
- [root@node3 data]# ll
- total
- -rw-rw-r--. mysql mysql Nov : node2.txt
- #验证root用户对目录是否有权限
- [root@node2 ~]# touch /mydata/data/node.txt
- [root@node2 ~]# ll /mydata/data
- total
- -rw-r--r--. root root Nov : node.txt
- #安装mariadb
- [root@node1 ~]# tar xf mariadb-5.5.-linux-x86_64.tar.gz -C /usr/local
- [root@node1 ~]# cd /usr/local
- [root@node1 local]# ln -sv mariadb-5.5.-linux-x86_64 mysql
- `mysql' -> `mariadb-5.5.46-linux-x86_64'
- [root@node1 local]# cd mysql/
- [root@node1 mysql]# chown -R root.mysql ./*
- #初始化mysql至nfs,此步骤只需一个节点操作即可,本文node1执行,那么node2就不需要执行
- #初始化操作后,可以将nfs server的共享选项中的no_root_squash移除了
- [root@node1 mysql]# ./scripts/mysql_install_db --datadir=/mydata/data/ --user=mysql
- #nfs server验证
- [root@node3 data]# ls
- aria_log.00000001 aria_log_control mysql performance_schema test
- #为mysql节点准备配置文件
- [root@node1 mysql]# mkdir /etc/mysql
- [root@node1 mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
- #编辑配置文件,加入以下三行
- [root@node1 mysql]# vim /etc/mysql/my.cnf
- datadir = /mydata/data
- innodb_file_per_table = on
- skip_name_resolve = on
- #为mysql节点准备服务脚本,并禁止mysqld开机自启
- [root@node1 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
- [root@node1 mysql]# chkconfig --add mysqld
- [root@node1 mysql]# chkconfig mysqld off
- #启动mysql,创建mydb数据库
- [root@node1 mysql]# service mysqld start
- [root@node1 mysql]# /usr/local/mysql/bin/mysql
- Welcome to the MariaDB monitor. Commands end with ; or \g.
- Your MariaDB connection id is 3
- Server version: 5.5.46-MariaDB-log MariaDB Server
- Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- MariaDB [(none)]> CREATE DATABASE mydb;
- Query OK, 1 row affected (0.03 sec)
- MariaDB [(none)]> exit
- Bye
- [root@node1 mysql]# service mysqld stop
node2配置
- [root@node2 ~]# tar xf mariadb-5.5.-linux-x86_64.tar.gz -C /usr/local
- [root@node2 ~]# cd /usr/local/
- [root@node2 local]# ln -sv mariadb-5.5.-linux-x86_64 mysql
- `mysql' -> `mariadb-5.5.46-linux-x86_64'
- [root@node2 local]# cd mysql/
- [root@node2 mysql]# chown root.mysql ./*
- #将node1的mysql配置文件复制给node2
- [root@node1 mysql]# scp /etc/mysql/my.cnf node2:/etc/mysql/
- #准备服务脚本,并禁止开机自启
- [root@node2 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
- [root@node2 mysql]# chkconfig --add mysqld
- [root@node2 mysql]# chkconfig mysqld off
- #启动服务并查看共享数据库
- [root@node2 mysql]# service mysqld start
- [root@node2 mysql]# /usr/local/mysql/bin/mysql
- Welcome to the MariaDB monitor. Commands end with ; or \g.
- Your MariaDB connection id is 2
- Server version: 5.5.46-MariaDB-log MariaDB Server
- Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- MariaDB [(none)]> SHOW DATABASES;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mydb |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
- 5 rows in set (0.02 sec)
- MariaDB [(none)]> EXIT
- Bye
- #授权root用户远程访问mysql
- [root@node2 ~]# /usr/local/mysql/bin/mysql
- Welcome to the MariaDB monitor. Commands end with ; or \g.
- Your MariaDB connection id is 3
- Server version: 5.5.46-MariaDB-log MariaDB Server
- Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- MariaDB [(none)]> grant all on *.* to 'root'@'192.168.%.%' identified by '123456';
- Query OK, 0 rows affected (0.06 sec)
- MariaDB [(none)]> flush privileges;
- Query OK, 0 rows affected (0.01 sec)
- [root@node2 mysql]# service mysqld stop
在node1和node2卸载共享目录
- [root@node1 mysql]# umount /mydata
三、在heartbeat-gui界面配置
1、添加组资源,以及ip资源
2、添加共享文件系统资源
3、添加mysql-server资源
注意:定义的次序就是启动的次序。
heatbeat-gui实现基于nfs的mysql高可用集群的更多相关文章
- 基于keepalived搭建MySQL高可用集群
MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...
- Mysql 高可用集群PXC
PXC是percona公司的percona xtraDB cluster,简称PXC.它是基于Galera协议的高可用集群方案.可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务高可 ...
- MySQL高可用集群方案
一.Mysql高可用解决方案 方案一:共享存储 一般共享存储采用比较多的是 SAN/NAS 方案. 方案二:操作系统实时数据块复制 这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+ ...
- MySQL高可用集群MHA方案
MySQL高可用集群MHA方案 爱奇艺在用的数据库高可用方案 MHA 是目前比较成熟及流行的 MySQL 高可用解决方案,很多互联网公司正是直接使用或者基于 MHA 的架构进行改造实现 MySQL 的 ...
- 基于docker实现redis高可用集群
基于docker实现redis高可用集群 yls 2019-9-20 简介 基于docker和docker-compose 使用redis集群和sentinel集群,达到redis高可用,为缓存做铺垫 ...
- Mysql高可用集群环境介绍
MySQL高可用集群环境搭建 01.MySQL高可用环境方案 02.MySQL主从复制原理 03.MySQL主从复制作用 04.在Linux环境上安装MySQL 05.在MySQL集群环境上配置主从复 ...
- 部署MYSQL高可用集群
mysql-day08 部署MYSQL高可用集群 u 集群架构 ...
- keepalived+MySQL高可用集群
基于keepalived搭建MySQL的高可用集群 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Clus ...
- corosync+pacemaker and drbd实现mysql高可用集群
DRBD:Distributed Replicated Block Device 分布式复制块设备,原理图如下 DRBD 有主双架构和双主架构的,当处于主从架构时,这个设备一定只有一个节点是可以读写的 ...
随机推荐
- mysql - json - look up subobjects or nested values directly by key or array index without reading all values
w https://dev.mysql.com/doc/refman/5.7/en/json.html
- iass,pass,cass,sass,vm,container
分布式存储hdfs 大文件,swift 对象存贮. 为七牛的CDN系统目前大部分还不是自建的,采用的是整合其它CDN的方式做的.也就是说出了七牛的文件分发使用的是网宿和蓝汛的老牌CDN的分发节点,自身 ...
- 解决kindeidtor与struts2框架交互WARN OgnlValueStack:68 - Error setting value [[Ljava.lang.String;@10da4df]的bug
当用使用ssh框架,前端用到kindeitor富文本编辑器时候,上传文件后有一个图片管理.当点击图片管理的时候,在后台会报一个异常: WARN OgnlValueStack:68 - Error se ...
- python学习笔记(二)— 字典(Dictionary)
字典是另一种可变容器模型,且可存储任意类型对象.字典是无序的,因为它没有下标,用key来当索引,所以是无序的. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分 ...
- 最长回文---hdu3068 (回文串 manacher 算法模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 题意很清楚:就是求一个串s的子串中最长回文串的长度:这类题用到了manacher算法 #incl ...
- JS代码识别扫码设备
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- cordova 入门
1. npm install -g cordova On Windows, npm can usually be found at C:\Users\username\AppData\Roaming\ ...
- C#建WindowForm调用R可视化
众所周知R软件功能非常强大,可以很好的进行各类统计,并能输出图形.下面介绍一种R语言和C#进行通信的方法,并将R绘图结果显示到WinForm UI界面上的方法,文中介绍的很详细,需要的朋友可以参考下. ...
- 19.如何在vue里面调用其他js
可以通过把js放到服务器,然后再html文件中通过链接的形式引入,这是目前我试过成功的唯一方法
- 微信小程序组件toast
操作反馈toast:官方文档 Demo Code: var toastNum = 2 var pageData = {} pageData.data = {} for(var i = 0; i < ...