如何用 MySQL 构建全方位高可用应用
4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 15 •预安装且预配置 •完全集成且经过 QA 测试 •单点支持 •通过 VM 重新启动故障实例自动 恢复 •将正在运行的实例实时迁移到新 主机 适用于 MySQL 的 Oracle VM 模板 Oracle VM 服务器 Oracle VM 服务器池 ocfs2 Oracle VM Manager iSCSI 具有持久性的内存优化表 • 延迟时间短且可预测,访问时间控制在一定范围内 实时 • 自动分片、多主 • 符合 ACID,OLTP + 实时分析 高伸缩性,读取 + 写入 • 无共享,无单点故障 • 自我修复 + 联机运行 99.999% 可用性 • 关键字/值 + 复杂的关系查询 • SQL + Memcached + JavaScript + Java + HTTP/REST & C++ SQL + NoSQL 2015,Oracle 和/或其附属公司。保留所有权利。 何时考虑采用 MySQL Cluster 可伸缩性需求 利用分片改善写入性能? 延迟要求 每毫秒的成本? 正常运行时间要求 每分钟的停机成本? 故障与维护? 应用程序敏捷性 开发者语言和框架? SQL 还是 NoSQL? 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。0 码力 | 40 页 | 2.19 MB | 1 年前3使用 Docker 建立 MySQL 集群
docker <你的用户名> 对于 Centos6,首先要把企业常用软件包的软件源安装上 yum install epel-release 然后再 yum install docker-io 第二步 运行 Mariadb 容器 首先要将数据镜像拉下来 docker pull mariadb:latest 注意,如果不加:latest 标签,docker 会把所有的镜像版本都拉下来。 然后我们就可 <映射到本机的端口>:3306 4,-v <本机的数据库存放目录>:/var/lib/mysql 5,设定 MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE 环境变量可以使容器在 运行时同时创建你所需要的数据库和带有全部权限的用户及其对应密码 6,设定 TERM 环境变量的值可以解决容器不能进入 mysql 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 下面是我的 run 命令: docker run --name mdb1 \ -p 13306:3306 \ -v /home/wonders/docker_mdb1_data:/var/lib/mysql0 码力 | 3 页 | 103.32 KB | 1 年前3Kubernetes 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-2 主库故障 集群切主 pod 都正常运行? 调度 pod k8s mha operator 重新调度 mha MHA 扩缩容 • 扩容:直接执行 • 缩容:集群 master 是谁? 判断条件: 缩容操作且 master 为 sts 最后一个 pod operator 执行 sts 扩缩容 判断 调用 mha 切主 否 是 pod 都正常运行? 重新调度 mha MGR0 码力 | 42 页 | 4.77 MB | 1 年前3MySQL 8.0.17 调优指南(openEuler 20.09)
由于在进行系统性能分析时,性能分析工具本身会占用一定的系统资源,如CPU 资源、内存资源等等。我们必须注意到这点,即分析工具本身运行可能会导致系 统某方面的资源瓶颈情况更加严重。 MySQL 8.0.17 调优指南(openEuler 20.09) 1 调优概述 2020-10-15 1 ● 必须保证调优后的程序运行正确。 ● 调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中 去。 ● 性能调 2020-10-15 8 3.10 mysql 进程绑核 目的 将mysql的进程绑定到指定CPU上,同时内存使能interleave。 方法 使用numatl命令进行设置,其中0-92是mysql进程要运行的CPU序号,my.cnf是mysql 的配置文件路径。在华为鲲鹏920 4826处理器 + Huawei TM280 25G网卡上为mysql 绑定93个核能获得最佳性能。 numactl -C0 码力 | 11 页 | 223.31 KB | 1 年前3MySQL高可用 - 多种方案
puppet Authkerys 的配置 这个文件用来配置密码认证方式,支持3种认证方式,crc,md5和sha1, 从左到右安全性越来越高,消耗的资源也越多。因此如果 heartbeat 运行在安全的网路之上,比如私网,那么可以将验证方式设置成 crc, master 和 backup 的 authkeys 配置一样。我的 authkeys 文件配置如下: vim /etc/ha.d/authkeys 模块。安 装命令如下: yum install -y drbd83 kmod-drbd83 安装后使用 lsmod | grep drbd 命令查看是否加载 drbd 模块,如果没有加载需 要手动运行命令加载,命令如下: insmod drbd/drbd.ko 或者 modprobe drbd 5.5.3 DRBD 的配置 配置之前需要先使用 fdisk 对/dev/sdb 进行分区。 dbserver2 Authkerys 的配置 这个文件用来配置密码认证方式,支持3种认证方式,crc,md5和sha1, 从左到右安全性越来越高,消耗的资源也越多。因此如果 heartbeat 运行在安全的网路之上,比如私网,那么可以将验证方式设置成 crc, master 和 backup 的 authkeys 配置一样。我的 authkeys 文件配置如下: vim /etc/ha.d/authkeys0 码力 | 31 页 | 874.28 KB | 1 年前3MySQL 企业版功能介绍
企业版提供了全面的高级功能、管理工具和技术支持,实现了高水平的 MySQL 可扩展性、安全性、可靠性和无故障运行时间。 MySQL 企业版可在开发、部署和管理业务关键型 MySQL 应用的过程中降低风险、削减成本和减 少复杂性。MySQL 企业版具有以下独特优势: 使用 Oracle MySQL 服务云轻松设置、运行和管理云中的 MySQL 使用 MySQL 分组复制来确保数据库的高可用性0 码力 | 6 页 | 509.78 KB | 1 年前3MySQL 数据库架构灾难恢复解决方案
forcePrimaryCluster() • 将重新配置其它副本集群复制 脑裂警告 • 无法连接到其他集群的本地路由器将无法了解新 拓扑 • 如果数据中心被网络分区, 它将继续作为主数据 库运行 Copyright @ 2021 Oracle and/or its affiliates. 44 / 55 数据中心崩溃/分区- forcePrimaryCluster() 故障转移到另一个集群 forcePrimaryCluster() • 将重新配置其它副本集群复制 脑裂警告 • 无法连接到其他集群的本地路由器将无法了解新 拓扑 • 如果数据中心被网络分区, 它将继续作为主数据 库运行 Copyright @ 2021 Oracle and/or its affiliates. 数据中心崩溃/分区 - 路由器集成 45 / 55 路由器集成 • 路由器将了解新的拓扑结构并重定向流量0 码力 | 52 页 | 3.07 MB | 1 年前3Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波
•提供两种API: •Docker API的封装,用于创建,删除,修改。 •集群管理API,用于集群管理。 •Scheduler调度:选择最优节点创建容器。 •Agent:用于连接监控模块,上报系统运行状况。 GRPC API Schedule Filter Strategy Docker API Manger 分布式监控 Node Docker Docker Docker Docker0 码力 | 32 页 | 7.11 MB | 1 年前3
共 8 条
- 1