MySQL内核月报 2014.11-MySQL· 5.7特性·高可用支持
2023-09-14 09:00:57 时间
背景
MySQL的Master-Slave结构提供了实现High Availability的基础,在实现上面通常使用client-proxy-db的三层架构,proxy不单单完成错误检测、实例切换等高可用功能,还可以实现sharding,即scale out。
MySQL Fabric就是Oracle想大力发展的proxy,这里主要介绍为了完成高可用的功能,MySQL 5.7做了哪些事情,我们是否可以使用,实现自己的proxy?
高可用组件
proxy完成高可用的功能,除了需要MySQL提供的master-slave的基础结构外,还需要:
1. 在错误检测、进行实例切换时候,需要DB的只读功能,防止m/s双写。 2. 在切换完成后,如何实现client重连,或者实现session维持,对client透明。
那么问题来了
1. 如何保证切换?
当前MySQL版本提供了一个read_only的功能,通过添加global read lock和commit锁来实现,可以满足实现单点写入。2. client重连或者session维持?
client重连主要依赖client的API,检测connection的错误。而保持connection不断开,session维持怎么做?
MySQL 5.7增加的功能
1. offline mode
offline mode不光实现了read only的功能,并且会断掉所有的非super用户的connection,并禁止重连。虽然官方文档中介绍是为了支持upgrade,但完全可以使用在切换的过程中。2.session回放功能支持
client-server protocol对于response packet增加了对session state状态改变的支持,对于以下的session state变化: 1. User-defined variables 2. session-specific values for server variables 3. Temporary tables that are created 4. Prepared statements 5. Current databaseresponse packet中会添加一个tracker标示其变化。 有了这个功能就可以容易实现session的回放功能,特别在load balance或者cluster环境中,把一个用户的connection迁移到另外一台实例上,来保持connection不断开,实现切换对client透明。
使用MySQL 5.7新增的这两个功能,可以帮助proxy实现DB高可用。
MySQL---决策支持的基本测试标准TPC-DS测试数据的生成及导入 TPC-DS是tpc组织提供的官方决策支持基本测试标准,这个标准的数据对于决策支持的学习和测试很有帮助,怎样生成测试数据及将测试数据导入到MySQL数据库,可以参阅本文。
MySQL 数据库支持国密算法 数据库加密,作为杀手锏,是数据库底线防守的秘密武器,通过在数据库存储层进行数据加密处理,达到即使数据被黑客盗取也无法解密的效果,从根源上解决数据泄露问题。 近年,市场对于数据库加密产品的需求呈上升趋势,但由于技术门槛极高,国内真正能够提供此类产品的企业本就寥寥无几,尤其针对全球份额排名第二的MySQL数据库,能够对其支持的加密产品一直没有出现。 不同于传统的视图+触发器模式的透明加密方式,本文所提MySQL国密加密产品采用数据库引擎代码改造技术,真正实现数据在存储层的加、解密功能,避免以往加密过程中,数据库文件导入导出的繁琐方法,最大程度减少性能损失。 产品是为用户需求而生,而我们要做的
yugong阿里巴巴去Oracle数据迁移同步工具(全量+增量,目标支持MySQL/DRDS) 2008年,阿里巴巴开始尝试使用 MySQL 支撑其业务,开发了围绕 MySQL 相关的中间件和工具,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机 Oracle 无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从 Oracle 数据迁移到 MySQL 上,完成去 IOE 的重要一步工作。
db匠 rds内核团队秘密研发的全自动卖萌机. 追加特效: 发数据库内核月报. 月报传送: http://mysql.taobao.org/monthly/
相关文章
- 【MySQL高级】MySql中常用工具及Mysql 日志
- 性能深度优化:MySQL 恢复慢性能的技巧(mysql恢复慢)
- MySQL脱裤大作战:掌握简单的数据迁移技能(mysql脱裤工具)
- MySQL中定义各类数据类型的指南(mysql定义数据类型)
- 置MySQL数据库的安装及位置确定(mysql位)
- 安装Windows 10上的MySQL数据库(w10安装mysql)
- MySQL严格模式设置操作指南,关闭严格模式让MySQL更容易支持应用程序的多样化需求!(mysql严格模式关闭)
- MySQL事务支持,保障数据完整性(mysql事务支持)
- 如何在 MySQL 中创建一个 UTF8 编码的数据表?(mysql创建utf8表)
- 如何监控MySQL数据库状态(如何监控mysql)
- Mysql图形化界面:更快捷的数据库操控方式(mysql 图形化界面)
- MySQL中AND与OR的区别(mysql中 与 的区别)
- C语言访问MySQL查询库的实现(c mysql 查询库)
- CDH牢牢支撑MySQL的运行不朽的伙伴(cdh支持mysql)
- MySQL开始中午支持优化数据库查询效率(mysql中午支持)
- MySQL数据库不支持存储JavaScript脚本(mysql不存js)
- MySQL不支持的数据类型和特性(mysql不包含哪些值)
- MySQL是否支持事务撤销功能(mysql不能撤销嘛)
- 如何在MySQL线性查询中实现集合函数统计(mysql不支持集合查询)
- MySQL安全性加强,不支持空密码登录(mysql不支持空密码)
- MySQL无法进行中文查询(mysql不支持汉子查询)
- 解决方案使用MariaDB代替MySQL在树莓派上运行(mysql不支持树莓派)
- MySQL是否支持事务解密MySQL的事务支持情况(mysql不支持事物吗)