mysql双机热备 主键_mysql双机热备

1.添加共享存储资源

上一节已经讲了如何添加资源,这里练习一下如何添加共享存储资源,为httpd添加一个共享存储,使得资源切换的时候,用户看到的数据是一样的。

在node(物理机)上创建一个nfs共享存储

[root@server ~]#mkdir /web

[root@server ~]# chmod o+w /web

[root@server ~]# echo '/web *(rw,async)' > /etc/exports.d/aa.exports

[root@server ~]#systemctl start nfs-server

[root@server ~]#

在任一节点上测试nfs正常工作,并在共享存储里创建index.html

[root@nodeX ~]# showmount -e node

Export list for node:

/web *

[root@nodeX ~]# mount node:/web /mnt

[root@nodeX ~]# echo 'share storage node xxxxxxxx' > /mnt/index.html

[root@nodeX ~]# umount /mnt

下面添加资源

class/provider里选择ocf:heatbeat

Type里选择Filesystem

Resource Group里选择group_1

Resource ID里可以随便填写,这里填写nfs_web

device里填写nfs共享目录的路径,这里是node:/web

dirctory是在节点上的挂载点,因为默认httpd的文档目录是/var/www/html,所以这里填写/var/www/html

fstype填写nfs

545bf4b6bc504263185e74ee5ab4cd13.png

点击"Create Resource"

因为涉及到资源约束条件(后面会讲),此处先把webserver所在组设置为none

df262820612f8f906b79738f1a9227f5.png

点击"Apply Changes"

再次把webserver设置到group_1里:

01a501d030610ab951b6854428b6bd32.png

点击"Apply Changes"

此时集群可以正常工作了

验证

4d39a80ecf360db2e45bdf96367ff04d.png

查看集群运行状态:

1984a3fdd90455853742da8fae5a3dfe.png

可以看到所有节点均在node1上运行。

在node1~node3任一节点上对node1执行standby操作:

[root@node1 ~]# pcs cluster standby node1

daf042182c69b3172f09ad6ede966a33.png

可以看到集群已经跑到node2上运行,验证资源是否真的node2上运行:

63f3655f42eb59a16197137107184135.png

因为访问的数据放在共享存储里,所以看到的内容仍然是相同的:

3ec1ff71f4126f8cf58c4738b8303cc7.png

2.实战: mysql双机热备

创建mysql高可用集群需要三个资源:

mysql_vip: 192.168.122.201/24

mysql服务: mysql_service

mysql共享存储 : mysql_storage

所属组: group_2

先创建第一个资源mysql_vip:

9cdcd0571bdba40874e02291706353b5.png

Class/Provider选择ocf:heatbeat

Type选择IPaddr2

Resource ID 用来标记不同资源,这里填写mysql_ip

ip用来填写所选择的vip,这里填写为192.168.122.201,记住要选择一个没有使用过的ip

cidr_netmask 填写子网掩码长度,这里写24

4400959483a2cb302d0942e04fe21db2.png

点击"Create Resource"

创建组group_2,选中mysql_vip,点击"create group"

f03f471dab81d3233a36cd66f24ef117.png

Group Name填写group_2

0b11e7ab9e71365ea0655ee7890cd1a8.png

点击"Create Group"

添加共享存储

在node(物理机)上创建共享目录/mysql,并把所有者所属组设置为27

[root@server ~]# mkdir /mysql

[root@server ~]# chown 27:27 /mysql

[root@server ~]# echo '/mysql *(rw,async)' > /etc/exports.d/mysql.exports

[root@server ~]# exportfs -arv

exporting *:/mysql

exporting *:/web

[root@server ~]#

在node1~node3任一节点上上测试nfs共享目录正常工作:

[root@node2 ~]# mount node:/mysql /mnt

[root@node2 ~]# df -hT | tail -1

node:/mysql           nfs4      120G  7.3G  113G    7% /mnt

[root@node2 ~]# umount /mnt

[root@node2 ~]#

[root@node2 ~]#

添加共享存储资源:

b6c9f137003612ac9b1e648c87b37c8d.png

Class/Provider选择ocf:heatbeat

Type选择Filesystem

Resource Group选择group_2

Resource ID 用于区分不同的资源,这里填写mysql_storage

device处填写nfs共享目录的路径,这里填写node:/mysql

directory是mysql数据存放的目录,这里填写/var/lib/mysql

fstype填写nfs

e7244b0add2217d289b23f67fdc1adea.png

点击"Create Resource"

添加第三个资源mariadb

在三个节点上安装mariadb

[root@nodeX ~]# yum install mariadb-server mariadb -y

已加载插件:product-id, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

正在解决依赖关系

–> 正在检查事务

已安装:

mariadb.x86_64 1:5.5.41-2.el7_0                                    mariadb-server.x86_64 1:5.5.41-2.el7_0

作为依赖被安装:

perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7  perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7      perl-DBD-MySQL.x86_64 0:4.023-5.el7

perl-DBI.x86_64 0:1.627-4.el7 perl-Data-Dumper.x86_64 0:2.145-3.el7        perl-IO-Compress.noarch 0:2.061-2.el7

perl-Net-Daemon.noarch 0:0.48-5.el7        perl-PlRPC.noarch 0:0.2020-14.el7

完毕!

[root@nodeX ~]#

在node1~node3所有节点上修改配置文件,设置编码为utf8

[root@nodeX ~]# sed -i '/mysqld\]/acharacter-set-server=utf8' /etc/my.cnf

添加mariadb资源

2d29086f0776c68c508ef7d3822b2885.png

Class/Provider选择systemd

Type选择mariadb

Resource Group选择group_2

Resource ID用于区分不同的资源,这里填写mysql_service

d0270ba5faea60a030bbc45d2c7a1719.png

点击"Create Resource"

稍等一会集群正常工作:

c1c342a4ad6ea72b310e4075d7e37a53.png

由此可以看到集群现在在node3上工作,现在在node3上登录mysql创建一个可以远程登录的用户:

[root@node3 ~]# mysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all privileges on *.* to root@'%' identified by 'redhat';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>

验证

下面开始在客户端(这里选择物理机node)上进行验证。

首先安装客户端工具:

[root@server ~]# yum install mariadb -y

已加载插件:langpacks, product-id, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

正在解决依赖关系

–> 正在检查事务

—> 软件包 mariadb.x86_64.1.5.5.41-2.el7_0 将被 安装

–> 解决依赖关系完成

依赖关系解决

….

已安装:

mariadb.x86_64 1:5.5.41-2.el7_0

完毕!

[root@server ~]#

连接mysql_vip

[root@server ~]#  mysql -uroot -predhat -h192.168.122.201 -e \

>   "create database aa ; use aa ; create table aa (id int); insert into aa values (1);"

[root@server ~]#

[root@server ~]# mysql -uroot -predhat -h192.168.122.201 -e \

> 'use aa; select * from aa;'

+——+

| id   |

+——+

|    1 |

+——+

[root@server ~]#

现在对node3执行standby操作:

可以看到mysql已经在node2上运行了,我们仍然连接mysql_vip:

[root@server ~]# mysql -uroot -predhat -h192.168.122.201 -e 'use aa; select * from aa;'

+——+

| id   |

+——+

|    1 |

+——+

[root@server ~]#

依然是可以连接的,mysql服务成功切换!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值