mysql中间件

基于Docker实现MySQL主从复制

橙三吉。 提交于 2019-12-03 06:14:10
前言 MySQL 的主从复制是实现应用的高性能,高可用的基础。对于数据库读操作较密集的应用,通过使数据库请求负载均衡分配到不同 MySQL 服务器,可有效减轻数据库压力。当遇到 MySQL 单点故障中,也能在短时间内实现故障切换。本文就 MySQL 的内建的复制功能进行阐述。 版本 MySQl : 5.7.17 CentOS : 7.4.1708 Docker : 1.13.1 概述 MySQL 复制数据流程: 主库在数据更新提交事务之前,将事件异步记录到binlog二进制日志文件中,日志记录完成后存储引擎提交本次事务 从库启动一个I/O线程与主库建立连接,用来请求主库中要更新的binlog。这时主库创建的binlog dump线程,这是二进制转储线程,如果有新更新的事件,就通知I/O线程;当该线程转储二进制日志完成,没有新的日志时,该线程进入sleep状态。 从库的I/O线程接收到新的事件日志后,保存到自己的relay log(中继日志)中 从库的SQL线程读取中继日志中的事件,并执行更新保存。 配置主从库 主库 my.cnf 配置 在主库的 my.cnf 中打开二进制日志,并设置服务Id。 log-bin = mysql-bin server-id = 1 注意 server-id 必须是一个唯一的数字,必须主从不一致, 且主从库必须设置项。 从库 my.cnf 配置 log

NoSQL开篇——为什么要使用NoSQL

假如想象 提交于 2019-12-03 00:13:18
【编者按】NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会。 非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展,希望跟我一样有兴趣的朋友加入进来。这次的NoSQL专栏系列将先整体介绍NoSQL,然后介绍如何把NoSQL运用到自己的项目中合适的场景中,还会适当地分析一些成功案例,希望有成功使用NoSQL经验的朋友给我提供一些线索和信息。 NoSQL概念 随着web2.0的快速发展,非关系型、分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性。 NoSQL 概念在2009年被提了出来。NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受。(“NoSQL”一词最早于1998年被用于一个轻量级的关系数据库的名字。) NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。在NoSQL概念提出之前,这些数据库就被用于各种系统当中,但是却很少用于web互联网应用。比如cdb、qdbm、bdb数据库。

MySQL中间件性能测试 I

匿名 (未验证) 提交于 2019-12-02 22:06:11
本文根据黄炎在2018年7月7日【MySQL技术沙龙 ・ 成都站】现场演讲内容整理而成。 黄炎 爱可生研发总监,深入钻研分布式数据库相关技术,擅长业界相关MySQL中间件产品和开发,以及分布式中间件在企业内部的应用实践。 MySQL中间件性能测试 I 摘要: 我今天代表我的团队向大家来介绍一下MySQL中间件性能的测试,为大家带来一些不太一样的故事,包括我们在做性能测试的时候一些不太一样的视角。 分享大纲: 1.性能测试的常见的(错误)方法 * 3 2.性能测试的一些(我们用的)方法 * 2 3.分布式事务相关 * 1 我今天代表我的团队向大家来介绍一下MySQL中间件性能的测试,之所以讲选这个主题是因为我注意到大家都是高级的DBA,我们也有很多的高级的DBA,跟大家聊天的时候都会注意到,大家对于性能测试的第一印象: 性能 = sysbench 测试 = run 结果 = tps 数值要高大上 性能就是sysbench,然后测试就是跑一下,这就叫性能测试了,结果就是要TPS或者QPS,数值一定要高大上,这是大家对性能测试测试的第一印象也可能是唯一的印象。我们公司是属于乙方的技术服务提供商,我们对业界的很多产品进行过性能测试,所以今天想为大家带来一些不太一样的故事,以及我们在做性能测试的时候一些视角。 我今天大概会向大家介绍三件事情: 第一件事情 是我们观察到,大家在做性能测试的时候

mysql 5.7 Group Replication

匿名 (未验证) 提交于 2019-12-02 22:06:11
MySQL 组复制实现了基于复制协议的多主更新(单主模式)。 复制组由多个 server成员构成,并且组中的每个 server 成员可以独立地执行事务。但所有读写(RW)事务只有在冲突检测成功后才会提交。只读(RO)事务不需要在冲突检测,可以立即提交。 对于任何 RW 事务,提交操作并不是由始发 server 单向决定的,而是由组来决定是否提交。准确地说,在始发 server 上,当事务准备好提交时,该 server 会广播写入值(已改变的行)和对应的写入集(已更新的行的唯一标识符)。然后会为该事务建立一个全局的顺序。最终,这意味着所有 server 成员以相同的顺序接收同一组事务。因此,所有 server 成员以相同的顺序应用相同的更改,以确保组内一致。 组复制使您能够根据在一组 server 中复制系统的状态来创建具有冗余的容错系统。因此,只要它不是全部或多数 server 发生故障,即使有一些 server 故障,系统仍然可用,最多只是性能和可伸缩性降低,但它仍然可用。server 故障是孤立并且独立的。它们由组成员服务来监控,组成员服务依赖于分布式故障检测系统,其能够在任何 server 自愿地或由于意外停止而离开组时发出信号。 他们是由一个分布式恢复程序来确保当有 server 加入组时,它们会自动更新组信息到最新

安装MySQL

匿名 (未验证) 提交于 2019-12-02 22:02:20
一、MySQL官方网站介绍 1.Developer Zone : MySQL开发工程师板块 Articles : Oracle工程师自己的博客 Plant MySQL : 和MySQL相关从业人员的博客 Bugs : MySQL BugList Worklog : 开发记录 Labs : MySQL实验性项目 2.Downloads : MySQL下载 Enterprise : MySQL企业版本相关,略过 Community : 社区版,我们下载和使用社区版 MySQL Community Server : MySQL Server MySQL Fabric : 和管理相关的工具 MySQL Router : 路由中间件 MySQL Utilities : MySQL应用程序包 MySQL Proxy : MySQL代理。Alpha版本,不推荐 3.Documentation : MySQL文档 官方文档版面更改,下线离线文档在左侧Menu的下面 PDF A4 EPUB HTML 二、MySQL下载 1.推荐下载Linux-Generic 版本 2.Source Code 版本主要作用是为了让开发人员研究源码使用,自己编译对性能提升不明显 3.不推荐 Version 5.5.x ,有部分bug 4.推荐使用Version 5.6.x 和Version 5.7.x 下载地址:

mycat+ mysql集群 分库分表

匿名 (未验证) 提交于 2019-12-02 22:02:20
mycat介绍 Mycat数据库分库分表中间件 国内最活跃的、性能最好的开源数据库中间件! Mycat关键特性 关键特性 支持SQL92标准 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster 基于Nio实现,有效管理线程,解决高并发问题。 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。 支持多租户方案。 支持分布式事务(弱xa)。 支持XA分布式事务(1.6.5)。 支持全局序列号,解决分布式下的主键生成问题。 分片规则丰富,插件化开发,易于扩展。 强大的web,命令行监控。 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。 支持密码加密 支持服务降级 支持IP白名单 支持SQL黑名单

[原创]Sharding-Sphere之Proxy初探

匿名 (未验证) 提交于 2019-12-02 21:59:42
大家好,拓海( https://github.com/tuohai666 )今天为大家分享Sharding-Sphere推出的重磅产品:Sharding-Proxy!在之前闪亮登场的Sharding-Sphere 3.0.0.M1中,首次发布了Sharding-Proxy,这个新产品到底表现如何呢?这次希望通过几个优化实践,让大家管中窥豹,从几个细节的点能够想象出Sharding-Proxy的全貌。更详细的MySQL协议、IO模型、Netty等议题,以后有机会再和大家专题分享。 Sharding-Proxy简介 Sharding-Proxy概览 Sharding-Proxy是Sharding-Sphere的第二个产品。它定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等)操作数据,对DBA更加友好。 对应用程序完全透明,可直接当做MySQL使用。 适用于任何兼容MySQL协议的客户端。 与其他两个产品(Sharding-JDBC、Sharding-Sidecar)对比: Sharding-JDBC Sharding-Proxy Sharding-Sidecar 数据库 任意 MySQL

Mysql跨机房同步方案

吃可爱长大的小学妹 提交于 2019-12-02 16:52:26
假设现有两个机房,需要做到数据同步。 以下是架构图(实际架构图根据现有机房架构和实际会比下图复杂,但整体思路不变): Mycat、Canal、Otter是关键的三项技术: Mycat:数据库分库分表中间件,可以管理一个mysql集群,屏蔽了mysql集群,对外伪装成mysql server,用户无感知mysql集群。 Canal:阿里巴巴开源产品,可以读取mysql二进制日志文件,并解析成想要的数据。 Otter:阿里巴巴开源产品,配合Canal可以做到读取二进制文件,解析出增量数据sql,然后执行sql到指定连接。 流程: 1、用户插入一条数据到mycat 2、mycat解析sql,分配sql到指定mysql数据库 3、mysql(假设M1接收到数据)数据库接收数据,根据主从配置,写出二进制日志。 4、mysql(M2)读取二进制日志同步数据,mysql(S)读取二进制日志同步数据,并写出二进制日志 5、Canal读取二进制日志,解析成sql 6、Otter接到sql,获取连接,在机房B的mycat上执行sql 7、Otter收到sql执行回执,执行完毕。 注: 本文给予思路及具体技术方案,具体技术的应用及使用,请自行google。 来源: oschina 链接: https://my.oschina.net/u/2358114/blog/678100

如何优化MySQL千万级大表

风格不统一 提交于 2019-12-02 13:05:53
很好的一篇博客,转载 如何优化MySQL千万级大表 原文链接:: https://blog.csdn.net/yangjianrong1985/article/details/102675334 千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议。 从一开始脑海里开始也是火光四现,到不断的自我批评,后来也参考了一些团队的经验,我整理了下面的大纲内容。 既然要吃透这个问题,我们势必要回到本源,我把这个问题分为三部分: “千万级”,“大表”,“优化”, 也分别对应我们在图中标识的 “数据量”,“对象”和“目标”。 我来逐步展开说明一下,从而给出一系列的解决方案。 1.数据量:千万级 千万级其实只是一个感官的数字,就是我们印象中的数据量大。 这里我们需要把这个概念细化,因为随着业务和时间的变化,数据量也会有变化,我们应该是带着一种动态思维来审视这个指标,从而对于不同的场景我们应该有不同的处理策略。 1) 数据量为千万级,可能达到亿级或者更高 通常是一些数据流水,日志记录的业务,里面的数据随着时间的增长会逐步增多,超过千万门槛是很容易的一件事情。 2) 数据量为千万级,是一个相对稳定的数据量 如果数据量相对稳定,通常是在一些偏向于状态的数据,比如有1000万用户

[转帖]MyCat教程【简单介绍】

拥有回忆 提交于 2019-12-02 08:24:27
MyCat教程【简单介绍】 2019-10-15 10:27:23 波波烤鸭 阅读数 618 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_38526573/article/details/102562219 pg 有 citus 应该都是类似的东西. 一、MyCat简介 1. 什么是MyCat   MyCat 是目前最流行的 基于 java 语言编写的 数据库中间件 ,是一个实现了 MySQL 协议的服务器,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用 MySQL 原生协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信,其核心功能是 分库分表 。配合数据库的主从模式还可实现 读写分离 。   MyCat 是基于阿里开源的 Cobar 产品而研发,Cobar 的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得 MyCat 变得非常的强大。   MyCat 发展到目前的版本,已经不是一个单纯的 MySQL 代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流数据库,也支持 MongoDB 这种新型NoSQL