db2删除大量数据_MariaDB数据库服务器并发性群集典型案例---读写分离技术(图文)...

前序

a4cd93718502cc9cd9013fbe0eda0335.png

图1 MariaDB读写分离集群

大家好,今天我们讨论MariaDB数据库服务器的群集案例,今天给大家带来一份经典案例,通过mycat实现读写分离,有效解决数据库高并发性问题。我们知道,数据库服务器作为“后端”服务,是数据处理重要的设备,为了保证数据库服务器稳定高效的运行,将数据库的两个基本操作,“读”和“写”功能进行分离,在大型的数据库群集环境下,一些数据库专门处理用户的“写”操作(例如insert、update、delete),另外一些数据库专门处理“读”操作(例如select)。这样做,可以有效减轻数据库服务器的负担,提高数据库服务器的响应速率。读写分离的一个难点是如何实现数据库的同步,因为不管是读操作还是写操作,最终,群集中的所有数据库服务器的内容要保持一致。我将带领大家在模拟环境下完成数据库的读写分离操作。

实验过程

96e3cf9c1286ebef5808f586940701ad.png

图2 读写分离模拟环境

实验准备、3台CentOS7服务器(vmware workstation)图2所示

  • db1:读数据库 192.168.0.1
  • db2:写数据库 192.168.0.2
  • mycat:读写分离设备 192.168.0.3

注:实验开始前,为了保证实验顺利进行,请关闭三台设备的防火墙(systemctl stop firewalld)和selinux(setenforce 0)。

步骤一、设置三台主机的IP地址、主机名和静态解析

fd5b22f3132a53ce7b3ce6fc0d78198c.png

图3 db1主机名和IP信息

1e6e4a1c9a195af5e260ccb15221fc93.png

图4 db2主机名和IP信息

e55bf34c26041f5543d519de1821a2a3.png

图5 mycat主机名和IP信息

图3、图4、图5,设置主机名和IP地址

f2fa70781f2208a681e41d0ea16adafa.png

图6 配置静态解析

图6、为了使实验效果容易看懂,特别用了静态解析,分别定义了db1、db2、mycat三台主机,因为是实验环境,所以仅配置了静态解析,要在三台设备上都设置,真实环境下,一台DNS服务器就搞定了,这里不再赘述关于DNS服务器的配置,DNS服务器还不会搭建的读者可以参考我的视频:DNS服务器搭建。

步骤二、配置YUM安装源

75a8a83afc42c54597c4010e2aea6c8d.png

图7 上传yum包

图7中,由于CentOS7自带的mariadb版本太低了,我自己做了一个yum源,包含mariadb10版本,将自制的yum包上传到/root目录下,三台主机都要上传,这里只演示了192.168.0.3,另外两台主机方法相同,省略。

fc34ddf59b8b2bb3b99a3689c380156a.png

图8 local.repo

图8,清空/etc/yum.repos.d/目录下所有文件,新建local.repo,写入两个源,一个是CentOS7安装光盘,一个是我自己上传的源pip.cc.repo。为什么要定义两个源?因为我自己做的源只包含了mariadb10,该案例还需要安装其它软件,所以安装光盘源还是需要的。

ff188ebae43b7a9922ae0d38cd84f009.png

图9 拷贝local.repo

图9,三台设备YUM源配置是一样的,这里我偷个懒,直接通过scp命令将设置好的local.repo文件传到另外两台主机上,省的重复写了。

12c9115e48d1d54b6ebe20df5ae2bf06.png

图10 验证YUM源

图10,配置好YUM源后要验证一下,如果没有报错,就好了,注意三台主机上都要验证。

步骤三、安装MariaDB,并设置root密码

d53eacff9e32457514f18c688e0a0916.png

图11 安装MariaDB

图11,分别在db1和db2上安装MariaDB服务器,记住服务端要装,客户端也要安装,因为还要调试配置。

6fdb8bb55ef406d9e39f53e3f071ad51.png

图12 设置root密码

图12,MariaDB的root密码设置为123456,图中演示的db1,db2设置相同

2eca10d693d636a3c946603034afa061.png

图13 设置root登录权限

图13,这里要注意,root要允许远程登录,即表示在其它主机上可以通过root用户登录,因为一会要用mycat远程连接db1或db2。途中演示的db1,db2设置相同。

步骤四、配置主、备分离,实现数据库同步

ad9357585c41a30b77ea613e9f68b6ee.png

图14 server.cnf

图14,要实现读写分离,首先要实现数据库同步,通过主备分离法实现,修改server.cnf配置文件,注意主服务器server_id=1,备服务器server_id=2,其它设置一样,图12只演示了主服务器,备服务器略,配置好后记得重启mariadb服务。

f19b2b728d9867a2e84222b3f828be6d.png

图15 主服务器配置

77baa66fb2a98924828a165a83fbcf1e.png

图16 备份服务器配置

df10521ec24358fcb5c193e0a82d977c.png

图17 在备份服务器上验证,没报错即代表成功

图13、图14、图15是主备服务器的配置过程,在“主-从”MySQL数据库服务器实现高并发性集群配置中有详细介绍,这里不再赘述。

步骤五、配置mycat,实现数据库读写分离,主服务器作为写服务器,备份服务器作为读服务器

a8e5ea4833ede0396093632a8dccd4e6.png

图18 安装java环境

c7c3122831f2872fef6b06aa882eaf99.png

图19 查看java环境

图18、图19是java环境的安装与验证,mycat需要java环境。

步骤五、部署mycat

d90bff09b64d8ba69cb201ec5299096b.png

图20 mycat安装包上传到到服务器

22bbd3ed6dae1da0eada0c9a64802d4f.png

图21 解压缩mycat到/usr/local/目录

1f95ee1a83feb01e3eade1c7c3faceb8.png

图22 配置mycat的环境并验证

图20、图21和图22是部署mycat的过程,mycat不是YUM包,是tar.gz包,导入到服务器上后解压缩到/usr/local下即可,并配置mycat的环境变量,使mycat变为系统服务的一部分。

步骤六、配置mycat

a89fa7d803e67e8a27086fb63793ab3d.png

图23 schema.xml

图23中,进入/usr/local/mycat/conf目录下,找到schema.xml文件,该文件是用标签语言写的,定义了要访问的数据库school,该数据库已在db1中提前创建,db1和db2自动同步,我们要对school进行读写分离操作,其中writeHost标签定义了“写”服务器的主机名db1和ip地址192.168.0.1,readHost标签定义了“读”服务器的主机名db2和ip地址192.168.0.2。

0e44811ffb31eb354c0622c5bd493c9f.png

图24 server.xml

图24中,也是在/usr/local/mycat/conf目录下,找到server.xml文件,红色部分定义了数据库名school,用户名root和密码123456,绿色部分没有用,直接删除掉,否则会影响实验效果。

步骤七、启动mycat并验证

23dcb3966a11cf1458dfe49d2416b516.png

图24 启动mycat服务

图24中,启动mycat服务,查看状态为running,且看到本机开放了9066和8066端口,即表示成功。

3d10ae541103ee16811334499509cdbd.png

图25 验证mycat服务

图25中,我们看到了验证结果,检查mycat的状态,我们发现db1标识W,db2表示R,读写分离完成,如果要更清楚的看到效果,用户可用一台客户机远程连接mycat服务器,如果对服务器进行写操作,insert、delete、update,就会发现db1的EXECUTE选项数字有变化,表示db1正在执行工作;而我们对服务器进行读操作,如select,就会发现db2的EXECUTE选项数字有变化,表示db2正在执行工作。读写工作就能看得更清楚了。

后序

读写操作的实现,可以让数据库服务器只针对一种操作,通过该方法,有效的减轻了单台数据库服务器既要响应读操作,也要响应写操作的烦恼,提高了单台服务器的运行效率。在实际的使用中,该架构广泛用在电商平台的后台数据库,往往是一群写操作服务器和一群读操作服务器共同构建了大型电商网站的后台数据库。而且你还会发现一个有趣的事情,写操作服务器的数量要远远少于读操作服务器。为什么呢?原因很简单,我们平时网上购物,其实大多数的行为都是在浏览、查询商品(读数据库),而真正购物下单的操作(写操作),其实并不多,也许我们为了买一件商品,往往要查看同类的十几种商品后,才能考虑下单。所以,为了合理分配服务器资源,“写”服务器数量会远远少于“读”服务器数量。好了,时间不早了,今天就讲到这里,洗洗睡了O(∩_∩)O。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值