如何用 MySQL 构建全方位高可用应用从数据库 • 会话线程:处理来自应用程序的查询 - 将 数据写入主数据库,将关联事件写入二进制 日志 • 转储线程:读取二进制日志中的事件,然后 将其发送到从数据库 • I/O 线程:接收复制事件,并将其存储在从 数据库的中继日志中 • SQL 线程:读取从数据库的中继日志中的复 制事件,然后将其应用到从数据库 MySQL 复制工作流 会话 二进制 日志 主数据库 转储 I/O 和/或其附属公司。保留所有权利。 为何进行复制? •将数据库从“主服务器”复制到“从服务器” – 数据的冗余副本奠定了高可用性的基础 – 通过在复制场中进行分布式查询来扩展 主 从 Web/应用服务器 写入和读取 读取 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在 存储引擎上提交,然 • 快速 • 如果主数据库停机有可 能丢失更改 •半同步 – MySQL 5.5+ - 在 MySQL 5.7 中进行了 增强 – 串行:主数据库等待 从数据库记录更改并 将更改刷新到磁盘, 然后以并行方式提交 到存储引擎并向应用 程序发送确认 • 中度延迟 • 无损 (MySQL 5.7) •同步 – 仅 MySQL Cluster 提供 – 串行:主数据库等待更 改应用于所有从数据0 码力 | 40 页 | 2.19 MB | 1 年前3
 MySQL 企业版功能介绍人工干预或定制工具。 MySQL 企业级可扩展性 MySQL 企业级可扩展性可帮助您满足不断增长的用户、查询和数据负载对性能和可扩展性的要 求。MySQL 线程池提供了一个高效的线程处理模型,旨在降低客户端连接和语句执行线程的管 理开销。 MySQL 企业级身份验证 MySQL 企业级身份验证提供了随时可用的外部身份验证模块,可轻松集成到现有安全基础架构 中,包括 Linux 通过加密数据库的物理文件来实现静止数据加密。数据在写 入存储之前实时自动加密,从存储读取时自动解密。因此,黑客和恶意用户无法从表空间文件、 数据库备份或磁盘中读取敏感数据。MySQL 企业级 TDE 使用双层加密密钥体系结构,包括主加 密密钥和表空间密钥,可轻松实现密钥管理和轮换。 MySQL 企业级加密 为在整个生命周期全程保护敏感数据,MySQL 企业级加密提供非对称加密(公钥加密)的行业 标准功能。MySQL0 码力 | 6 页 | 509.78 KB | 1 年前3
 MySQL 8.0.17 调优指南(openEuler 20.09)择,基础软件的选择;从小的方面来说,包括每个子系统的设计,算法选择,如何使 用编译器的选项,如何发挥硬件最大的性能等等。 在性能优化时,我们必须遵循一定的原则,否则,有可能得不到正确的调优结果。主 要有以下几个方面: ● 对性能进行分析时,要多方面分析系统的资源瓶颈所在,因为系统某一方面性能 低,也许并不是它自己造成的,而是其他方面造成的。如CPU利用率是100%时, 很可能是内存容量太小,因为CPU忙于处理内存调度。 09对kernel进行了优化,具体优化项如下: 内核优化项 优化目的 Config优化 关闭refcount_full。 idle_balance定制特性 新增STEAL流程,如果idle_balance迁移线程失败会触 发,STEAL流程简化了判断逻辑,会从sd_llc上的任意 overload的cpu迁移进程过来,从而提升cpu利用率。 方法 kernel的优化在openEuler 20.09中默认是关闭的,需要用以下步骤开启:0 码力 | 11 页 | 223.31 KB | 1 年前3
 谈谈MYSQL那点事sort_buffer_size 512K 128M 每个线程的排序缓存大小,一般按照内存可 以设置为 2M 以上,推荐是 16M ,该选项对 排序 order by , group by 起作用 record_buffer 128K 64M 每个进行一个顺序扫描的线程为其扫描的每 张表分配这个大小的一个缓冲区,可以设置 为 2M 以上 table_cache 64 1024 为所有线程打开表的数量。增加该值能增加 mysqld0 码力 | 38 页 | 2.04 MB | 1 年前3
 TokuDB索引结构a. Root节点分裂前 b. Root节点分裂后 分形树Insert/Update/Delete a. B+树顺序插入热点数据分布图 b. B+树随机插入热点数据分布图 分形树Flush线程 分形树Point-Query 分形树Range-Query 分形树范围查询 B+树范围查询 TokuDB事务(一) Page.1 Page.2 Page.3 Memory Disk0 码力 | 19 页 | 1.97 MB | 1 年前3
 MySQL高可用 - 多种方案................................................................. 3 2 Lvs+Keepalived+Mysql 单点写入主主同步高可用方案 ...................................................... 3 2.1 方案简介 ........................ ................................................................................ 4 2.4.4 Mysql 的主主同步配置 .................................................................................... 4 2.4.5 ............................................................. 9 3 Lvs+Keepalived+Mysql 单点写入读负载均衡主主同步高可用方案 .................................. 9 3.1 方案简介 ...........................................0 码力 | 31 页 | 874.28 KB | 1 年前3
 MySQL 数据库架构灾难恢复解决方案ClusterSet Copyright @ 2021 Oracle and/or its affiliates. 13 / 55 一个或者多个MySQL InnoDB Cluster 副本连接到一个主MySQL InnoDB Cluster 高可用 (区域内的失败) RPO =0 RTO =秒级 (自动故障转移) 灾难恢复( 区域故障) RPO !=0 RTO =分钟或更长时间( Copyright @ 2021 Oracle and/or its affiliates. 灾难恢复 - 多区域 MySQL InnoDB Cluster RPO =0 RTO =秒级 多区域 多主数据库 3DC 需要非常稳定的广域网 写入性能受DC 之间的延迟影响 53 / 55 Copyright @ 2021 Oracle and/or its affiliates. 灾难恢复 0.24 :使skip-slave-start 成为全局、持久、只读的系统变量。 8.0.26 :组复制成员操作(主成员上可配置super_read_only) 8.0.26:指定用于记录View_change_log_event 的UUID 8.0.27:异步复制通道配置自动跟随主成员 Copyright @ 2021 Oracle and/or its affiliates. MySQL0 码力 | 52 页 | 3.07 MB | 1 年前3
 使用 Docker 建立 MySQL 集群第三步 配置一主一从集群 3.1 接下来启动另一个容器作为从数据库,因为镜像不支持在容器内进入 mysql 控制 台,所以依然需要把端口暴露出来以供局域网访问,但主数据库容易可以链接进 来作为一个可访问的主机 master_db。 docker run --name <从数据库名> -e MYSQL_ROOT_PASSWORD=<从数据库 root 密码> --link <主数据库容器名>:master_db vim 这样我们才能在容器内修改配置文件。 还有一种方法,就是我们在主数据库容器中操作,之后,使用 docker commit <主数据库容器名> mariadb 这样再创建的容器就包含 vi 了。 3.3 为讲述方便,现在假设:我们有了连个数据库,mdb1 和 mdb2, mdb1 我们作为主 数据库,mdb2 作为从数据库。 首先修改主数据库: docker exec -it mdb1 /bin/bash mdb1 同样的,把从数据库的 my.cnf 修改“server-id = 2”,需要是比主 server-id 大的数字,mdb2 同样需要重启。 3.4 使用客户端连接上主数据库,这里我使用的是 mysql workbench,从数据库因为 安全考虑并没有公开端口给主机,只能进入容器的 mysql 控制台进行操作。 在主数据库中执行 SQL 脚本: /*设定用于同步的账号、密码*/ grant replication0 码力 | 3 页 | 103.32 KB | 1 年前3
 Kubernetes Operator 实践 - MySQL容器化的基本原理 3. MySQL Operator 设计实践 4. 小结 搜狗商业平台 技术体系广 服务多迭代快 搜狗产品矩阵 商业平台 信息流广告 搜索广告 品牌广告 代理商 广告主 技术体系 CRM 广告平台 物料展现 审核平台 大数据平台 基础架构 Golang C++ JavaScript Java Python 质量要求高 业务响应快 故障恢复快 主从集群 • 支持 MySQL 集群高可用 • 支持 MySQL 集群弹性伸缩 • 支持 MySQL 5.5 & 5.7 Master Slave1 Slave2 MySQL 集群:1 主 2 从 MySQL 容器化系统架构 REST CLI Kubernetes Master API Server Scheduler Controller Manager NodeM • 从库故障 • 主库故障 集群切主 pod 都正常运行? 调度 pod k8s mha operator 重新调度 mha MHA 扩缩容 • 扩容:直接执行 • 缩容:集群 master 是谁? 判断条件: 缩容操作且 master 为 sts 最后一个 pod operator 执行 sts 扩缩容 判断 调用 mha 切主 否 是 pod 都正常运行?0 码力 | 42 页 | 4.77 MB | 1 年前3
 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波8核8G 8核16G 16核16G 16核64G 32核64G 32核128G 一主一从 分片集群 一主多从 SATA-SSD PCIE-SSD 大容量磁盘SAS 配置 DB架构 硬件选型 机房 A机房 B机房 C机房 D机房 容器化之后的MySQL就是一个私有DB云 主 从 集 群 创 建 分 片 集 群 创 建 集 成 高 可 用 方 案 巨 细 无 遗0 码力 | 32 页 | 7.11 MB | 1 年前3
共 10 条
- 1
 













