前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql主从复制实现读写分离(一)

mysql主从复制实现读写分离(一)

作者头像
lomtom
发布2021-10-27 15:22:12
6000
发布2021-10-27 15:22:12
举报
文章被收录于专栏:博思奥园博思奥园

一、场景引入

前提背景

在某些场景下,例如淘宝京东这样海量的数据,高访问量的场景,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求。

而单个服务器所能够提供的服务以及负载都是有限的。

所以,为了系统的问题,以及较快的响应速度或处理能力,在数据库方面就有了集中解决方案,分库分表,读写分离,这些都能在一定程度上有效地减小单台数据库的压力。

而本文就是从读写分离角度来一探究竟。

实现原理

主要理解以下三个点就差不多了: 1、主机负责写操作 2、从机负责读操作 3、从机自动从主机中同步数据

然而,我们对于一个新的东西,我们就要提出我们的哲学三问: 我是谁?我在那?我要干嘛? 是什么?为什么?怎么做?

1、什么是读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

2、为什么要读写分离呢?

因为数据库的“写”(写10000条数据到oracle可能要3分钟)操作是比较耗时的。但是数据库的“读”(从oracle读10000条数据可能只要5秒钟)。所以读写分离,解决的是,数据库的写入,影响了查询的效率。

3、什么时候要读写分离?

数据库不一定要读写分离,如果程序使用数据库较多时,而更新少,查询多的情况下会考虑使用,利用数据库 主从同步 。可以减少数据库压力,提高性能。当然,数据库也有其它优化方案。memcache 或是 表折分,或是搜索引擎。都是解决方法。

4.主从复制、读写分离的基本设计

在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。

取自:读写分离的实现原理及使用场景[1]

这里使用docker进行数据库的安装,docker的优势以及就怎么安装docker就不多做赘述了,感兴趣的可以去翻一下我以前的文章。

一、安装mysql

这里只安装了一个主机(master),一个从机(slave)

代码语言:javascript
复制

二、配置同步

为什么?

如果不进行同步的配置,那么从机无法获取主机的数据,最终就会导致同步失败。

1、配置主机用户

代码语言:javascript
复制

2、修改配置文件

在从机中的配置文件加入以下参数。

1.主机

代码语言:javascript
复制

1.从机

代码语言:javascript
复制

1、修改配置文件(以master为例)

代码语言:javascript
复制

2、拷贝(主从都需要拷贝,以master为例) 如果服务器有vi编辑器,直接使用vi编辑器即可。

代码语言:javascript
复制

3、重启mysql

代码语言:javascript
复制

4、查看是否配置成功

代码语言:javascript
复制

如果出现以下数据即为成功。

5、在从机(slave)中配置主机(master)

代码语言:javascript
复制

三、测试

在第一个数据库(master)创建我们配置的数据库,然后随意修改该数据库的数据,刷新slave,数据同步成功。

四、注意

1、因为在配置当中指定了数据库(lomtomdb),也就是binlog-do-db参数,所以从机只会同步主机中的lomtomdb数据库,其他数据库不同步。2、修改配置文件时,log-bin参数所指定的目录一定是要mysql能够操作的文件,也就是说,如果你指定了其他目录,请给予mysql操作权限。

本文首发于CSDN,作者:lomtom 原文链接:https://blog.csdn.net/qq_41929184/article/details/112306554 你的支持就是我最大的动力。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博思奥园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、场景引入
    • 前提背景
      • 实现原理
      • 一、安装mysql
      • 二、配置同步
        • 1、配置主机用户
          • 2、修改配置文件
          • 三、测试
          • 四、注意
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档