MySQL 数据库架构灾难恢复解决方案
MySQL 数据库架构 灾难恢复解决方案 MySQL InnoDBClusterSet 介绍 MySQL SE 罗伟文 2 / 55 Safe Harbor Statement 以下内容旨在概述我们的一般产品方向。它仅供参考,不得纳入任何合同。它并不提供任何材料、代码或功能的承诺,不应据此做出购买决策。 Oracle 产品描述的任何特性或功能的开发、发布和时间安排仍由 Oracle 自行决定。 熟悉的界面和可用性 mysqlsh,CLONE,... • 在线添加/删除节点/集群 • 路由器集成, 拓扑结构发生变化时无需重新配置 应用程序 M ySQL InnoDB ClusterSet – 3 个数据中心 Copyright @ 2021 Oracle and/or its affiliates. 14 / 55 MySQL InnoDB ClusterSet -并非每个集群都必须有 3 整个区域/网络故障 人为错误: 个别表问题 10 / 55 业务需求 概念 - RTO & RPO RTO :恢复时间目标 从单个故障中恢复需要多长时间 RPO :恢复点目标 发生故障时可能丢失多少数据 Copyright @ 2021 Oracle and/or its affiliates. 高可用性 - 单区域 MySQL InnoDB Cluster RPO =0 RTO =秒级0 码力 | 52 页 | 3.07 MB | 1 年前3MySQL 8.0.17 调优指南(openEuler 20.09)
..............................................................................................3 3 操作系统调优............................................................................................... MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在Web应用方面,MySQL 是最好的RDBMS (Relational Database Management System,关系数据库管理系 统)应用软件之一。 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将 所有数据放在一个大 提高了灵活性。 MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了 双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其 是开放源码这一特点,一般中小型网站的开发都选择 MySQL作为网站数据库。 1.2 调优原则 性能调优从大的方面来说,在系统设计之初,需要考虑硬件的选择,操作系统的选 择,基础软件的选择;从小的方面来说,包括每个子系统的设计,算法选择,如何使0 码力 | 11 页 | 223.31 KB | 1 年前3谈谈MYSQL那点事
互联网常用数据库市场占有率 互联网通用架构体制 谈谈 MySQL 数据库那些事 MySQL MySQL 基本介绍 基本介绍 MySQL MySQL 优化方式 优化方式 MySQL MySQL 技巧分享 技巧分享 Q Q & & AA MyISAM MyISAM 特点 特点 MyISAM vs MyISAM vs InnoDB InnoDB • 数据存储方式简单,使用 数据存储方式简单,使用 数据存储方式简单,使用 B+ Tree B+ Tree 进行索引 进行索引 • 使用三个文件定义一个表: 使用三个文件定义一个表: .MYI .MYD .frm .MYI .MYD .frm • 少碎片、支持大文件、能够进行索引压缩 少碎片、支持大文件、能够进行索引压缩 • 二进制层次的文件可以移植 二进制层次的文件可以移植 (Linux (Linux 不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • Table level lock Table level lock ,性能稍差,更适合读取多的操作 ,性能稍差,更适合读取多的操作 InnoDB InnoDB 特点 特点 •使用 使用 Table Space Table Space 的方式来进行数据存储 的方式来进行数据存储 (ibdata10 码力 | 38 页 | 2.04 MB | 1 年前3MySQL 企业版功能介绍
ORACLE 产品介绍 MySQL 企业版 全球广受欢迎的开源数据库 重要特性 Oracle MySQL 服务云 MySQL 数据库 MySQL 企业级备份 MySQL 企业级高可用性 MySQL 企业级可扩展性 MySQL 企业级身份验证 MySQL 企业级 TDE 多种性能图表 MySQL Workbench Oracle 标准支持服务 “借助 MySQL Query Analyzer, 我们可以识别和分析存在问题的 SQL 代码,同时将数据库性能提 升两倍。更加重要的是,我们在三 天内就完成了这一任务,而过去则 需要数周之久。” —Keith Souhrada, 软件开发工程师, Big Fish Games MySQL 分组复制来确保数据库的高可用性 通过 MySQL 企业级可扩展性应对指数级增长的用户和数据量 通过 MySQL 企业级备份执行热备份和恢复,从而降低数据丢失的风险 通过 MySQL 企业级安全性来利用现有安全基础架构 使用加密、密钥生成和数字签名保护敏感数据 通过 MySQL 企业级防火墙阻止针对数据库的攻击(如 SQL 注入)0 码力 | 6 页 | 509.78 KB | 1 年前3使用 Docker 建立 MySQL 集群
使用 Docker 建立 Mysql 集群 软件环境介绍 操作系统:Ubuntu server 64bit 14.04.1 Docker 版本 1.6.2 数据库:Mariadb 10.10 (Mariadb 是 MySQL 之父在 MySQL 被 Oracle 收购之后 创建的分支,性能上优于 MySQL 开源版本) 第一步 安装 Docker 对于 Ubuntu,建议直接联网安装 Docker 第二步 运行 Mariadb 容器 首先要将数据镜像拉下来 docker pull mariadb:latest 注意,如果不加:latest 标签,docker 会把所有的镜像版本都拉下来。 然后我们就可以启动镜像了,参数方面需要注意的有一下几点: 1,-name <给容器取个好记的名称> 2,-e MYSQL_ROOT_PASSWORD =‘<给数据库一个 root 用户密码>’ 3,-p <映射到本机的端口>:3306 <映射到本机的端口>:3306 4,-v <本机的数据库存放目录>:/var/lib/mysql 5,设定 MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE 环境变量可以使容器在 运行时同时创建你所需要的数据库和带有全部权限的用户及其对应密码 6,设定 TERM 环境变量的值可以解决容器不能进入 mysql 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将0 码力 | 3 页 | 103.32 KB | 1 年前3运维上海2017-从理论到实践,深度解析MySQL Group Replication -徐春阳
自动地事务冲突检测。节点之间不能”同时”操作主键相同 记录,如果冲突,只有一个节点成功。------冲突检测。 • 节点故障容忍度强。多数派原则,超过半数节点存活的集 群依然整体可用。------paxos协议。 • 更高级别地保证数据的一致性 ------vs mysql的异步/半同 步复制。 MGR�����:! • 将源自多个数据库节点并发无序的消息进行全局排序。目的 )时发生.前提:消息已经被多数节 点接受。 • 所指的消息表示的是一个事务类型的消息,内容包含事务产生的binlog 以及冲突检测时使用到主键以及事务的数据快照版本(gtid_set) • 比较规则。将事务所涉及的主键以及数据版本信息(gtid_set)跟write set 里面的信息进行比较: 主键不存在与write set中,不冲突。 MGR�������������� ����������! MRG原理 MGR vs Semi-Sync MGR实践经验 Group_replication_bootstrap_group参数须谨慎 DDL操作注意事项 当心secondary节点变成可写节点 规避大事务 Secondary��������! ������Single primary ����secondary����! ��my0 码力 | 32 页 | 9.55 MB | 1 年前3如何用 MySQL 构建全方位高可用应用
和/或其附属公司。保留所有权利。 5 并不仅仅是可靠地存储数据 支持高可用性的各个层 数据的冗余访问路径 数据冗余存储 冗余应用服务器 数据路由 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 6 并不仅仅是可靠地存储数据 支持高可用性的各个层 数据的冗余访问路径 数据冗余存储 冗余应用服务器 数据路由 4/16/2017 版权所有 2015,Oracle Cluster 从数据库 • 会话线程:处理来自应用程序的查询 - 将 数据写入主数据库,将关联事件写入二进制 日志 • 转储线程:读取二进制日志中的事件,然后 将其发送到从数据库 • I/O 线程:接收复制事件,并将其存储在从 数据库的中继日志中 • SQL 线程:读取从数据库的中继日志中的复 制事件,然后将其应用到从数据库 MySQL 复制工作流 会话 二进制 日志 主数据库 转储 和/或其附属公司。保留所有权利。 为何进行复制? •将数据库从“主服务器”复制到“从服务器” – 数据的冗余副本奠定了高可用性的基础 – 通过在复制场中进行分布式查询来扩展 主 从 Web/应用服务器 写入和读取 读取 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在 存储引擎上提交,然0 码力 | 40 页 | 2.19 MB | 1 年前3Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波
同程旅游早期的数据库都以单库的MySQL。 ■ MySQL的单库,导致TPS最终还是会成为一个瓶颈。 ■ MySQL+DB中间件解决水平拆分问题。 ■ MySQL水平拆分的引入会使数据库实例数量大幅上升,传统运维手段维护成本高,交付能力差。 MySQL数据库为何要Docker化 1.MySQL数据库迅速爆炸式增长后,服务器规模不断增大,快速部署是个问题。 2.随着业务的发展,扩容数据库的不方便不快捷,也是个问题。 随着业务的发展,扩容数据库的不方便不快捷,也是个问题。 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类型0 码力 | 32 页 | 7.11 MB | 1 年前3TokuDB索引结构
Linux 文件系统层 TokuDB特点 • 支持事务(ACID)的MySQL存储引擎 • 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本! 分形树索引结构(一) 分形树结构(二) • msg_buffer – 先进先出队列 • BasementNode(OMT) B C D A E B A D E C a. Root节点分裂前 b. Root节点分裂后 分形树Insert/Update/Delete a. B+树顺序插入热点数据分布图 b. B+树随机插入热点数据分布图 分形树Flush线程 分形树Point-Query 分形树Range-Query 分形树范围查询 B+树范围查询 TokuDB事务(一) Page.1 Page0 码力 | 19 页 | 1.97 MB | 1 年前3Kubernetes Operator 实践 - MySQL容器化
小结 搜狗商业平台 技术体系广 服务多迭代快 搜狗产品矩阵 商业平台 信息流广告 搜索广告 品牌广告 代理商 广告主 技术体系 CRM 广告平台 物料展现 审核平台 大数据平台 基础架构 Golang C++ JavaScript Java Python 质量要求高 业务响应快 故障恢复快 Cluster1 搜狗商业平台业务系统 搜索推广 信息流 MySQL-Operator 集群管理 Master High Availability Ø 目前最常用的高可用实现 Ø 支持大多数 MySQL 版本 Ø 使用 mysql 半同步复制 Ø 有数据丢失风险 Mysql Group Replication Ø MySQL 官方提供 Ø 5.7 新特性 Ø 基于 Paxos 协议 Ø 写入延迟相对高 MySQL 高可用的实现方式 MHA 集群切主 pod 都正常运行? 调度 pod k8s mha operator 重新调度 mha MHA 扩缩容 • 扩容:直接执行 • 缩容:集群 master 是谁? 判断条件: 缩容操作且 master 为 sts 最后一个 pod operator 执行 sts 扩缩容 判断 调用 mha 切主 否 是 pod 都正常运行? 重新调度 mha MGR 高可用简介0 码力 | 42 页 | 4.77 MB | 1 年前3
共 12 条
- 1
- 2