数据库读写分离优缺点(数据库读写分离的原理)
admin
2022-11-17 01:01:12

一.背景

1.什么是读写分离

读写分离从字面上就很好理解,读数据库和写数据库的操作分别执行,读或写操作分别用不同的计算机或计算机组来承担任务。可以参考下基础的架构图。

2.为什么要读写分离

还不是为了安全,读写分离为主从同步的一种备份方案,当主数据库出现问题的时候,从数据库可以代替主数据库,避免数据丢失,从而更加的安全。

进一步而言,当配置好主从复制后,我们就可以把两台机器做不同的用途,由于从机写入数据时不会同步到主机,因此把主机做写服务器,从机做读服务器,得以分散压力,使得数据库更稳定高效。(一般情况都是读操作更多)

3.下一步?

如果有多个读写服务器组,可以使用多主多从的方式建立,然后使用Nginx代理读和写组服务器,或使用HaProxy或LVS等来组建统一的访问入口,交给开发访问。

二、搭建

主从复制在前一期在复现过,这里来详细阐述my.cnf几个参数。

# 开启二进制日志log-bin=mysql-bin# 设置服务器idserver-id=1# 使用binlog在每N次写入后与硬盘同步sync-binlog=1# 5天后自动清理二进制日志expire_log_days=1

我在这里简单搭建:

# 主服务器docker run -p 12345:3306 --name mysql_master -v /opt/docker/mysql_master/conf:/etc/mysql/conf.d -v /opt/docker/mysql_master/logs:/logs -v /opt/docker/mysql_master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

docker run -p 12346:3306 --name mysql_node -v /opt/docker/mysql_node/conf:/etc/mysql/conf.d -v /opt/docker/mysql_node/logs:/logs -v /opt/docker/mysql_node/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

配置文件,分别执行下面两条命令。

cat > /opt/docker/mysql_master/conf/my.cnf << EOF[mysqld]# 开启二进制日志log-bin=mysql-bin# 设置服务器idserver-id=1# 使用binlog在每N次写入后与硬盘同步sync-binlog=1# 5天后自动清理二进制日志expire_logs_days=5EOF

cat > /opt/docker/mysql_node/conf/my.cnf << EOF[mysqld]server-id=2EOF

重启生效

主节点上操作: 执行以下命令,主节点新建立用户,用于同步。

docker exec -it mysql_master /bin/bash

mysql -uroot -p123456mysql> CREATE USER 'repl'@'%' identified by '123456';mysql> grant REPLICATION SLAVE ON *.* TO 'repl'@'%'; docker restart mysql_masterdocker restart mysql_node# 回到shell 操作界面quitexit

从节点上操作:执行以下命令

docker exec -it mysql_node /bin/bash

# 把下面的ip换成你主节点的ip和端口mysql -uroot -p123456mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.187', MASTER_PORT=12345,MASTER_USER='repl',MASTER_PASSWORD='123456';# 启动同步mysql> start slave;Query OK, 0 rows affected (0.00 sec)2-2-4:查看同步状态mysql> show slave status G;

如果没有报错,则部署成功。

验证

在主master上去创建数据库或新建表,加入数据,从节点很快接受到同步,同样的,如果在从node节点上去插入数据的话,主节点的数据无变化。这样就做好了读写分离的实验,后面我们把主master作为读/写节点,nodes作为读节点就好了。

以上就是数据库读写分离的原理(数据库读写分离优缺点)的相关内容了,更多精彩内容请关注!

相关内容

热门资讯

长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...