构建读写分离的数据库集群

来自CloudWiki
Cloud17讨论 | 贡献2019年11月7日 (四) 07:01的版本
跳转至: 导航搜索

规划节点

使用Mycat作为数据库中间件服务构建读写分离的数据库集群,节点规划见表4-1-1。

表4-1-1 节点规划

IP	主机名	节点
172.16.51.6	mycat	Mycat中间件服务节点
172.16.51.18	db1	MariaDB数据库集群主节点
172.16.51.30	db2	MariaDB数据库集群从节点

基础准备

使用CentOS 7.2系统,flavor使用2vCPU/4G内存/50G硬盘,创建3台虚拟机进行实验。

其中2台虚拟机db1和db2部署MariaDB数据库服务,搭建主从数据库集群;一台作为主节点,负责写入数据库信息;另一台作为从节点,负责读取数据库信息。

使用一台虚拟机部署Mycat数据库中间件服务,将用户提交的读写操作识别分发给相应的数据库节点。这样将用户的访问操作、数据库的读与写操作分给3台主机,只有数据库集群的主节点接收增、删、改SQL语句,从节点接收查询语句,分担了主节点的查询压力。

Yum源使用提供的gpmall-repo文件夹作为本地源,Mycat组件使用提供的Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz压缩包安装。

修改主机名

使用hostnamectl命令修改3台主机的主机名。

Mycat节点修改主机名命令:

[root@localhost ~]# hostnamectl set-hostname mycat
[root@localhost ~]# bash
[root@mycat ~]#

db1节点修改主机名命令:

[root@localhost ~]# hostnamectl set-hostname db1
[root@localhost ~]# bash
[root@db1 ~]#

db2节点修改主机名命令:

[root@localhost ~]# hostnamectl set-hostname db2
[root@localhost ~]# bash
[root@db2 ~]#

编辑hosts文件

3台集群虚拟机的/etc/hosts文件配置部分:

[root@mycat ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.51.6     mycat
172.16.51.18    db1
172.16.51.30    db2

配置yum安装源

数据库集群需要安装MariaDB数据库服务,需要给集群虚拟机配置Yum安装源文件,使用提供的gpmall-repo文件上传至3个虚拟机的/opt目录下,设置本地Yum源。

首先将3个节点/etc/yum.repo.d目录下的文件移动到/media下,命令如下:

mv /etc/yum.repos.d/* /media/

3台集群虚拟机的Yum安装源文件配置部分:

cat /etc/yum.repos.d/local.repo

[mariadb]
name=mariadb
baseurl=file:///opt/gpmall-repo
gpgcheck=0
enabled=1

安装JDK环境

部署Mycat中间件服务需要先部署JDK 1.7或以上版本的JDK软件环境,这里部署JDK 1.8版本。

Mycat节点安装Java环境:

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

[root@mall ~]# java -version

openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

部署MariaDB主从数据库集群服务

可参考部署MariaDB主从数据库集群服务

部署Mycat读写分离中间件服务

部署Mycat读写分离中间件服务

安装Mycat服务

将Mycat服务的二进制软件包Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz上传到Mycat虚拟机的/root目录下,并将软件包解压到/use/local目录中。赋予解压后的Mycat目录权限。

[root@mycat ~]# tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
[root@mycat ~]# chown -R 777 /usr/local/mycat/

在/etc/profile系统变量文件中添加Mycat服务的系统变量,并生效变量。

[root@mycat ~]# echo export MYCAT_HOME=/usr/local/mycat/ >> /etc/profile
[root@mycat ~]# source /etc/profile