一、简述HA高可用集群

高可用集群就是当集群中的一个节点发生各种软硬件及人为故障时,集群中的其他节点能够自动接管故障节点的资源并向外提供服务。以实现减少业务中断时间,为用户提供更可靠,更高效的服务。

二、基于nfs实现mysql的高可用集群配置

环境准备接上文

实验环境:

nfs server准备

1、在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 identifier0x61284c6a.

Changes will remainin memory only, until you decide to writethem.

After that, of course, the previous content won't be recoverable.

Warning: invalid flag0x0000 of partition table 4 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 (mforhelp): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 3First cylinder (1-1305, default 1):

Using default value1Last cylinder,+cylinders or +size{K,M,G} (1-1305, default 1305): +10G

Value out of range.

Last cylinder,+cylinders or +size{K,M,G} (1-1305, default 1305): +5G

Command (mforhelp): t

Selected partition3Hex code (type L to list codes): 8e

Changed system type of partition3to 8e (Linux LVM)

Command (mfor help): wThe 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

mke2fs1.41.12 (17-May-2010)

Filesystem label=OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0blocks327680 inodes, 1310720blocks65536 blocks (5.00%) reserved forthe super user

First data block=0Maximum filesystem blocks=1342177280

40 block groups

32768 blocks per group, 32768fragments per group8192inodes per group

Superblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736Writing inode tables:doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information:doneThis filesystem will be automatically checked every36mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.2、开机自动挂载,并nfs导出

[root@node3~]# mkdir /mydata

[root@node3~]# vim /etc/fstab/dev/myvg/mydata /mydata ext4 defaults 0 0[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/24(rw,no_root_squash)

#共享给192.168.0.0/24网段,可读可写,允许root用户登录便于初始化,配置结束可取消root用户登录3、导出nfs共享目录

#创建mysql用户,指明uid,gid。各节点的mysql用户uid,gid一致。

[root@node3~]# groupadd -r -g 306mysql

[root@node3~]# useradd -r -g 306 -u 306mysql

#创建共享目录,并修改属主属组。

[root@node3~]# mkdir /mydata/data

[root@node3~]# chown -R mysql.mysql /mydata/data

#导出nfs共享目录

[root@node3~]# exportfs -arv

exporting192.168.0.0/24:/mydata

各节点准备mysql,并测试nfs。以下步骤,各节点一致。

node1配置

[root@node1 ~]# mkdir /mydata

[root@node1~]# showmount -e 192.168.0.20Export listfor 192.168.0.20:/mydata 192.168.0.0/24[root@node1~]# mount -t nfs 192.168.0.20:/mydata /mydata

[root@node1~]# mount | grep /mydata192.168.0.20:/mydata on /mydata type nfs (rw,vers=4,addr=192.168.0.20,clientaddr=192.168.0.15)

[root@node1~]# groupadd -r -g 306mysql

[root@node1~]# useradd -r -g 306 -u 306mysql

#验证mysql用户是否拥有共享目录权限

[root@node1~]# su -mysqlsu: warning: cannot change directory to /home/mysql: No such fileor directory-bash-4.1$-bash-4.1$-bash-4.1$ cd /mydata/data-bash-4.1$ touchnode1.txt-bash-4.1$ lsnode1.txt-bash-4.1$ rmnode1.txt-bash-4.1$ exit

logout

#在nfs server端验证

[root@node3~]# cd /mydata/data

[root@node3 data]# ll

total0

-rw-rw-r--. 1 mysql mysql 0 Nov 19 19:59node2.txt

#验证root用户对目录是否有权限

[root@node2~]# touch /mydata/data/node.txt

[root@node2~]# ll /mydata/data

total0

-rw-r--r--. 1 root root 0 Nov 19 20:02node.txt

#安装mariadb

[root@node1~]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local

[root@node1~]# cd /usr/local

[root@node1 local]#ln -sv mariadb-5.5.46-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.46-linux-x86_64.tar.gz -C /usr/local

[root@node2~]# cd /usr/local/[root@node2 local]#ln -sv mariadb-5.5.46-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资源

注意:定义的次序就是启动的次序。

nfs mysql_heatbeat-gui实现基于nfs的mysql高可用集群相关推荐

  1. gelera mysql_基于Galera的MySQL高可用集群

    MySQL的高可用方案 我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据 ...

  2. 基于keepalived搭建MySQL高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  3. 企业主流MySQL高可用集群

    选型 10款常见MySQL高可用方案选型解读 MYSQL(高可用方案) 目前最流行的是:主从复制.基于Galera的方案 企业主流MySQL高可用集群 了解 MySQL 集群之前,先看看单节点数据库的 ...

  4. linux集群管理平台,基于Linux平台的高可用集群管理系统的研究与实现

    摘要: 集群管理系统的高可用性是指其能够连续地对外提供服务,本文针对集群系统的高可用性,以开源的集群搭建和管理软件KUSU为基础,以集群管理节点的双机热备份技术理论为支撑,以实现集群系统的帮障检测与业 ...

  5. heartbeat+DRBD+mysql高可用集群实战

      heartbeat+DRBD+mysql高可用集群实战 四台主机 主机名                 IP地址             用途 dbm128                    ...

  6. mysql1.7(mysql优化,mysql-mmm软件介绍,mysql高可用集群。)

    一,mysql优化. 1. 1mysql服务工作过程 mysql服务由8个功能组件组成: 1,管理工具  把软件包安装后,提供的命令. #mv /etc/my.cnf   /etc/my.cnf.ba ...

  7. 企业中MySQL高可用集群架构三部曲之MM+keepalived

    各位老铁们,老张与大家又见面了.看到各位在博客里面给我的留言和访问量的情况,我很是欣慰,也谢谢大家对我的认可.我写这些博客,就是想把自己对于MySQL数据库的一些看法和自己平时的实战经验分享出来,我们 ...

  8. 双vip的MySQL高可用集群

    目录 一.mysql集群的搭建 IP地址规划: 使用ansible给从服务器安装mysql 1.使用master与所有从服务器建立SSH免密通道,然后添加到mysqld组到hosts文件里面 2.使用 ...

  9. MYSQL高可用集群架构——MHA架构

    MHA高可用集群 文章目录 一.MHA 简介: 二.部署 MHA: 第一步:三台主从服务器安装 mysql 第二步:修改 mysql 的主配置文件:/etc/my.cnf ,注意三台服务器的 serv ...

最新文章

  1. 4月第4周全球域名商TOP15:万网第四 增势减弱
  2. php 转义 回车 空格 file put content,为什么在服务器上php里执行file_put_contents创建文件返回是false呢,文件目录已经设置为777的权限了,不解...
  3. 新外贸110%加速度,阿里巴巴国际站力推百亿投资计划
  4. 0122 - EOS 编程学习日志(1)
  5. RDIFramework.NET 中多表关联查询分页实例
  6. 最简洁的y460显卡切换安装方式
  7. Hbase常用操作记录
  8. 终于转了,写写人生学习规划
  9. HTML背景颜色长宽高怎么设置,Dreamweaver 8怎么通过代码设置页面高宽颜色
  10. 差点被开除:一次订单号重复的事故
  11. springboot连接mysql乱码_springboot2.x——接口访问出现中文乱码
  12. Spring AOP之概念解释
  13. 车牌识别opencv_基于OpenCV 的车牌识别
  14. 运动控制器之追剪应用Demo
  15. python中gm11_python GM11
  16. alt+w热键组合无法使用
  17. fabio docker
  18. oracle单行子查询返回多个行 order by,单行子查询返回多个行
  19. TP-LINK路由器如何设置上网
  20. 架设linux服务器下的samba,Linux 服务器搭建之Samba服务

热门文章

  1. 分布式锁的三种实现方式_分布式锁的几种实现方式~
  2. java spring 服务器关闭连接_java springboot websocket 服务 服务器主动关闭连接 导致 抛出java.io.EOFException异常...
  3. 如何判断三极管好坏?
  4. rabbitmq多个消费者监听一个队列_RabbitMQ的六种工作模式
  5. java队列等待唤醒_Java深入学习29:线程等待和唤醒的两个方案
  6. oracle over函数 去重,oracle over结合row_number分区进行数据去重处理
  7. quartz 每月一次_Quartz Cron表达式 每周、每月执行一次
  8. 手机版python3.6.6的requests库下载_Python爬虫之Python3.6 Requests库的基本使用方法
  9. linux下hg无法运行_在 Windows 里也可以访问 Linux 子系统文件了
  10. 04-课后作业1-字符串加密