数据库读写分离

分析型数据仓库中读写分离的实现 本文作者为神策数据(ID:SensorsDataCrop)资深研发工程师张广强,版权归神策数据所有。 和以 MySQL 为代表的传统事务型数据库相比,数据仓库有一个很大的特点,就是主要面向批量写和查询进行优化,可以不支持更新、事务这些高级特性。一些商用的数据仓库分析系统,例如 Vertica,已经可以做到千亿级数据的秒级导入和秒级查询。神策数据一直致力于帮助企业搭建数据仓库,实现数据的秒级响应,积累 阅读详情

实现思路

通过设置主从数据库实现读写分离,主数据库负责“写操作”,从数据库负责“读操作”,根据压力情况,从数据库可以部署多个提高“读”的速度,借此来提高系统总体的性能。

主从数据库同步的实现思路如图: 

主服务器master记录数据库操作日志到Binary log,从服务器开启i/o线程将二进制日志记录的操作同步到relay log(存在从服务器的缓存中),另外sql线程将relay log日志记录的操作在从服务器执行。

主从数据库设置的具体步骤

首先要有两个数据库服务器master、slave(也可以用一个服务器安装两套数据库环境运行在不同端口,slave也可以举一反三设置多个),我们穷人就买虚拟云服务器玩玩就行 0.0。以下操作假设你的两台服务器上都已经安装好了mysql服务。

1.打开mysql数据库配置文件

vim /etc/my.cnf

2.在主服务器master上配置开启Binary log,主要是在[mysqld]下面添加:

server-id=1

log-bin=master-bin

log-bin-index=master-bin.index

3.重启mysql服务

service mysql restart

ps:重启方式随意

4.检查配置效果,进入主数据库并执行

mysql> SHOW MASTER STATUS;

5.配置从服务器的 my.cnf

在[mysqld]节点下面添加: 

server-id=2 relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin

注:主从数据库server-id不一样

配置完成后同样重启从数据库一下

service mysql restart

6.接下来配置两个数据库的关联

首先我们先建立一个操作主从同步的数据库用户,切换到主数据库执行:

mysql> create user repl;

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从xxx.xxx.xxx.xx' IDENTIFIED BY 'mysql';

mysql> flush privileges;

这个配置的含义就是创建了一个数据库用户repl,密码是mysql, 在从服务器使用repl这个账号和主服务器连接的时候,就赋予其REPLICATION SLAVE的权限, *.* 表面这个权限是针对主库的所有表的,其中xxx就是从服务器的ip地址。

进入从数据库后执行:

mysql> change master to master_host='主xxx.xxx.xxx.xx',master_port=3306,master_user='repl',master_password='mysql',master_log_file='master-bin.000001',master_log_pos=0;

1

这里面的xxx是主服务器ip,同时配置端口,repl代表访问主数据库的用户,上述步骤执行完毕后执行start slave启动配置:

mysql> start slave;

停止主从同步的命令为:

mysql> stop slave;

查看状态命令,\G表示换行查看

mysql> show slave status \G;

在Spring中配置好主从数据库源,在拦截器中对执行的方法进行拦截判断,如果是写操作,则选择主数据库,读操作选择从数据库。(AOP)

如何将rvt(BIM)转换为点云格式 1、为什么将BIM转换为点云格式? 如何使设计BIM与真实场景进行配准,分析在建、未建、已建构建的情况,真实场景是通过点云生产的,和点云配准需要相同的格式。 2、如何转换? 实用工具revit,转换过程如下图,这样就可以转换成三角网格形式。 3、FBX还需要进行一次转换,即转换成点云常用的类型,如bin\ply\pcd等格式。 需要软件cloudcompare.exe,软件下载地址百度云 链接:https://pan.baidu.com/s/1pflcKNc04loBnS1yKR39hw 提取码:obaf 阅读详情

相关推荐

Blender学习笔记——制作向量场

#下载Blender - UE4 - FGA Vector Field Editor插件的压缩包,Github上的下载地址如下:https://github.com/isathar/Blender_UE4_VectorFieldEditor #下载并解压后将FGA VectorFields文件夹复制到C:\Program Files\Blender Foundation\Blender 2.83\2.83\scripts\addons目录下,此步骤可根据blender安装的位置自行调整,只要放入addon

wychao2020的博客 1724

【解决】SQL Server2008 R2 分离数据库提示3703错误

【解决】SQL Server2008 R2 分离数据库提示3703错误 在我们使用SQL Server2008 R2 分离数据库的时候会出现3703错误 确认以后会出现错误提示 把这个构打上即可成功分离 提醒:分离数据库只是将数据库从SQL Server数据库列表中删除,让这个manager不管理那个数据库而已,原文件的位置没有改变,如果你的数据是从外面导入的,即在D:\Program Fi...

weixin_43067847的博客 6682

Educoder | 计算机网络实验-Ping命令与ICMP协议分析

任务描述本关任务:捕获 Ping 程序生成的数据包。相关知识ping命令Ping 程序是一个简单的工具,允许任何人(例如:网络管理员)验证主机是否存在。源主机中的 Ping 程序将数据包发送到目标 IP 地址;如果目标是在线的,则目标主机中的 Ping 程序将会发送响应 Ping 数据包证明他在线,这两个 Ping 数据包都是 ICMP 数据包。在 Unix/Linux,序列号从 0 开始计数,依次递增。而 Windows 中 ping 程序的 ICMP 序列号是没有规律;;。

Mksg_28的博客 7625

MySQL数据库:读写分离

读写分离解决的是,数据库的写操作,影响了查询的效率,所以读写分离适用于读远大于写的场景。读写分离的实现基础是主从复制,主数据库利用主从复制将自身数据的改变同步到从数据库集群中,然后主数据库负责处理写操作(当然也可以执行读操作),从数据库负责处理读操作,不能执行写操作。并可以根据压力情况,部署多个从数据库提高读操作的速度,减少主数据库的压力,提高系统总体的性能。

张维鹏的博客 1万+

weblogic等保测评操作过程

weblogic网络安全等级测评保护操作

qq_48257021的博客 2758

别再自己写组件了!用uni-app的midButton属性5分钟搞定中间凸起TabBar(H5/小程序通用)

本文详细介绍了uni-app官方提供的midButton属性,帮助开发者5分钟内实现中间凸起的TabBar效果,无需编写繁琐的自定义组件代码。该方案兼容H5和微信小程序平台,配置简单且维护成本低,大幅提升开发效率和性能表现。

weixin_30431445的博客 347

mysql 数据库读写分离状态查看_mysql数据库读写分离,主从同步实现方法

mysql主从操作:mysql数据库读写分离,主从同步实现方法https://blog.youkuaiyun.com/go_pkqL00/article/details/87974101mysql数据库的读写分离https://www.jianshu.com/p/0eaacc73fa70Mysql读写分离与主从数据库设置方案https://baijiahao.baidu.com/s?id=1613635845...

weixin_42510053的博客 871

图形化界面无限转圈?CentOS 7的SELinux避坑指南(附命令行修复实录)

本文详细解析了CentOS 7图形界面启动时无限转圈或卡在'starting switch root'的故障原因,主要与SELinux安全策略冲突有关。提供了三种修复方案:临时禁用SELinux、重装策略包和精细调整策略,并分享了长期维护建议,帮助用户平衡系统安全性与可用性。

potato的博客 798

redis的主从复制、读写分离master/slave 的详细使用解读过程

redis的复制 redis的复制也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。 本次在Linux上使用的redis版本为:5.0.3 [root@localhost etc]# redis-server --version Redis server v=5.0.3 sha=00000...

itboy 3070

delphi fmx android 自动更新(一)

所以,如果是http 则,manifest.xml application 下,https无需添加。增加android:usesCleartextTraffic="true",不然无法使用http下载东西。1,REQUEST_INSTALL_PACKAGES 权限。4,WRITE_EXTERNAL_STORAGE 权限。3,READ_EXTERNAL_STORAGE 权限。一般是从http下载安装包 apk。2,INTERNET 权限。sFile为apk包路径。

全粘工程师 550

YOLOv11改进策略【独家融合改进】| MobileNetV4+BiFPN,轻松实现降参涨点,适用专栏内所有的骨干替换

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 2360

laravel5.2 DB数据库 读写分离

Laravel 读写分离 在datbase配置文件的内部 - 找到config/database.php- 可以定义任何类型的多个数据库连接。    使用方法:  想学习更多laravel中多个DB链接方法:  http://fideloper.com/laravel-multiple-database-connections

pz_winner的博客 667

CH-x01&ICU-x0201-问答专题

CH201在近距离30cm和远距离1.8m左右测距误差是最大的,误差可能>3 cm。在中间部分测距误差是<2cm的,因为考虑到安装测试治具也存在误差,所以整个范围设置在±3cm。

nicole088的专栏 379

应用层数据库读写分离db-loadbalance

web应用中,最先遇到性能瓶颈的就是数据库了。对于解决这个性能问题,首选方案就是数据库的读写分离。这里不谈如何构建数据库的读写分离方案,想谈的是当我们有了数据库的读库与写库如何进行读写分离。如果数据库本身就提供读写分离,或者说数据库本身支持读写分离,那么对于用户来说那是再好不过了,比如oracle rac就可以。另外还有mysql replication 驱动,当然它需要与应用事务结合。 在此想

snoopy 1733

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Zabbix DB 读写分离实施方案

Zabbix作为一个成熟的企业级监控系统,在部署初期可能表现良好。但随着监控项数量从几百个增加到数万甚至数十万个,以及业务规模的持续扩展,数据库负载会呈现指数级增长。特别是在高频率数据采集、复杂触发器计算和历史数据存储的场景下,单个数据库实例往往难以承受。

Made In SQL 1015

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

django 数据库读写分离配置

前言: django在进行数据库操作的时候可以进行读写分离 如: 读取数据与写数据(增、删、改)可以分别从不同的数据库进行操作。 1. 在配置文件中增加slave数据库的配置 DATABASES = { # 主机(写) 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '10.211.55.5', 'PORT': 3306, 'USER': 'user',

weixin_42194215的博客 340

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Zabbix DB 读写分离

Zabbix数据库读写分离是指通过将数据库的读操作(SELECT查询)和写操作(INSERT、UPDATE、DELETE等)分配到不同的物理数据库服务器上,以减轻主数据库负载并提高系统整体性能的架构方案。I/O瓶颈:频繁的历史数据写入导致磁盘I/O压力增大CPU瓶颈:复杂的数据查询消耗大量CPU资源连接数限制:大量前端界面访问和后台处理竞争数据库连接读写分离通过将读操作分流到从库,可以有效解决这些问题。监控设备超过500台的中大型环境历史数据保留周期超过3个月前端用户并发访问量大的情况。

Made In SQL 1222

Impeccable Extract Flow 指南:把重复 UI 沉淀为设计系统 Tokens 与组件

Impeccable 是一个面向 AI Agent 的设计技能(skill),其 `extract` 命令负责在既有前端代码库中识别可复用的模式、组件与设计令牌(design tokens),并把它们抽取、固化为系统的设计系统资产。本文以仓库内 [reference/extract.md](https://link.gitcode.com/i/0638cf933f460897d196c85b7e4

gitblog_00043的博客 407

django数据库读写分离

1. 配置数据库 settings.py文件中 用SQLite: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }, 'salve': { 'ENG...

毛毛腿的博客 1201

数据仓库:实现读写分离提高性能

总的来说,读写分离是一种在分析型数据仓库中提高性能、可伸缩性和可用性的有效技术。通过将读和写操作分离到不同的数据库服务器上,组织可以更有效地处理大量数据,并提高查询速度和分析能力。这种分离使得读操作可以轻松地从缓存中获得高性能,而写操作则可以确保数据的一致性和完整性。在分析型数据仓库中,读写分离是一种将读和写操作从数据库中分离出来的过程。通过将读和写操作分离到不同的数据库服务器上,可以提高系统的性能和可伸缩性。通过将读和写操作分离到不同的服务器上,组织可以在不影响读操作的情况下进行数据库的维护和升级。

weixin_41888295的博客 110

实战案例——构建读写分离的数据库集群(超详细)

目录 一、认识读写分离 01、读写分离概念 读写分离:基本的原理是让主数据库处理事务性增(insert)、改(update)、删(delete)操作而从数据库处理查询(select)操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 02、读写分离的作用 因为数据库的“写”(写100,00条数据到MySQL可能要3分钟)操作是比较 耗时的,但是数据库的“读”(从MySQL读100,00条数据可能只要5秒钟)。所以读写分离可以解决数据库写入时影响查询效率的问题。 03、读写分离应用场景 数

清瞳清的博客 3794

基于nginx的TCP Proxy实现数据库读写分离

nginx很早就支持tcp proxy,但是一直不知道其使用,最近在nginx blog上看见了,一些实践者将其运用到数据库访问的负载均衡以及实现读写分离,来提高数据库的吞吐量,这里我不会讲具体的搭建实现,只是最一些理论上的设计猜想。直接上图 db集群,分为读db和写db,写db向读db同步数据。读db只能读,写db只能写,图中读写各一个,只是一个例子,实际需要根据业务来配置读写服务器比例。ngi

周翔的专栏 4849

django 日志多个服务连接_Django 中实现连接多个数据库并实现读写分离

读写分离其基本原理就是让主数据库处理事务性增,改,删操作(INSERT,UPDATE,DELETE)操作,而从数据库处理SELECT查询操作,数据库复制被用来把事物性操作导致的变更同步到其他从数据库,以SQL为例,主数据库负责写数据,读数据,读库仅负责读数据,每次有写库操作,同步更新到读库,写库就一个,读库可以有多个,采用日志同步的方式实现主库和多个数据库的数据同步具体配置如下在配置文件中增加sl...

weixin_39661345的博客 93

Django ORM 数据库设置和读写分离

一、Django的数据库配置   (一)修改settings.py文件关于数据库的配置:     Django默认使用sqlite: # Django默认的数据库库,SQLit配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # sqlite引擎 'NAME': os...

A_xiansheng的博客 370

yii2数据库读写分离db配置

yii2数据库读写分离db配置 <?php return [ 'class' => 'yii\db\Connection', 'charset' => 'utf8', //多主多从 'masters' => [ ...

weixin_30477797的博客 214
上一篇: @RequestBody、@ResponseBody用法
下一篇: Windows10 JDK下载安装及配置环境变量
CarsonBigData
博客等级 码龄9年 8315粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值