 谈谈MYSQL那点事Windows) • 访问速度飞快,是所有 访问速度飞快,是所有 MySQL MySQL 文件引擎中速度最快的 文件引擎中速度最快的 • 不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • Table level lock Table level lock ,性能稍差,更适合读取多的操作 ,性能稍差,更适合读取多的操作 InnoDB InnoDB 支持 事务、外键约束等数据库特性 支持 事务、外键约束等数据库特性 • Rows level lock , Rows level lock , 读写性能都非常优秀 读写性能都非常优秀 • 能够承载大数据量的存储和访问 能够承载大数据量的存储和访问 • 拥有自己独立的缓冲池,能够缓存数据和索引 拥有自己独立的缓冲池,能够缓存数据和索引 MySQL 架构设计—应用架构 强一致性 对读 对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 时读,类似种涉及交易的或者动态实时报表统计的都要采 用这种架构模式 弱一致性 如果是弱一致性的话,可以通过在 M2 上面分担一些读压力 和流量,比如一些报表的读取以及静态配置数据的读取模块 都可以放到 M2 上面。比如月统计报表,比如首页推荐商品0 码力 | 38 页 | 2.04 MB | 1 年前3 谈谈MYSQL那点事Windows) • 访问速度飞快,是所有 访问速度飞快,是所有 MySQL MySQL 文件引擎中速度最快的 文件引擎中速度最快的 • 不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • Table level lock Table level lock ,性能稍差,更适合读取多的操作 ,性能稍差,更适合读取多的操作 InnoDB InnoDB 支持 事务、外键约束等数据库特性 支持 事务、外键约束等数据库特性 • Rows level lock , Rows level lock , 读写性能都非常优秀 读写性能都非常优秀 • 能够承载大数据量的存储和访问 能够承载大数据量的存储和访问 • 拥有自己独立的缓冲池,能够缓存数据和索引 拥有自己独立的缓冲池,能够缓存数据和索引 MySQL 架构设计—应用架构 强一致性 对读 对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 时读,类似种涉及交易的或者动态实时报表统计的都要采 用这种架构模式 弱一致性 如果是弱一致性的话,可以通过在 M2 上面分担一些读压力 和流量,比如一些报表的读取以及静态配置数据的读取模块 都可以放到 M2 上面。比如月统计报表,比如首页推荐商品0 码力 | 38 页 | 2.04 MB | 1 年前3
 运维上海2017-从理论到实践,深度解析MySQL Group Replication -徐春阳支持多节点并发执行事务。如何保证从各个节点并发执行 的事务在每个节点以相同的顺序被应用/执行.------paxos协 议的功能。 • 自动地事务冲突检测。节点之间不能”同时”操作主键相同 记录,如果冲突,只有一个节点成功。------冲突检测。 • 节点故障容忍度强。多数派原则,超过半数节点存活的集 群依然整体可用。------paxos协议。 • 更高级别地保证数据的一致性 ------vs ------vs mysql的异步/半同 步复制。 MGR�����:! • 将源自多个数据库节点并发无序的消息进行全局排序。目的 是保证每个节点执行的事务完全相同,顺序也相同。 • 所有的消息在各个节点处理动作完全相同,如果某个消息在 某个节点被丢弃(不处理 ,在其他节点也将被丢弃。 • 多数派原则,一个消息被超过半数的节点接收&”赞成”,则这 个消息将在全局生效,所有的节点都得执行(处理 • 所指的消息表示的是一个事务类型的消息,内容包含事务产生的binlog 以及冲突检测时使用到主键以及事务的数据快照版本(gtid_set) • 比较规则。将事务所涉及的主键以及数据版本信息(gtid_set)跟write set 里面的信息进行比较: 主键不存在与write set中,不冲突。 主键存在,则比较事务版本信息,即比较gtid_set,如果是包含关系,0 码力 | 32 页 | 9.55 MB | 1 年前3 运维上海2017-从理论到实践,深度解析MySQL Group Replication -徐春阳支持多节点并发执行事务。如何保证从各个节点并发执行 的事务在每个节点以相同的顺序被应用/执行.------paxos协 议的功能。 • 自动地事务冲突检测。节点之间不能”同时”操作主键相同 记录,如果冲突,只有一个节点成功。------冲突检测。 • 节点故障容忍度强。多数派原则,超过半数节点存活的集 群依然整体可用。------paxos协议。 • 更高级别地保证数据的一致性 ------vs ------vs mysql的异步/半同 步复制。 MGR�����:! • 将源自多个数据库节点并发无序的消息进行全局排序。目的 是保证每个节点执行的事务完全相同,顺序也相同。 • 所有的消息在各个节点处理动作完全相同,如果某个消息在 某个节点被丢弃(不处理 ,在其他节点也将被丢弃。 • 多数派原则,一个消息被超过半数的节点接收&”赞成”,则这 个消息将在全局生效,所有的节点都得执行(处理 • 所指的消息表示的是一个事务类型的消息,内容包含事务产生的binlog 以及冲突检测时使用到主键以及事务的数据快照版本(gtid_set) • 比较规则。将事务所涉及的主键以及数据版本信息(gtid_set)跟write set 里面的信息进行比较: 主键不存在与write set中,不冲突。 主键存在,则比较事务版本信息,即比较gtid_set,如果是包含关系,0 码力 | 32 页 | 9.55 MB | 1 年前3
 如何用 MySQL 构建全方位高可用应用4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在 存储引擎上提交,然 后将事务发送到从数 据库 • 快速 • 如果主数据库停机有可 能丢失更改 •半同步 – MySQL 5.5+ - 在 MySQL 5.7 中进行了 增强 – 串行:主数据库等待 从数据库记录更改并 7) •同步 – 仅 MySQL Cluster 提供 – 串行:主数据库等待更 改应用于所有从数据 库后,再向应用程序 发送确认 • 较长的延迟 • 如果采用主动/主动模式, 则最适合小型事务处理 • 无损 异步复制与同步复制 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 11 MySQL Enterprise Monitor •在 10 Mgr •在 MySQL Cluster 之间异步复制 •主动-主动 – 随处更新 – 冲突检测 • 通过异常表通知应用程序 • 可以选择自动解决冲突 – 自动解决冲突 • 冲突的事务和独立的事务会被回滚 •不会对应用程序方案进行更改 4/16/2017 30 主动-主动异地复制 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 MySQL Cluster 数据节点0 码力 | 40 页 | 2.19 MB | 1 年前3 如何用 MySQL 构建全方位高可用应用4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在 存储引擎上提交,然 后将事务发送到从数 据库 • 快速 • 如果主数据库停机有可 能丢失更改 •半同步 – MySQL 5.5+ - 在 MySQL 5.7 中进行了 增强 – 串行:主数据库等待 从数据库记录更改并 7) •同步 – 仅 MySQL Cluster 提供 – 串行:主数据库等待更 改应用于所有从数据 库后,再向应用程序 发送确认 • 较长的延迟 • 如果采用主动/主动模式, 则最适合小型事务处理 • 无损 异步复制与同步复制 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 11 MySQL Enterprise Monitor •在 10 Mgr •在 MySQL Cluster 之间异步复制 •主动-主动 – 随处更新 – 冲突检测 • 通过异常表通知应用程序 • 可以选择自动解决冲突 – 自动解决冲突 • 冲突的事务和独立的事务会被回滚 •不会对应用程序方案进行更改 4/16/2017 30 主动-主动异地复制 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 MySQL Cluster 数据节点0 码力 | 40 页 | 2.19 MB | 1 年前3
 MySQL 企业版功能介绍数据库,针对性能进行优化;而自动扩展能够让用户弹性扩展 计算资源、存储资源和 MySQL 副本。 MySQL 数据库 MySQL 凭借经济高效、可靠、高性能且可扩展的电子商务、联机事务处理和嵌入式数据库应用 成为全球使用广泛的开源数据库。它是一种事务安全、符合 ACID 标准的集成式数据库,支持全 面的提交、回滚、崩溃恢复和行锁定功能。MySQL 不仅简便易用、易于扩展、性能卓越,而且 还提供了一整套数据 的业务数据存储,支持大数据互操作性。 MySQL 企业级备份 MySQL 企业级备份能够执行 MySQL 数据库无阻塞联机备份。除了对所有 InnoDB 数据执行完整、 增量和部分备份以外,MySQL 还全面支持事务操作。并行执行的备份操作有助于快速完成备份; 此外,MySQL 企业级备份还支持多种压缩选项,可将备份映像减小 90%。恢复选项包括向后兼 容完整恢复、准确的一键式指定时间点恢复和专用于恢复一组特定对象的部分恢复。 对象的部分恢复。 MySQL 企业级高可用性 MySQL 企业级高可用性可帮助您满足一切应用的可用性需求,即便是极为严苛的任务关键型应 用。MySQL 分组复制通过内置分组成员管理、数据一致性保证、冲突检测和处理、节点故障检 测和数据库故障切换相关操作提供原生高可用性,所有这些都无需人工干预或定制工具。 MySQL 企业级可扩展性 MySQL 企业级可扩展性可帮助您满足不断增长0 码力 | 6 页 | 509.78 KB | 1 年前3 MySQL 企业版功能介绍数据库,针对性能进行优化;而自动扩展能够让用户弹性扩展 计算资源、存储资源和 MySQL 副本。 MySQL 数据库 MySQL 凭借经济高效、可靠、高性能且可扩展的电子商务、联机事务处理和嵌入式数据库应用 成为全球使用广泛的开源数据库。它是一种事务安全、符合 ACID 标准的集成式数据库,支持全 面的提交、回滚、崩溃恢复和行锁定功能。MySQL 不仅简便易用、易于扩展、性能卓越,而且 还提供了一整套数据 的业务数据存储,支持大数据互操作性。 MySQL 企业级备份 MySQL 企业级备份能够执行 MySQL 数据库无阻塞联机备份。除了对所有 InnoDB 数据执行完整、 增量和部分备份以外,MySQL 还全面支持事务操作。并行执行的备份操作有助于快速完成备份; 此外,MySQL 企业级备份还支持多种压缩选项,可将备份映像减小 90%。恢复选项包括向后兼 容完整恢复、准确的一键式指定时间点恢复和专用于恢复一组特定对象的部分恢复。 对象的部分恢复。 MySQL 企业级高可用性 MySQL 企业级高可用性可帮助您满足一切应用的可用性需求,即便是极为严苛的任务关键型应 用。MySQL 分组复制通过内置分组成员管理、数据一致性保证、冲突检测和处理、节点故障检 测和数据库故障切换相关操作提供原生高可用性,所有这些都无需人工干预或定制工具。 MySQL 企业级可扩展性 MySQL 企业级可扩展性可帮助您满足不断增长0 码力 | 6 页 | 509.78 KB | 1 年前3
 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波高可用组件配合DB中间,实现无感知的高可用切 换。 兼容mysql协议 支持SELECT/INSERT/UPDATE/DELETE语句 支持单DB实例上的inner join 支持单DB实例上的事务 支持聚合函数:max、min、sum、avg、count 支持:distinct、order by、group by、limit、 top:definition text 支持多种拆分方式 不分区 表级别复制,另外 也支持源与目标命名不一致(结构一致)的复制。 数据库及实例迁移 step1:全量 step2:增量 S D S D binlog解析 逻辑迁移 step3:数据一致性校验 实例迁移 实例迁移 : 实例、库、表迁移 平台外的实例迁移至平台内 平台内数据迁移 ■ 屏蔽底层物理资源,降低决策时间 ■ 资源利用率提升30倍 ■ 90%的基础运维工作完全自动化0 码力 | 32 页 | 7.11 MB | 1 年前3 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波高可用组件配合DB中间,实现无感知的高可用切 换。 兼容mysql协议 支持SELECT/INSERT/UPDATE/DELETE语句 支持单DB实例上的inner join 支持单DB实例上的事务 支持聚合函数:max、min、sum、avg、count 支持:distinct、order by、group by、limit、 top:definition text 支持多种拆分方式 不分区 表级别复制,另外 也支持源与目标命名不一致(结构一致)的复制。 数据库及实例迁移 step1:全量 step2:增量 S D S D binlog解析 逻辑迁移 step3:数据一致性校验 实例迁移 实例迁移 : 实例、库、表迁移 平台外的实例迁移至平台内 平台内数据迁移 ■ 屏蔽底层物理资源,降低决策时间 ■ 资源利用率提升30倍 ■ 90%的基础运维工作完全自动化0 码力 | 32 页 | 7.11 MB | 1 年前3
 TokuDB索引结构MongoDB Server层代码 InnoDB TokuDB MyISAM MySQL Server层 MySQL Storage层 Linux 文件系统层 TokuDB特点 • 支持事务(ACID)的MySQL存储引擎 • 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs TokuDB事务(一) Page.1 Page.2 Page.3 Memory Disk Redo log (log**.toku) Page.8 Page.9 Page.2 Undo log (tokudb.rollback) FractralTreeIndexFile(*.tokudb) LRU-Cache TokuDB事务(二) TokuDB事务(三) TokuDB事务(三) 总结(一) 总结(二) 参考资料 • http://github.com/Percona/tokudb-engine • http://openinx.github.io/2015/11/25/ft-index-implement/ • http://pan.baidu.com/s/1bnFkCEV Thank you0 码力 | 19 页 | 1.97 MB | 1 年前3 TokuDB索引结构MongoDB Server层代码 InnoDB TokuDB MyISAM MySQL Server层 MySQL Storage层 Linux 文件系统层 TokuDB特点 • 支持事务(ACID)的MySQL存储引擎 • 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs TokuDB事务(一) Page.1 Page.2 Page.3 Memory Disk Redo log (log**.toku) Page.8 Page.9 Page.2 Undo log (tokudb.rollback) FractralTreeIndexFile(*.tokudb) LRU-Cache TokuDB事务(二) TokuDB事务(三) TokuDB事务(三) 总结(一) 总结(二) 参考资料 • http://github.com/Percona/tokudb-engine • http://openinx.github.io/2015/11/25/ft-index-implement/ • http://pan.baidu.com/s/1bnFkCEV Thank you0 码力 | 19 页 | 1.97 MB | 1 年前3
 MySQL 数据库架构灾难恢复解决方案affiliates. 8 / 55 Present - Solutions! 2016 - M ySQL InnoDB Cluster MySQL 组复制:自动成员身份更改、网络分区处理、一致性... MySQL Shell 提供强大的界面,有助于自动化和集成所有组件 InnoDB 克隆以自动生成成员,完全集成在InnoDB 中 MySQL Router MySQL Server 改主 - 更改正常系统上的主集群 41 / 55 切换 • 一个可以完成所有操作的命令: setPrimaryCluster() • 集群之间的异步复制通道会自动重新配置 • 保证一致性 • 如果需要, 所有路由器将立即重定向( 取决于 目标模式) Copyright @ 2021 Oracle and/or its affiliates. 42 / 55 改主 - setPrimaryCluster() setPrimaryCluster() 切换 • 一个可以完成所有操作的命令: setPrimaryCluster() • 集群之间的异步复制通道会自动重新配置 • 保证一致性 • 如果需要, 所有路由器将立即重定向( 取决于 目标模式) Copyright @ 2021 Oracle and/or its affiliates. 数据中心崩溃/分区 43 / 55 故障转移到另一个集群0 码力 | 52 页 | 3.07 MB | 1 年前3 MySQL 数据库架构灾难恢复解决方案affiliates. 8 / 55 Present - Solutions! 2016 - M ySQL InnoDB Cluster MySQL 组复制:自动成员身份更改、网络分区处理、一致性... MySQL Shell 提供强大的界面,有助于自动化和集成所有组件 InnoDB 克隆以自动生成成员,完全集成在InnoDB 中 MySQL Router MySQL Server 改主 - 更改正常系统上的主集群 41 / 55 切换 • 一个可以完成所有操作的命令: setPrimaryCluster() • 集群之间的异步复制通道会自动重新配置 • 保证一致性 • 如果需要, 所有路由器将立即重定向( 取决于 目标模式) Copyright @ 2021 Oracle and/or its affiliates. 42 / 55 改主 - setPrimaryCluster() setPrimaryCluster() 切换 • 一个可以完成所有操作的命令: setPrimaryCluster() • 集群之间的异步复制通道会自动重新配置 • 保证一致性 • 如果需要, 所有路由器将立即重定向( 取决于 目标模式) Copyright @ 2021 Oracle and/or its affiliates. 数据中心崩溃/分区 43 / 55 故障转移到另一个集群0 码力 | 52 页 | 3.07 MB | 1 年前3
 MySQL高可用 - 多种方案Lvs+keepalived 作为目前比较流行的高可用解决方案,lvs 提供负载均衡, keepalived 作为故障转移,提高系统的可用性。但是一般的 mysql 高可用为了实现 mysql 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求。本方案实现的功能是当网络有问题、 mysql 有问题、服务器宕机、keepalived Lvs+keepalived 作为目前比较流行的高可用解决方案,lvs 提供负载均衡, keepalived 作为故障转移,提高系统的可用性。但是一般的 mysql 高可用为了实现 mysql 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求,读负载均衡通过 lvs 实现,读能自由 的实现负载均衡和故障切换。本方案实现的功能是当网络有问题、mysql0 码力 | 31 页 | 874.28 KB | 1 年前3 MySQL高可用 - 多种方案Lvs+keepalived 作为目前比较流行的高可用解决方案,lvs 提供负载均衡, keepalived 作为故障转移,提高系统的可用性。但是一般的 mysql 高可用为了实现 mysql 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求。本方案实现的功能是当网络有问题、 mysql 有问题、服务器宕机、keepalived Lvs+keepalived 作为目前比较流行的高可用解决方案,lvs 提供负载均衡, keepalived 作为故障转移,提高系统的可用性。但是一般的 mysql 高可用为了实现 mysql 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求,读负载均衡通过 lvs 实现,读能自由 的实现负载均衡和故障切换。本方案实现的功能是当网络有问题、mysql0 码力 | 31 页 | 874.28 KB | 1 年前3
共 8 条
- 1













