如何用 MySQL 构建全方位高可用应用4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在 存储引擎上提交,然 后将事务发送到从数 据库 • 快速 • 如果主数据库停机有可 能丢失更改 •半同步 – MySQL 5.5+ - 在 MySQL 5.7 中进行了 增强 – 串行:主数据库等待 从数据库记录更改并 然后以并行方式提交 到存储引擎并向应用 程序发送确认 • 中度延迟 • 无损 (MySQL 5.7) •同步 – 仅 MySQL Cluster 提供 – 串行:主数据库等待更 改应用于所有从数据 库后,再向应用程序 发送确认 • 较长的延迟 • 如果采用主动/主动模式, 则最适合小型事务处理 • 无损 异步复制与同步复制 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 Clusterware 将服务器场中 的服务器组合为一个群集 – 以 Oracle RAC 为核心 •Oracle Cluster 12c 包括 MySQL Server 代理 •对 MySQL 数据库进行计划内迁移 和自动故障转移 – 对使用受管 VIP 的应用程序不可见 – 共享存储,一次 1 个实例 4/16/2017 在 Oracle Clusterware 上部署 MySQL 17 版权所有0 码力 | 40 页 | 2.19 MB | 1 年前3
谈谈MYSQL那点事每个线程的排序缓存大小,一般按照内存可 以设置为 2M 以上,推荐是 16M ,该选项对 排序 order by , group by 起作用 record_buffer 128K 64M 每个进行一个顺序扫描的线程为其扫描的每 张表分配这个大小的一个缓冲区,可以设置 为 2M 以上 table_cache 64 1024 为所有线程打开表的数量。增加该值能增加 mysqld 要求的文件描述符的数量。 MySQL key_buffer_size 8M 512M 用来存放索引区块的缓存值 , 建议 128M 以上,不要大于内存的 30% read_buffer_size 128K 64M 用来做 MyISAM 表全表扫描的缓冲大 小 . 为从数据表顺序读取数据的读操 作保留的缓存区的长度 myisam_sort_buffer_size 16M 128M 设置 , 恢复 , 修改表的时候使用的缓冲 大小,值不要设的太大 innodb_flush_log_at_trx _commit 1 0 0 代表日志只大约每秒写入日志文件并且日志文件 刷新到磁盘 ; 1 为执行完没执行一条 SQL 马上 commit; 2 代表日志写入日志文件在每次提交 后 , 但是日志文件只有大约每秒才会刷新到磁盘上 . 对速度影响比较大,同时也关系数据完整性 innodb_log_file_size 8M 512M 在日志组中每个日志文件的大小 , 一般是 i0 码力 | 38 页 | 2.04 MB | 1 年前3
Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波MySQL+DB中间件解决水平拆分问题。 ■ MySQL水平拆分的引入会使数据库实例数量大幅上升,传统运维手段维护成本高,交付能力差。 MySQL数据库为何要Docker化 1.MySQL数据库迅速爆炸式增长后,服务器规模不断增大,快速部署是个问题。 2.随着业务的发展,扩容数据库的不方便不快捷,也是个问题。 3.大量数据量小的数据库系统也单独部署在物理机,浪费问题突出。 4.DBA的数据库自动化标准化运维的需求。 挂载到容器内的方式(每个 实例对应一个文件夹)。 这种方式的优势是IO性能最佳,随之而来的缺点是磁盘容量不好估算,有可能在使用了一段时间后出现磁 盘空间不足的问题,这个时候则会启动迁移扩容的流程。 已经在和提供高密度IO分布式存储解决方案厂商接触,计划测试平台接入分布式存储的方案。 磁盘挂载 3301 3302 3303 3304 3305 宿主机磁盘 集群扩容 本地CPU、 memory、disk 中间配置中心 Alert Monitor sms WeCha t mail TCMHA 管理分为两个部分: • MariaDB、MySQL5.6的高可用管理是基于开源 工具MHA定制开发后的工具完成的,该工具支持 了MariaDB的gtid、更完善的哨兵检测机制、对 接了DB中间件等定制化功能。 • MySQL5.7的MGR复制集群是我们自己写的一套 高可用组件配合DB中间,实现无感知的高可用切0 码力 | 32 页 | 7.11 MB | 1 年前3
MySQL 企业版功能介绍DBA 快速发现性能调优机会。使用 MySQL Query Analyzer,开发人员能够: 迅速识别导致应用性能下降的问题最严重的查询 使用高级搜索排除特定的查询问题,如全表扫描和坏索引 直观地将选定时间段内的查询执行与 MySQL 服务器活动关联起来 深入了解详细的查询统计信息,迅速确定查询发生问题的原因 4 ORACLE 产品介绍0 码力 | 6 页 | 509.78 KB | 1 年前3
MySQL高可用 - 多种方案数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求。本方案实现的功能是当网络有问题、 mysql 有问题、服务器宕机、keepalived 服务停止后,服务器能自动跳转到备用机, 当主服务器服务启动起来后会自动切换回来。 2.2 方案架构图 2.3 方案优缺点 优点: 安装配置简单,实现方便,高可用效率好,可以根据服务与系统的可用性 sorry_server 来实现写入数据库为单点的需求,读负载均衡通过 lvs 实现,读能自由 的实现负载均衡和故障切换。本方案实现的功能是当网络有问题、mysql 有问题、 服务器宕机、keepalived 服务停止后,服务器能自动跳转到备用机,当主服务器服务 启动起来后会自动切换回来。 3.2 方案架构图 3.3 方案优缺点 优点: 实现方便,高可用效率好,可以根据服务与系统的可用性多方面进行切换。 sorry_server,因此如果要实现指 定条件替换或者不替换需要通过其他方式实现,比如:临时更改 mysql 的端口等。 安装配置比单写入稍微复杂,需要另外一个 VIP。管理比单写入复杂。 主切换后从需要手工切换。 切换需要 1s 左右的时间。 3.4 适用场景 这个方案适用于只有两台数据库服务器(后端有多个从服务器也是可以的, 只是要手工切换从服务器比较麻烦,后面会介绍的0 码力 | 31 页 | 874.28 KB | 1 年前3
MySQL 数据库架构灾难恢复解决方案亿美元。该航空公司最终在停电当天取消 了约1,000 个航班,并在接下来的两天内停飞了另外1,000 个航班。 由于取消约130 个航班和延误200 个航班,成千上万的乘客滞留在世界各 地。 在法国云服务irm 的故障后, 数百万个网站下线了。Anger 预计将使公司 损失超过1.05 亿欧元。 数以百万计的银行客户无法访问在线帐户。银行花了将近2天的时间才恢 复正常运作。 5 / 55 Copyright @ InnoDB 集群状态更改 • 异步复制在主更改后自动重新配置 Copyright @ 2021 Oracle and/or its affiliates. 39 / 55 主集群 主成员崩溃/分区 - 自动! • 当集群中有新当选的主成员时 • 适用于主集群和副本集群中的故障 自动处理 InnoDB 集群状态更改 • 异步复制在主更改后自动重新配置 Copyright @ 2021 40 / 55 副本集群主成员崩溃/分区 - 自动! • 当集群中有新当选的主成员时 • 适用于主集群和副本集群中的故障 自动处理 InnoDB 集群状态更改 • 异步复制在主更改后自动重新配置 Copyright @ 2021 Oracle and/or its affiliates. 改主 - 更改正常系统上的主集群 41 / 55 切换 • 一个可以完成所有操作的命令:0 码力 | 52 页 | 3.07 MB | 1 年前3
使用 Docker 建立 MySQL 集群docker.com 下下来的虽然名字是 index.html,但其实是脚本文件,所以我们 chmod +x index.html 这样我们就可以执行这个文件: sudo ./index.html 安装完成后根据提示,可以将当前用户加到 docker 用户组里,这样就不用每次 执行 docker 都需要 sudo 了。 sudo usermod -aG docker <你的用户名> 对于 Centos6 mysql 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 下面是我的 run 命令: docker run --name mdb10 码力 | 3 页 | 103.32 KB | 1 年前3
MySQL 8.0.17 调优指南(openEuler 20.09)即分析工具本身运行可能会导致系 统某方面的资源瓶颈情况更加严重。 MySQL 8.0.17 调优指南(openEuler 20.09) 1 调优概述 2020-10-15 1 ● 必须保证调优后的程序运行正确。 ● 调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中 去。 ● 性能调优不能以牺牲代码的可读性和可维护性为代价。 1.3 调优思路 性能优化首先要较为精准 kernel的优化在openEuler 20.09中默认是关闭的,需要用以下步骤开启: 步骤1 打开/etc/grub2-efi.cfg文件,在内核启动行增加参数sched_steal_node_limit=8,保存 后重启系统生效。 步骤2 设置成STEAL模式: echo STEAL > /sys/kernel/debug/sched_features ----结束 MySQL 8.0.17 调优指南(openEuler0 码力 | 11 页 | 223.31 KB | 1 年前3
TokuDB索引结构message到msg_buffer; – d. 返回 分形树Insert/Update/Delete 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-Query0 码力 | 19 页 | 1.97 MB | 1 年前3
Kubernetes Operator 实践 - MySQL容器化operator 的实现 • mha-manager 部署在 operator 容器中 • mha-node 为边车容器 • 镜像中设置 ssh 免密认证 Operator 在集群成员都正常运行 后,启动 manager 进程 mysql-pod-1 app-container mysql init-container mha-node data-dumper mysql-pod-20 码力 | 42 页 | 4.77 MB | 1 年前3
共 10 条
- 1













