nfs mysql_heatbeat-gui实现基于nfs的mysql高可用集群
一、簡述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高可用集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux hostid命令怎么用
- 下一篇: mysql限制类别_MySQL限制每个类