系列文章目录
RHCE第0章:RHCE开始前的准备
RHCE第1章:Web服务器(上)
RHCE第1章:Web服务器(下)
RHCE第2章:DNS服务
RHCE第3章:DHCP服务器
RHCE第4章:Firewall服务、
RHCE第5章:SELinux
RHCE第6章:nfs网络文件系统
RHCE第7章:samba文件共享
RHCE第8章:链路聚合和桥接
RHCE第9章:KVM虚拟化技术
RHCE第10章:时间服务器
RHCE第11章:Mariadb数据库(上)
RHCE第11章:Mariadb数据库(中)
RHCE第11章:Mariadb数据库(下)
RHCE第11章:Mariadb数据库(后)
文章目录
前言
这是Mariadb数据库的最后一次博客,在完成主从复制的条件下进行读写分离,可以用于提高安全性。读写分离就是在客户端和服务器之前添加一台机器,用来调度不同的任务,在不同的数据库机器上执行。现在把之前那个时间服务器用作任务调度。
一、环境准备
1.主从复制
看上一篇博客,为了实验效果,建议再加一台虚拟机,还是用命令模式即可。
2.安装jdk环境
略过,只需要在第四台虚拟机上安装即可,也就是时间服务器。
3.上传amoeba
一样配置在第四台虚拟机。
为其建立一个文件夹
然后上传解压即可。
二、配置amoeba
1.创建用户
amoeba可以在不同数据库之间进行任务调度,就需要有每个数据库足够的权限,现在我们为他创建用户。在chao1上创建。
grant all on *.* to 'chaotest'@'%' identified by 'chao';
由于chao2和chao3进行了主从复制,所以就不用在创建了。
2.配置防火墙
amoeba程序走的是8066端口。
3.编写配置文件
vim /usr/local/amoeba/conf/amoeba.xml
需要修改几个地方。可用/来搜索。
修改后
这里的账号密码自己设置
修改pool
修改前
修改后
这里修改了三个参数,简单说一下
第一个默认池:当用户通过amoeba连接后所连接的服务器所在池.
第二个写池:进行写操作的服务器所在池。
第三个读池:进行读操作的服务器所在池。
这三个参数的名字随便,但后边会用到。
之后编写下一个配置文件。
vim /usr/local/amoeba/conf/dbServers.xml
将数据类型改为mysql并修改账号密码,这是写的是刚刚创建的那个账号。
将各个服务器信息写入。
一个dbServer代表一台服务器,里边要修改两个信息,第一个name用来标记这个服务器随便写,还有一个是服务器的IP地址。
将服务器分别放入读池与写池。
咱们将chao1作为写服务器,chao2,chao3作为读服务器,写服务器只有一台就不用专门写了,就写一个就行。
红框框是要修改的两个参数,第一个是池的名称,第二个是池里服务器的名称,箭头所指是服务器的运行模式,上一行注释也有,1代表轮巡模式,意思是轮流干活。
4.启动amoeba
到目前为止amoeba就配置完了,启动它。
启动后就不再需要操作这台机器了,建议先转换成命令模式在启动。
/usr/local/amoeba/bin/amoeba start
这样就代表启动成功。
也可以查看一下端口。
三、读写测试
这里要使用第五台虚拟机。
1.安装客户端
安装mariadb客户端
2.登陆amoeba
mysql -u amoeba -p chao -h 192.168.100.4 -P8066
这里要指定服务器和端口。
3.制作测试数据
在chao1的chaotest里建立一张表。
由于主从复制,所以其他两个数据库里也有会这张表。
为了增强效果,现在把主从复制都停止。
然后分别在三个数据库中添加三条不同的数据。
chao1
chao2
chao3
4.进行读写测试
每次的读结果不一样,所以是在不同的服务器上进行的。现在插入一条数据。
然后再次查询。
发现数据被没有被插入,这是因为读写是分离的,而咱们又将主从复制关闭了,所以去chao1上查看数据。
可以看到数据已经被插入了
总结
到此位置,所有数据库的内容就都结束了。