MySQL高可用 - 多种方案
http://blog.chinaunix.net/uid/20639775.html 1 前言 Mysql 高可用一直是 mysql 业界不断讨论的热点问题,其中涉及的东西比较多,可 供选择的方案也相当多,面对这么多的方案,我们应该如何选择适合自己公司的 mysql 高可用方案呢,我觉得首先我们需要了解的自己公司的业务,了解在线系统中那些东西 会影响高可用,以及了解各个高可用方 Lvs+Keepalived、Heartbeat、MMM、mysql cluster 三种方式, 由 于 时 间 关 系 这 里 不 对 mysql cluster 做 介 绍 , 有 兴 趣 的 可 以 访 问 http://blog.chinaunix.net/uid-20639775-id-201960.html,下面就逐一地来详细介绍其他几种高 可用方案。 2 Lvs+Keepalived+Mysql 2.1 方案简介 Lvs+keepalived 作为目前比较流行的高可用解决方案,lvs 提供负载均衡, keepalived 作为故障转移,提高系统的可用性。但是一般的 mysql 高可用为了实现 mysql 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求。本方案实现的功能是当网络有问题、 mysql0 码力 | 31 页 | 874.28 KB | 1 年前3Kubernetes Operator 实践 - MySQL容器化
默认资源类型:如 Pod、Service、Volume 等 • Kubernetes 1.7 之后增加了 CRD 自定义资源 • 二次开发扩展 Kubernetes API CRD 的基本原理 ① 观察资源的当前状态 ② 分析当前状态与期望状态的差别 ③ 调用 API 消除差别 TestCluster app=test app=test 申请扩容 期望副本数:3 当前副本数:1 VS 期望状态 • Status:当前状态 MySQL 配置 • 版本 • 端口 • 存储信息 • 配置文件 集群配置 • 副本数 • 高可用模式 K8s 调度信息 • 资源套餐 • 亲和性信息 • NodeSelector 使用 CRD 2. client-go 配套工具 apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition 3. 集群管理 2. 调度 pod Ceph MySQL-Operator 数据存储 分布式存储 • 使用 Ceph RBD,基于产品线 创建 StorageClass • 优点:可靠性高,容器漂移时 数据不变 • 缺点:读写延迟较高 本地存储 • 基于 Host Path Volumes • 优点:读写延迟低 • 缺点:单点数据,容器漂移时 数据丢失 踩到的坑 •0 码力 | 42 页 | 4.77 MB | 1 年前3MySQL 企业版功能介绍
全球广受欢迎的开源数据库 重要特性 Oracle MySQL 服务云 MySQL 数据库 MySQL 企业级备份 MySQL 企业级高可用性 MySQL 企业级可扩展性 MySQL 企业级身份验证 MySQL 企业级 TDE MySQL 企业级加密 MySQL 企业级防火墙 MySQL 企业级审计 MySQL 可扩展性、安全性、可靠性和无故障运行时间。 MySQL 企业版可在开发、部署和管理业务关键型 MySQL 应用的过程中降低风险、削减成本和减 少复杂性。MySQL 企业版具有以下独特优势: 使用 Oracle MySQL 服务云轻松设置、运行和管理云中的 MySQL 使用 MySQL 分组复制来确保数据库的高可用性 通过 MySQL 企业级可扩展性应对指数级增长的用户和数据量 通过 MySQL 企业级安全性来利用现有安全基础架构 使用加密、密钥生成和数字签名保护敏感数据 通过 MySQL 企业级防火墙阻止针对数据库的攻击(如 SQL 注入) 对现有 MySQL 应用实施基于策略的审计合规性 通过 MySQL Enterprise Monitor 提高数据库性能和可用性 通过 MySQL Query0 码力 | 6 页 | 509.78 KB | 1 年前3如何用 MySQL 构建全方位高可用应用
Oracle VM Group Replication MySQL Cluster MySQL 高可用性解决方案 4/16/2017 9 9 . 9 9 9 % 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 5 并不仅仅是可靠地存储数据 支持高可用性的各个层 数据的冗余访问路径 数据冗余存储 冗余应用服务器 数据路由 4/16/2017 版权所有 2015,Oracle 2015,Oracle 和/或其附属公司。保留所有权利。 6 并不仅仅是可靠地存储数据 支持高可用性的各个层 数据的冗余访问路径 数据冗余存储 冗余应用服务器 数据路由 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 7 • MySQL Replication • Shared Storage • Group Replication • MySQL 数据的冗余副本奠定了高可用性的基础 – 通过在复制场中进行分布式查询来扩展 主 从 Web/应用服务器 写入和读取 读取 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在 存储引擎上提交,然 后将事务发送到从数 据库 • 快速 • 如果主数据库停机有可 能丢失更改0 码力 | 40 页 | 2.19 MB | 1 年前3Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波
容器化之后的MySQL就是一个私有DB云 主 从 集 群 创 建 分 片 集 群 创 建 集 成 高 可 用 方 案 巨 细 无 遗 的 监 控 项 精 美 的 图 形 展 示 便 捷 的 告 警 管 理 慢 日 志 分 析 及 查 看 自 动 化 备 份 资 源 池 管 理 高 可 用 切 换 集 群 节 点 管 理 扩 容 缩 容 数 据 库 及 实 例 迁 移 过 载 保 像、HA管理系统镜像、实例迁移服务镜像、监控服务端镜像 PS:容器虚拟化带来轻量高效,快速部署的同时,docker容器在隔离性方面也存在一些缺陷。例如,在容器内部proc文件系统 中可以看到Host宿主机上的proc信息。这样就导致了一些问题,比如监控信息不准确、限制内存会导致应用程序OOM等。我们 基于lxcfs组件来增强容器的隔离性。 资源隔离 CPU最大超卖3倍,通过cpu-period配合cpu-quota一起使用,来限制容器的CPU的使用量 。比cpuset-cpus绑定CPU的方式灵活。 限制容器内存,且内存不超卖。通过—memory限制内存,同时结合MySQL自身参数控制 几个内存大户(比如buffer_pool等),最后配合lxcfs增强隔离性。 IO方面由于我们采用挂载宿主机本地的磁盘设备,还不能做到彻底隔离。所以对于高IO的实 例使用的是PCIE-SSD。磁盘空间方面,我们在申请时会预估出一个量,使用超过80%的时候 会结合本地磁盘空0 码力 | 32 页 | 7.11 MB | 1 年前3谈谈MYSQL那点事
拥有自己独立的缓冲池,能够缓存数据和索引 MySQL 架构设计—应用架构 强一致性 对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 时读,类似种涉及交易的或者动态实时报表统计的都要采 用这种架构模式 弱一致性 如果是弱一致性的话,可以通过在 M2 上面分担一些读压力 和流量,比如一些报表的读取以及静态配置数据的读取模块 和流量,比如一些报表的读取以及静态配置数据的读取模块 都可以放到 M2 上面。比如月统计报表,比如首页推荐商品 业务实时性要求不是很高,完全可以采用这种弱一致性的设 计架构模式。 中间一致性 如果既不是很强的一致性又不是很弱的一致性,那 么我们就采取中间的策略,就是在同机房再部署一个 S1(R) ,作为备库,提供读取服务,减少 M1(WR) 的 压力,而另外一个 idc 机房的 M2 只做 个 个 MySQL MySQL 最合理的使用 最合理的使用 针对 针对 MyISAM MyISAM 或 或 InnoDB InnoDB 不同引擎进行不同定制 不同引擎进行不同定制 性配置 性配置 针对不同的应用情况进行合理配置 针对不同的应用情况进行合理配置 针对 针对 my.cnf my.cnf 进行配置,后面设置是针对内存为 进行配置,后面设置是针对内存为 16G0 码力 | 38 页 | 2.04 MB | 1 年前3MySQL 数据库架构灾难恢复解决方案
affiliates. 8 / 55 Present - Solutions! 2016 - M ySQL InnoDB Cluster MySQL 组复制:自动成员身份更改、网络分区处理、一致性... MySQL Shell 提供强大的界面,有助于自动化和集成所有组件 InnoDB 克隆以自动生成成员,完全集成在InnoDB 中 MySQL Router MySQL Server =0 RTO =秒级 (自动故障转移) 灾难恢复( 区域故障) RPO !=0 RTO =分钟或更长时间( 手动故障转移) 无写入性能影响 特点 • 简单易用 • 熟悉的界面和可用性 mysqlsh,CLONE,... • 在线添加/删除节点/集群 • 路由器集成, 拓扑结构发生变化时无需重新配置 应用程序 M ySQL InnoDB ClusterSet – 3 个数据中心 故障类型: 高可用性: 单服务器故障, 网络分区 灾难恢复: 整个区域/网络故障 人为错误: 个别表问题 10 / 55 业务需求 概念 - RTO & RPO RTO :恢复时间目标 从单个故障中恢复需要多长时间 RPO :恢复点目标 发生故障时可能丢失多少数据 Copyright @ 2021 Oracle and/or its affiliates. 高可用性 - 单区域 MySQL0 码力 | 52 页 | 3.07 MB | 1 年前3MySQL 8.0.17 调优指南(openEuler 20.09)
1 调优概述 2020-10-15 1 ● 必须保证调优后的程序运行正确。 ● 调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中 去。 ● 性能调优不能以牺牲代码的可读性和可维护性为代价。 1.3 调优思路 性能优化首先要较为精准的定位问题,分析系统性能瓶颈,然后根据其性能指标以及 所处层级选择优化的方式方法。 下面介绍MySQL数据库具体的调优思路和分析过程,如图1所示。 上可能就会出现由于各种 规格(带宽、最大连接数、新建连接数等)限制,导致压测结果达不到预期。 2. 接着看关键指标是否满足要求,如果不满足,需要确定是哪个地方有问题,一般 情况下,服务器端问题可能性比较大,也有可能是客户端问题(这种情况比较 小)。 3. 对于服务器端问题,需要定位的是硬件相关指标,例如CPU,Memory,Disk I/O,Network I/O,如果是某个硬件指标有问题,需要深入的进行分析。 一般指的是Windows、UNIX、Linux等操作系统。例如,在进行性 能测试,出现物理内存不足时,虚拟内存设置也不合理,虚拟内 存的交换效率就会大大降低,从而导致行为的响应时间大大增 加,这时认为操作系统上出现性能瓶颈。 数据库 一般指的是数据库配置等方面的问题。例如,由于参数配置不合 理,导致数据库处理速度慢的问题,可认为是数据库层面的的问 题。 MySQL 8.0.17 调优指南(openEuler0 码力 | 11 页 | 223.31 KB | 1 年前3Oracle 和 MySQL 性能优化感悟
应用场景 优点/缺点/坑 isa swizzling+NSProxy 1、从NSProxy派生一个子类, 2、实现那三个方法 3、把目标对象的isa指向这个类 fishhook Runlook观察者/CADisplayLink sendEvent/addTarget::: others • WKWebview • TCP数据 • 用一个入口拦截任意方法 听云产品试用群0 码力 | 19 页 | 3.82 MB | 1 年前3使用 Docker 建立 MySQL 集群
第三步 配置一主一从集群 3.1 接下来启动另一个容器作为从数据库,因为镜像不支持在容器内进入 mysql 控制 台,所以依然需要把端口暴露出来以供局域网访问,但主数据库容易可以链接进 来作为一个可访问的主机 master_db。 docker run --name <从数据库名> -e MYSQL_ROOT_PASSWORD=<从数据库 root 密码> --link <主数据库容器名>:master_db0 码力 | 3 页 | 103.32 KB | 1 年前3
共 11 条
- 1
- 2