数据库集群

MySQL数据库集群实战(5)———MySQL数据库的读写分离(MySQL-proxy)

纵然是瞬间 提交于 2020-02-07 23:33:09
实现MySQL读写分离的前提是我们已经将MySQL主从复制配置完毕,可参考上一篇关于 MySQL数据库集群实战(2)——MySQL主从复制之异步复制(传统复制postion与GTID) 的文章。配置基于GTID的异步复制。 文章目录 一、MySQL读写分离 1、为什么要进行读写分离 2、读写分离的实现原理 3、mysql中间件服务mysql-proxy 二、搭建MySQL数据库的读写分离 实验环境 实验 测试读写分离 一、MySQL读写分离 1、为什么要进行读写分离 当我们的数据量很大时,数据库服务器的压力变大,这时候我们需要从架构方面来解决这一问题,在一个网站中读的操作很多,写的操作很少,这时候我们需要配置读写分离,把读操作和写操作分离出来,最大程度的利用好数据库服务器。 2、读写分离的实现原理 读写分离的实现原理就是在执行SQL语句的时候,判断到底是读操作还是写操作,把读的操作转向到读服务器上(从服务器,一般是多台),写的操作转到写的服务器上(主服务器,一般是一台,视数据量来看)。 3、mysql中间件服务mysql-proxy mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。 它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至mysql

Redis 面试题汇总

本小妞迷上赌 提交于 2020-02-07 15:18:32
Redis 面试题汇总 1.Redis 使用场景有哪些? 答:Redis 使用场景如下: 记录帖子点赞数、点击数、评论数 缓存近期热帖 缓存文章详情信息 记录用户会话信息 2.Redis 有哪些功能? 答:Redis 功能如下: 数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列 3.Redis 支持哪些数据类型? 答:Redis 支持的数据类型如下: String 字符串 List 列表 Set 无序集合 ZSet 有序集合 Hash 哈希类型 4.Redis 相比 Memcached 有哪些优势? 答:Redis 相比 Memcached 优势如下: Memcached 所有的值均是简单的字符串,Redis 支持更为丰富的数据类型 Redis 的速度比 Memcached 要快 Redis 可以持久化 Redis 可以设置过期时间 Redis 支持主从同步 5.Redis 支持哪些淘汰策略? 答:Redis 淘汰策略如下: noeviction:禁止淘汰数据; allkeys-lru:尝试回收最少使用的键,使得新添加的数据有空间存放; volatile-lru:尝试回收最少使用的键,但仅限于在过期集合的键,使得新添加的数据有空间存放; allkeys-random:回收随机的键使得新添加的数据有空间存放; volatile-random

mysql集群与主从复制

冷暖自知 提交于 2020-02-06 02:45:55
mysql的读写分离是通过主从复制来实现的,那么为什么要读写分离呢? 随着用户量的增多,数据库的性能往往会成为一个系统的瓶颈所在,一般系统的“读”压力远远大于“写”压力,所以可以通过数据库的读写分离来提高系统的性能。让主数据库负责“写”操作,从数据库负责“读”操作,从数据库可以部署多个来提高“读”的速度。所以,读写分离可以分担mysql的压力,提供系统的性能和吞吐量 那么主从复制的原理是什么? 1)首先,mysql主数据库在事务提交时会把所有对数据的操作都写入二进制文件binlog中 2)从数据库读取到binlog中的记录,根据这个记录重做数据库操作,通过复制达到数据一致 但是主数据库和从数据库间总会有延迟,如果刚刚保存的数据你就要马上能够读取到,这个时候可以让这次查询去主数据库中执行 接下来实现一个主从复制的小案例 由于本项目的这些服务都是docker的镜像,所以mysql我也想通过docker来安装,这里使用的是5.7版本 docker pull mysql:5.7 首先要创建外部挂载点来挂载容器中的文件 sudo mkdir -p /usr/local/mysql/data sudo mkdir -p /usr/local/mysql/log sudo mkdir -p /usr/local/mysql/conf sudo chmod 775 -R /usr/local

【巨杉数据库SequoiaDB】巨杉数据库无人值守智能自动化测试实践

让人想犯罪 __ 提交于 2020-02-04 11:55:33
刚刚过去的春节,新型冠状病毒疫情突如其来地横扫大江南北。为了响应国家号召,许多软件公司和互联网公司也将在较长一段时间内建议员工采取远程办公的方式,同时也存在骨干工程师无法及时返岗的问题,使得生产力大受影响。 对于软件企业来说,研发与测试是两大核心命脉。研发团队保障着产品新功能新特性的及时发布,而测试团队则如同马的缰绳,确保产品不会由于迭代速度过快、设计考虑角度不周,而导致软件缺陷的产生。 巨杉数据库在9年的自研和技术创新历程中,在研发体系构建、自动化测试、团队线上线下结合等方面积累了很多经验。从2011年团队成立之初开始,巨杉数据库的整个技术研发体系就以面向流程协作的方式进行构建。其核心思想是,任何员工可以在任何地点,只要遵循正确的流程,就可以与整个团队有机地衔接在一起。 在这个非常时刻,为了帮助在远程办公期间内保质保量完成新版本的迭代与测试工作,我们也将我们自己的一些经验分享给大家,主要介绍巨杉如何在无人值守的环境下,完成产品的自动化测试与研发协作。 基础体系 网络基础设施 我们的整个开发环境分为内外网两大网络,其中外部网络可以连接到广域网Internet,而内部网络则没有广域网连接。外网包括办公室中每个员工的台式机,以及可供员工进行远程连接的***服务器与防火墙。工程师们无论使用办公室的电脑,还是通过配发的笔记本电脑从远程通过***接入,均连入公司的外网网段。

【巨杉数据库SequoiaDB】巨杉数据库无人值守智能自动化测试实践

五迷三道 提交于 2020-02-04 01:47:30
刚刚过去的春节,新型冠状病毒疫情突如其来地横扫大江南北。为了响应国家号召,许多软件公司和互联网公司也将在较长一段时间内建议员工采取远程办公的方式,同时也存在骨干工程师无法及时返岗的问题,使得生产力大受影响。 对于软件企业来说,研发与测试是两大核心命脉。研发团队保障着产品新功能新特性的及时发布,而测试团队则如同马的缰绳,确保产品不会由于迭代速度过快、设计考虑角度不周,而导致软件缺陷的产生。 巨杉数据库在9年的自研和技术创新历程中,在研发体系构建、自动化测试、团队线上线下结合等方面积累了很多经验。从2011年团队成立之初开始,巨杉数据库的整个技术研发体系就以面向流程协作的方式进行构建。其核心思想是,任何员工可以在任何地点,只要遵循正确的流程,就可以与整个团队有机地衔接在一起。 在这个非常时刻,为了帮助在远程办公期间内保质保量完成新版本的迭代与测试工作,我们也将我们自己的一些经验分享给大家,主要介绍巨杉如何在无人值守的环境下,完成产品的自动化测试与研发协作。 基础体系 网络基础设施 我们的整个开发环境分为内外网两大网络,其中外部网络可以连接到广域网Internet,而内部网络则没有广域网连接。外网包括办公室中每个员工的台式机,以及可供员工进行远程连接的VPN服务器与防火墙。工程师们无论使用办公室的电脑,还是通过配发的笔记本电脑从远程通过VPN接入,均连入公司的外网网段。

关于数据库的各种备份与还原姿势详解

别等时光非礼了梦想. 提交于 2020-02-01 22:17:50
数据库的冷备份与热备份 数据导出不完全等于数据备份: 数据导出是指将数据库中的数据逆向成SQL语句进行导出,所以导出的是SQL文件。通常用作把数据从一个系统迁移到另一个系统,目的是屏蔽系统之间的差异性 数据备份是指将数据库中数据存储的相关文件进行拷贝,用于保存一个数据库的全部物理数据,所以备份后的数据与原本数据在细节及状态上都是完全一致的。不会像SQL那样在使用了一些函数的情况下,可能会在不同的时间点或不同的系统上产生不一样的结果 冷备份与热备份: 冷备份:在数据库已经关闭的情况下,对数据的备份称作冷备份 热备份:与冷备份相反,在数据库节点不停机的状态下进行的备份被称作热备份 冷备份的限制: 数据库必须停机备份,这对一些线上数据库是无法接受的 备份的数据文件非常占用存储空间,并且不支持增量备份 冷备份是备份所有的数据文件和日志文件,所以无法单独备份某个逻辑库和数据表 联机冷备份: 单节点的数据库在冷备份时需要停机,这就会对业务系统产生影响。为了解决这个问题,我们可以组建集群然后挑选集群中的一个节点进行停机冷备份。由于集群中还有其他节点在运行,所以不必担心影响正在运行的系统。等备份结束之后再启动该节点,这样就能解决停机备份带来的影响 热备份的限制: 数据库在热备份的时候会全局加读锁,备份期间节点只能读取数据不能写入数据 联机热备份: 同样的方式,为了避免全局加锁

当删库时如何避免跑路

牧云@^-^@ 提交于 2020-02-01 22:00:22
延时节点解决方案 删库跑路也是个老梗了,可见在运维数据库的过程中误删除数据,或者开发的代码有bug,造成数据的误删除屡见不鲜。不过现在也有许多用于恢复或预防误删除的方案,例如SQL管理系统,将要执行的SQL先交由管理员审核,然后由管理员备份一个镜像数据库,在镜像上执行该SQL,并在执行后还原镜像。这样经过层层把关就可以大大减小出现误操作的几率。 另外,利用binlog日志也可以恢复误操作的数据,所以线上运行的数据库都会开启binlog日志功能。还有就是本小节要介绍的延时节点:在Replication集群中,可以设置一个延时节点,该节点的数据同步时间要慢于集群中的其他节点,当其他节点出现误操作后,若延时节点的数据还没有被影响就可以从延时节点进行恢复。 但如果现有的数据库组建的都是PXC集群,没有Replication集群可以采用该方案吗?也是可以的,PXC集群与Replication集群并非是互斥的,我们可以将PXC集群中的某个节点设置为Master,然后增加一个延时节点设置为Slave,让这两个节点构成Replication集群进行数据同步即可。如下所示: 本小节就简单演示一下如何搭建这种异构集群下的延时节点,我这里已经事先准备好了一个PXC集群和一个用作延时节点的数据库: 这里使用PXC集群中的 PXC-Node3 作为Master,让其与 DelayNode 组成主从,而

阿里云重磅发布RDS for SQL Server AlwaysOn集群版

删除回忆录丶 提交于 2020-02-01 05:23:18
2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysOn核心技术实现的数据库集群版,并且是经过双十一检验的商业化版本。 全形态的产品集合 纵观整个RDS for SQL Server的产品迭代图,AlwaysOn集群版的上线标志这SQL Server数据库在阿里云RDS平台的全面覆盖,阿里云数据库实现了针对企业客户不同阶段的产品体系的匹配。 基础版针对可用性要求不高的业务,并且成本是首要关注选项的客户,如初创企业,是最优选择。WEB版价格甚至比自建还要低,却能获得RDS的运维管理等多项服务,性价比最高。 随着业务的发展,关键业务的可用性要求变高,甚至要求7X24小时的不间断服务,RDS for SQL Server 高可用版基于微软Mirror技术实现,满足此类业务需求。此外,针对企业级客户特性,在高可用版中开放了大量高级特性,如复制模式设置,用户可以根据需求设置主备节点复制模式可实现业务的高可靠或者高性能。此外高可用版本支持Linked Server,实现在RDS中访问其他RDS甚至自建数据库。特别地,在高可用版本中,开放了变更数据捕获(CDC,Change Data Capture)技术,客户可根据CDC提供的能力,同步数据库的变化

分布式锁 原理及实现方式

纵饮孤独 提交于 2020-01-27 00:03:47
一、原理 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。 在平时的实际项目开发中,我们往往很少会去在意分布式锁,而是依赖于关系型数据库固有的排他性来实现不同进程之间的互斥,但大型分布式系统的性能瓶颈往往集中在数据库操作上。 在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。 其实秒杀类场景最主要的是执行秒杀操作要单线程的,提到单线程,肯定会想到synchronized关键字,但是他有两个致命缺点:1、无法做到细粒度控制,2、只适合单点不适用集群。 所以大多数项目只能采用分布式锁的实现方式。 针对分布式锁的实现,目前比较常用的有以下几种方案:     基于数据库实现分布式锁     基于缓存(redis,memcached,tair)实现分布式锁     基于Zookeeper实现分布式锁 分布式锁主要有基于缓存如redis、基于zookeeper、基于数据库的实现。 在分析这几种实现方案之前我们先来想一下,我们需要的分布式锁应该是怎么样的?(这里以方法锁为例,资源锁同理)     

TiDB基本简介

梦想与她 提交于 2020-01-24 06:18:56
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。下面是对有关资料的整理还有一些扩展内容以链接的方式展示,有兴趣可以点击了解一下。 一 TiDb简介 TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP(Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。TiDB 具备如下核心特点: 1 高度兼容 MySQL 大多数情况下