 如何用 MySQL 构建全方位高可用应用并不仅仅是可靠地存储数据 支持高可用性的各个层 数据的冗余访问路径 数据冗余存储 冗余应用服务器 数据路由 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 6 并不仅仅是可靠地存储数据 支持高可用性的各个层 数据的冗余访问路径 数据冗余存储 冗余应用服务器 数据路由 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 MySQL Cluster 从数据库 • 会话线程:处理来自应用程序的查询 - 将 数据写入主数据库,将关联事件写入二进制 日志 • 转储线程:读取二进制日志中的事件,然后 将其发送到从数据库 • I/O 线程:接收复制事件,并将其存储在从 数据库的中继日志中 • SQL 线程:读取从数据库的中继日志中的复 制事件,然后将其应用到从数据库 MySQL 复制工作流 会话 二进制 日志 和/或其附属公司。保留所有权利。 为何进行复制? •将数据库从“主服务器”复制到“从服务器” – 数据的冗余副本奠定了高可用性的基础 – 通过在复制场中进行分布式查询来扩展 主 从 Web/应用服务器 写入和读取 读取 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在0 码力 | 40 页 | 2.19 MB | 1 年前3 如何用 MySQL 构建全方位高可用应用并不仅仅是可靠地存储数据 支持高可用性的各个层 数据的冗余访问路径 数据冗余存储 冗余应用服务器 数据路由 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 6 并不仅仅是可靠地存储数据 支持高可用性的各个层 数据的冗余访问路径 数据冗余存储 冗余应用服务器 数据路由 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 MySQL Cluster 从数据库 • 会话线程:处理来自应用程序的查询 - 将 数据写入主数据库,将关联事件写入二进制 日志 • 转储线程:读取二进制日志中的事件,然后 将其发送到从数据库 • I/O 线程:接收复制事件,并将其存储在从 数据库的中继日志中 • SQL 线程:读取从数据库的中继日志中的复 制事件,然后将其应用到从数据库 MySQL 复制工作流 会话 二进制 日志 和/或其附属公司。保留所有权利。 为何进行复制? •将数据库从“主服务器”复制到“从服务器” – 数据的冗余副本奠定了高可用性的基础 – 通过在复制场中进行分布式查询来扩展 主 从 Web/应用服务器 写入和读取 读取 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在0 码力 | 40 页 | 2.19 MB | 1 年前3
 MySQL 8.0.17 调优指南(openEuler 20.09)........................................................................................... 6 3.6 网络参数调优............................................................................................... MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在Web应用方面,MySQL 是最好的RDBMS (Relational Database Management System,关系数据库管理系 统)应用软件之一。 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将 所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 颈,然后根据其性能指标以及 所处层级选择优化的方式方法。 下面介绍MySQL数据库具体的调优思路和分析过程,如图1所示。 调优分析思路如下: 1. 很多情况下压测流量并没有完全进入到服务端,在网络上可能就会出现由于各种 规格(带宽、最大连接数、新建连接数等)限制,导致压测结果达不到预期。 2. 接着看关键指标是否满足要求,如果不满足,需要确定是哪个地方有问题,一般 情况下,服务器端问题可能0 码力 | 11 页 | 223.31 KB | 1 年前3 MySQL 8.0.17 调优指南(openEuler 20.09)........................................................................................... 6 3.6 网络参数调优............................................................................................... MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在Web应用方面,MySQL 是最好的RDBMS (Relational Database Management System,关系数据库管理系 统)应用软件之一。 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将 所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 颈,然后根据其性能指标以及 所处层级选择优化的方式方法。 下面介绍MySQL数据库具体的调优思路和分析过程,如图1所示。 调优分析思路如下: 1. 很多情况下压测流量并没有完全进入到服务端,在网络上可能就会出现由于各种 规格(带宽、最大连接数、新建连接数等)限制,导致压测结果达不到预期。 2. 接着看关键指标是否满足要求,如果不满足,需要确定是哪个地方有问题,一般 情况下,服务器端问题可能0 码力 | 11 页 | 223.31 KB | 1 年前3
 谈谈MYSQL那点事读写性能都非常优秀 • 能够承载大数据量的存储和访问 能够承载大数据量的存储和访问 • 拥有自己独立的缓冲池,能够缓存数据和索引 拥有自己独立的缓冲池,能够缓存数据和索引 MySQL 架构设计—应用架构 强一致性 对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 架构设计—高可用架构  系统优化:硬件、架构 系统优化:硬件、架构  服务优化 服务优化  应用优化 应用优化 MySQL MySQL 优化方式 优化方式 影响性能的因素 影响性能的因素 应用程序 应用程序 查询 查询 事务管理 事务管理 数据库设计 数据库设计 数据分布 数据分布 网络 网络 操作系统 操作系统 硬件 硬件  使用好的硬件,更快的硬盘、大内存、多核 配置合理的 MySQL MySQL 服务器,尽量在应用本身达到一 服务器,尽量在应用本身达到一 个 个 MySQL MySQL 最合理的使用 最合理的使用  针对 针对 MyISAM MyISAM 或 或 InnoDB InnoDB 不同引擎进行不同定制 不同引擎进行不同定制 性配置 性配置  针对不同的应用情况进行合理配置 针对不同的应用情况进行合理配置  针对 针对 my.cnf0 码力 | 38 页 | 2.04 MB | 1 年前3 谈谈MYSQL那点事读写性能都非常优秀 • 能够承载大数据量的存储和访问 能够承载大数据量的存储和访问 • 拥有自己独立的缓冲池,能够缓存数据和索引 拥有自己独立的缓冲池,能够缓存数据和索引 MySQL 架构设计—应用架构 强一致性 对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 架构设计—高可用架构  系统优化:硬件、架构 系统优化:硬件、架构  服务优化 服务优化  应用优化 应用优化 MySQL MySQL 优化方式 优化方式 影响性能的因素 影响性能的因素 应用程序 应用程序 查询 查询 事务管理 事务管理 数据库设计 数据库设计 数据分布 数据分布 网络 网络 操作系统 操作系统 硬件 硬件  使用好的硬件,更快的硬盘、大内存、多核 配置合理的 MySQL MySQL 服务器,尽量在应用本身达到一 服务器,尽量在应用本身达到一 个 个 MySQL MySQL 最合理的使用 最合理的使用  针对 针对 MyISAM MyISAM 或 或 InnoDB InnoDB 不同引擎进行不同定制 不同引擎进行不同定制 性配置 性配置  针对不同的应用情况进行合理配置 针对不同的应用情况进行合理配置  针对 针对 my.cnf0 码力 | 38 页 | 2.04 MB | 1 年前3
 MySQL 数据库架构灾难恢复解决方案its affiliates. 8 / 55 Present - Solutions! 2016 - M ySQL InnoDB Cluster MySQL 组复制:自动成员身份更改、网络分区处理、一致性... MySQL Shell 提供强大的界面,有助于自动化和集成所有组件 InnoDB 克隆以自动生成成员,完全集成在InnoDB 中 MySQL Router MySQL 手动故障转移) 无写入性能影响 特点 • 简单易用 • 熟悉的界面和可用性 mysqlsh,CLONE,... • 在线添加/删除节点/集群 • 路由器集成, 拓扑结构发生变化时无需重新配置 应用程序 M ySQL InnoDB ClusterSet – 3 个数据中心 Copyright @ 2021 Oracle and/or its affiliates. 14 / 55 MySQL affiliates. 业务要求 Copyright @ 2021 Oracle and/or its affiliates. 50 / 55 故障类型: 高可用性: 单服务器故障, 网络分区 灾难恢复: 整个区域/网络故障 人为错误: 个别表问题 10 / 55 业务需求 概念 - RTO & RPO RTO :恢复时间目标 从单个故障中恢复需要多长时间 RPO :恢复点目标 发生故障时可能丢失多少数据0 码力 | 52 页 | 3.07 MB | 1 年前3 MySQL 数据库架构灾难恢复解决方案its affiliates. 8 / 55 Present - Solutions! 2016 - M ySQL InnoDB Cluster MySQL 组复制:自动成员身份更改、网络分区处理、一致性... MySQL Shell 提供强大的界面,有助于自动化和集成所有组件 InnoDB 克隆以自动生成成员,完全集成在InnoDB 中 MySQL Router MySQL 手动故障转移) 无写入性能影响 特点 • 简单易用 • 熟悉的界面和可用性 mysqlsh,CLONE,... • 在线添加/删除节点/集群 • 路由器集成, 拓扑结构发生变化时无需重新配置 应用程序 M ySQL InnoDB ClusterSet – 3 个数据中心 Copyright @ 2021 Oracle and/or its affiliates. 14 / 55 MySQL affiliates. 业务要求 Copyright @ 2021 Oracle and/or its affiliates. 50 / 55 故障类型: 高可用性: 单服务器故障, 网络分区 灾难恢复: 整个区域/网络故障 人为错误: 个别表问题 10 / 55 业务需求 概念 - RTO & RPO RTO :恢复时间目标 从单个故障中恢复需要多长时间 RPO :恢复点目标 发生故障时可能丢失多少数据0 码力 | 52 页 | 3.07 MB | 1 年前3
 MySQL高可用 - 多种方案作为故障转移,提高系统的可用性。但是一般的 mysql 高可用为了实现 mysql 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求。本方案实现的功能是当网络有问题、 mysql 有问题、服务器宕机、keepalived 服务停止后,服务器能自动跳转到备用机, 当主服务器服务启动起来后会自动切换回来。 2.2 方案架构图 2.3 方案优缺点 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求,读负载均衡通过 lvs 实现,读能自由 的实现负载均衡和故障切换。本方案实现的功能是当网络有问题、mysql 有问题、 服务器宕机、keepalived 服务停止后,服务器能自动跳转到备用机,当主服务器服务 启动起来后会自动切换回来。 3.2 方案架构图 3.3 方案优缺点 只是要手工切换从服务器比较麻烦,后面会介绍的 MMM 能将从服务器自动切 换)并且还能实现数据库的读写分离的情况,这样 backup 机器也能用起来,提 高系统资源的利用率,减少 master 端的负载。应用中读数据库配置读 VIP,写数 据库配置写 VIP。这个方案也能够很方便的进行单台数据库的管理维护以及切换 工作。比如进行大表的表结构更改、数据库的升级等都是非常方便的。 3.5 方案实战 30 码力 | 31 页 | 874.28 KB | 1 年前3 MySQL高可用 - 多种方案作为故障转移,提高系统的可用性。但是一般的 mysql 高可用为了实现 mysql 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求。本方案实现的功能是当网络有问题、 mysql 有问题、服务器宕机、keepalived 服务停止后,服务器能自动跳转到备用机, 当主服务器服务启动起来后会自动切换回来。 2.2 方案架构图 2.3 方案优缺点 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求,读负载均衡通过 lvs 实现,读能自由 的实现负载均衡和故障切换。本方案实现的功能是当网络有问题、mysql 有问题、 服务器宕机、keepalived 服务停止后,服务器能自动跳转到备用机,当主服务器服务 启动起来后会自动切换回来。 3.2 方案架构图 3.3 方案优缺点 只是要手工切换从服务器比较麻烦,后面会介绍的 MMM 能将从服务器自动切 换)并且还能实现数据库的读写分离的情况,这样 backup 机器也能用起来,提 高系统资源的利用率,减少 master 端的负载。应用中读数据库配置读 VIP,写数 据库配置写 VIP。这个方案也能够很方便的进行单台数据库的管理维护以及切换 工作。比如进行大表的表结构更改、数据库的升级等都是非常方便的。 3.5 方案实战 30 码力 | 31 页 | 874.28 KB | 1 年前3
 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波随着业务的发展,扩容数据库的不方便不快捷,也是个问题。 3.大量数据量小的数据库系统也单独部署在物理机,浪费问题突出。 4.DBA的数据库自动化标准化运维的需求。 5.Docker在同程的大规模使用,应用部署环境100%容器化,有Docker丰富的经验 。 让数据库的部署点单化开启 2核4G 4核4G 4核8G 8核8G 8核16G 16核16G 16核64G 32核64G 32核128G 资源管理|资源调度 复制与迁移|高可用保障|备份恢复 自 动 化 运 维 应用 DB中间件 数据存储 应用 VIP 告警分析 告警发送 指标画图 趋势预测 自定义脚本 Open API 数据校验 实例迁移 秒级监控诊断 慢日志分析 资源池调度 调度规则 容器调度 资源池 容器及实例创建 应用交付 资源申请 IO类型 配置 为了保证MySQL的高可用,需要在D PS:容器虚拟化带来轻量高效,快速部署的同时,docker容器在隔离性方面也存在一些缺陷。例如,在容器内部proc文件系统 中可以看到Host宿主机上的proc信息。这样就导致了一些问题,比如监控信息不准确、限制内存会导致应用程序OOM等。我们 基于lxcfs组件来增强容器的隔离性。 资源隔离 CPU最大超卖3倍,通过cpu-period配合cpu-quota一起使用,来限制容器的CPU的使用量 。比cpuset-cpus绑定CPU的方式灵活。0 码力 | 32 页 | 7.11 MB | 1 年前3 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波随着业务的发展,扩容数据库的不方便不快捷,也是个问题。 3.大量数据量小的数据库系统也单独部署在物理机,浪费问题突出。 4.DBA的数据库自动化标准化运维的需求。 5.Docker在同程的大规模使用,应用部署环境100%容器化,有Docker丰富的经验 。 让数据库的部署点单化开启 2核4G 4核4G 4核8G 8核8G 8核16G 16核16G 16核64G 32核64G 32核128G 资源管理|资源调度 复制与迁移|高可用保障|备份恢复 自 动 化 运 维 应用 DB中间件 数据存储 应用 VIP 告警分析 告警发送 指标画图 趋势预测 自定义脚本 Open API 数据校验 实例迁移 秒级监控诊断 慢日志分析 资源池调度 调度规则 容器调度 资源池 容器及实例创建 应用交付 资源申请 IO类型 配置 为了保证MySQL的高可用,需要在D PS:容器虚拟化带来轻量高效,快速部署的同时,docker容器在隔离性方面也存在一些缺陷。例如,在容器内部proc文件系统 中可以看到Host宿主机上的proc信息。这样就导致了一些问题,比如监控信息不准确、限制内存会导致应用程序OOM等。我们 基于lxcfs组件来增强容器的隔离性。 资源隔离 CPU最大超卖3倍,通过cpu-period配合cpu-quota一起使用,来限制容器的CPU的使用量 。比cpuset-cpus绑定CPU的方式灵活。0 码力 | 32 页 | 7.11 MB | 1 年前3
 MySQL 企业版功能介绍MySQL 企业版提供了全面的高级功能、管理工具和技术支持,实现了高水平的 MySQL 可扩展性、安全性、可靠性和无故障运行时间。 MySQL 企业版可在开发、部署和管理业务关键型 MySQL 应用的过程中降低风险、削减成本和减 少复杂性。MySQL 企业版具有以下独特优势:  使用 Oracle MySQL 服务云轻松设置、运行和管理云中的 MySQL  使用 MySQL 企业级安全性来利用现有安全基础架构  使用加密、密钥生成和数字签名保护敏感数据  通过 MySQL 企业级防火墙阻止针对数据库的攻击(如 SQL 注入)  对现有 MySQL 应用实施基于策略的审计合规性  通过 MySQL Enterprise Monitor 提高数据库性能和可用性  通过 MySQL Query Analyzer 查明影响数据库性能的 凭借经济高效、可靠、高性能且可扩展的电子商务、联机事务处理和嵌入式数据库应用 成为全球使用广泛的开源数据库。它是一种事务安全、符合 ACID 标准的集成式数据库,支持全 面的提交、回滚、崩溃恢复和行锁定功能。MySQL 不仅简便易用、易于扩展、性能卓越,而且 还提供了一整套数据库驱动程序和可视化工具,可帮助开发人员和 DBA 自主构建和管理 MySQL 应用。MySQL 数据库具备以下特性:0 码力 | 6 页 | 509.78 KB | 1 年前3 MySQL 企业版功能介绍MySQL 企业版提供了全面的高级功能、管理工具和技术支持,实现了高水平的 MySQL 可扩展性、安全性、可靠性和无故障运行时间。 MySQL 企业版可在开发、部署和管理业务关键型 MySQL 应用的过程中降低风险、削减成本和减 少复杂性。MySQL 企业版具有以下独特优势:  使用 Oracle MySQL 服务云轻松设置、运行和管理云中的 MySQL  使用 MySQL 企业级安全性来利用现有安全基础架构  使用加密、密钥生成和数字签名保护敏感数据  通过 MySQL 企业级防火墙阻止针对数据库的攻击(如 SQL 注入)  对现有 MySQL 应用实施基于策略的审计合规性  通过 MySQL Enterprise Monitor 提高数据库性能和可用性  通过 MySQL Query Analyzer 查明影响数据库性能的 凭借经济高效、可靠、高性能且可扩展的电子商务、联机事务处理和嵌入式数据库应用 成为全球使用广泛的开源数据库。它是一种事务安全、符合 ACID 标准的集成式数据库,支持全 面的提交、回滚、崩溃恢复和行锁定功能。MySQL 不仅简便易用、易于扩展、性能卓越,而且 还提供了一整套数据库驱动程序和可视化工具,可帮助开发人员和 DBA 自主构建和管理 MySQL 应用。MySQL 数据库具备以下特性:0 码力 | 6 页 | 509.78 KB | 1 年前3
 Oracle 和 MySQL 性能优化感悟Method swizzling Isa swizzling Isa swizzling+NSProxy Others NSURLProtocol 关于NSURLProtocol 基本步骤 应用场景 优点/缺点/坑 1、定一个NSURLProtocol子类 2、注册这个类 3、NSURLProtocol子类实现 method swizzling 拦截的要点: • 拦截到 • 调回去 加“代理方法” 2、调用method_exchangeImplementations交换IMP 3、确保你的“代理方法”调用了“原始方法” method swizzling 原理 基本步骤 应用场景 优点/缺点/坑 method swizzling(改进版) 原理 基本步骤 小例子 优点 • 利用block作为IMP • 利用自动变量的截取 存储原始IMP 原理:修改isa指针 原理:修改isa指针 isa swizzling 特点:针对一个对象 原理:修改isa指针 基本步骤 应用场景 优点/缺点/坑 isa swizzling 特点:针对一个对象 1、(动态)创建目标类子类 2、(动态)为子类添加方法 3、修改目标对象的isa 原理 基本步骤 应用场景 优点/缺点/坑 isa swizzling+NSProxy 1、从NSProxy派生一个子类,0 码力 | 19 页 | 3.82 MB | 1 年前3 Oracle 和 MySQL 性能优化感悟Method swizzling Isa swizzling Isa swizzling+NSProxy Others NSURLProtocol 关于NSURLProtocol 基本步骤 应用场景 优点/缺点/坑 1、定一个NSURLProtocol子类 2、注册这个类 3、NSURLProtocol子类实现 method swizzling 拦截的要点: • 拦截到 • 调回去 加“代理方法” 2、调用method_exchangeImplementations交换IMP 3、确保你的“代理方法”调用了“原始方法” method swizzling 原理 基本步骤 应用场景 优点/缺点/坑 method swizzling(改进版) 原理 基本步骤 小例子 优点 • 利用block作为IMP • 利用自动变量的截取 存储原始IMP 原理:修改isa指针 原理:修改isa指针 isa swizzling 特点:针对一个对象 原理:修改isa指针 基本步骤 应用场景 优点/缺点/坑 isa swizzling 特点:针对一个对象 1、(动态)创建目标类子类 2、(动态)为子类添加方法 3、修改目标对象的isa 原理 基本步骤 应用场景 优点/缺点/坑 isa swizzling+NSProxy 1、从NSProxy派生一个子类,0 码力 | 19 页 | 3.82 MB | 1 年前3
 运维上海2017-从理论到实践,深度解析MySQL Group Replication -徐春阳Replication原理解析与实践经验 徐春阳 MGR原理 MGR vs SEMI-SYNC MRG实践经验 • 支持多节点并发执行事务。如何保证从各个节点并发执行 的事务在每个节点以相同的顺序被应用/执行.------paxos协 议的功能。 • 自动地事务冲突检测。节点之间不能”同时”操作主键相同 记录,如果冲突,只有一个节点成功。------冲突检测。 • 节点故障容忍度强。多数派原则,超过半数节点存活的集0 码力 | 32 页 | 9.55 MB | 1 年前3 运维上海2017-从理论到实践,深度解析MySQL Group Replication -徐春阳Replication原理解析与实践经验 徐春阳 MGR原理 MGR vs SEMI-SYNC MRG实践经验 • 支持多节点并发执行事务。如何保证从各个节点并发执行 的事务在每个节点以相同的顺序被应用/执行.------paxos协 议的功能。 • 自动地事务冲突检测。节点之间不能”同时”操作主键相同 记录,如果冲突,只有一个节点成功。------冲突检测。 • 节点故障容忍度强。多数派原则,超过半数节点存活的集0 码力 | 32 页 | 9.55 MB | 1 年前3
 Kubernetes Operator 实践 - MySQL容器化complex stateful applications on behalf of a Kubernetes user. operator 是特殊的 controller,用来管理复杂的分布式应用 ü custom resource definition(CRD) ü custom controller Operator 是什么 • Kubernetes 中一切都可视为资源 • 默认资源类型:如0 码力 | 42 页 | 4.77 MB | 1 年前3 Kubernetes Operator 实践 - MySQL容器化complex stateful applications on behalf of a Kubernetes user. operator 是特殊的 controller,用来管理复杂的分布式应用 ü custom resource definition(CRD) ü custom controller Operator 是什么 • Kubernetes 中一切都可视为资源 • 默认资源类型:如0 码力 | 42 页 | 4.77 MB | 1 年前3
共 10 条
- 1













