Kubernetes Operator 实践 - MySQL容器化Kubernetes Operator 实践 —— MySQL 容器化 刘林 搜狗资深工程师 关于我 搜狗商业平台研发部 资深开发工程师 l 主要从事商业平台研发工作,在构建高性能、高可用大规模 系统方面有丰富的实践经验 l 目前专注于云计算、DevOps 等相关领域,负责搜狗商业云 平台的设计研发工作 刘林 1. 背景介绍 2. Operator 的基本原理 3. MySQL BizNginx (Load Balancer) Kafka Zookeeper etcd AppEngine(Resin/Tomcat…) 统一服 务管理 Kubernetes 模板管理 自动化测试 部署中心 服务发现 灰度发布 监控中心 日志系统 PaaS SaaS 编 译 发 布 授 权 监 控 IaaS Registry SOA服务框架 DevOps 测 试 Cluster2 Node Node Node Node 商业云平台 BizCloud • 弹性伸缩能力不足 • 机器资源利用率不高 • 服务管理复杂 问题 有状态服务的需求越来越多 有状态服务容器化 1. 背景介绍 2. Operator 的基本原理 3. MySQL Operator 设计实践 4. 小结 无状态服务 服务调度 有状态服务集群 服务调度 状态保存 集群管理 有状态服务0 码力 | 42 页 | 4.77 MB | 1 年前3
Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波《MySQL 容器化部署实践》 演讲者/王晓波 背景 ■ 同程旅游早期的数据库都以单库的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 DB架构 硬件选型 机房 A机房 B机房 C机房 D机房 容器化之后的MySQL就是一个私有DB云 主 从 集 群 创 建 分 片 集 群 创 建 集 成 高 可 用 方 案 巨 细 无 遗 的 监 控 项 精 美 的 图 形 展 示 便 捷 的 告 警 管 理 慢 日 志 分 析 及 查 看 自 动 化 备 份 资 源 池 管 理 高 可 用 切 换 集 群 节 点0 码力 | 32 页 | 7.11 MB | 1 年前3
如何用 MySQL 构建全方位高可用应用自动分化散式的回复,冲突处理,群组 成员管理 和分散式协议.” • 能为使用者做什么? – 免于处理资料库的故障移转. – 提供容错能力. – 使我们能设定在群组中所有的资料库都能更新. – 自动化群组设定 (在宕机时,失败时,和重新连线时的处理). – 提供高可用复制的资料库. – 自动分发协调(确保不会有脑裂和讯息丢失). – 较少管理工作负担, 代表更大的生产力! 19 2017/4/16 24 • MySQL Replication • Shared Storage • Group Replication • MySQL Cluster MySQL Cluster 概述 • 具有持久性的内存优化表 • 延迟时间短且可预测,访问时间控制在一定范围内 实时 • 自动分片、多主 • 符合 ACID,OLTP + 实时分析 高伸缩性,读取 + 写入 • 无共享,无单点故障 • 自我修复 主动-主动异地复制 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 MySQL Cluster 数据节点 Master –Slave Replication •内存优化表 – 持久 – 可与基于磁盘的表混合使用 •大量并发 OLTP •通过分布式联接支持分析 •通过并行表扫描支持非索引搜索 •MySQL Cluster 7.4 DBT2 FlexAsych – 2 亿次0 码力 | 40 页 | 2.19 MB | 1 年前3
MySQL 数据库架构灾难恢复解决方案和专家带来了大量工作,他 们花时间自动化和集成他们的定制架构 Copyright @ 2021 Oracle and/or its affiliates. 8 / 55 Present - Solutions! 2016 - M ySQL InnoDB Cluster MySQL 组复制:自动成员身份更改、网络分区处理、一致性... MySQL Shell 提供强大的界面,有助于自动化和集成所有组件 ClusterSet 成为可能的复制特性: 8.0.22 :异步复制通道的自动连接故障转移 8.0.23 :使用组复制的异步复制通道进行自动连接故障转移 8.0.24 :使skip-slave-start 成为全局、持久、只读的系统变量。 8.0.26 :组复制成员操作(主成员上可配置super_read_only) 8.0.26:指定用于记录View_change_log_event 的UUID 8.0.27:异步复制通道配置自动跟随主成员0 码力 | 52 页 | 3.07 MB | 1 年前3
MySQL 企业版功能介绍Query Analyzer 查明影响数据库性能的 SQL 代码 使用超过 225 个 MySQL 顾问程序实施 MySQL 优秀实践 通过 MySQL Workbench 以可视化方式设计、开发、管理和迁移数据库 使用 MySQL Workbench 迁移向导将数据库迁移至 MySQL Oracle MySQL 服务云 Oracle MySQL 云服务提供了一个安全、经济高效的企业级 用现有安全规则和流程。 MySQL 企业级透明数据加密 (TDE) MySQL 企业级透明数据加密 (TDE) 通过加密数据库的物理文件来实现静止数据加密。数据在写 入存储之前实时自动加密,从存储读取时自动解密。因此,黑客和恶意用户无法从表空间文件、 数据库备份或磁盘中读取敏感数据。MySQL 企业级 TDE 使用双层加密密钥体系结构,包括主加 密密钥和表空间密钥,可轻松实现密钥管理和轮换。 语句活动与批准的白名单不匹配。 MySQL 企业级审计 借助 MySQL 企业级审计,企业可以快速无缝地在现有应用中添加基于策略的审计合规性。您可 以动态启用用户级活动日志、实施基于活动的策略、管理审计日志文件以及将 MySQL 审计集成 到 Oracle 和第三方解决方案中。 MySQL Enterprise Monitor MySQL Enterprise Monitor 和 MySQL Query0 码力 | 6 页 | 509.78 KB | 1 年前3
MySQL 8.0.17 调优指南(openEuler 20.09)MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将 所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了 双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其 是开放源码这一特点,一般中小型网站的开发都选择 MySQL作为网站数据库。 1.2 调优原则 BIOS配置 2.1 BIOS 配置 目的 对于不同的硬件设备,通过在BIOS中设置一些高级选项,可以有效提升服务器性能。 方法 步骤1 关闭SMMU。 说明 此优化项只在非虚拟化场景使用,在虚拟化场景,则开启SMMU。 1. 重启服务器过程中,单击Delete键进入BIOS,选择“Advanced > MISC Config”,单击Enter键进入。 2. 将“Support Smmu”设置为“Disable” overload的cpu迁移进程过来,从而提升cpu利用率。 方法 kernel的优化在openEuler 20.09中默认是关闭的,需要用以下步骤开启: 步骤1 打开/etc/grub2-efi.cfg文件,在内核启动行增加参数sched_steal_node_limit=8,保存 后重启系统生效。 步骤2 设置成STEAL模式: echo STEAL > /sys/kernel/debug/sched_features0 码力 | 11 页 | 223.31 KB | 1 年前3
MySQL高可用 - 多种方案.................................................................................... 31 文件状态 [ ] 草稿 [ √ ] 正式发布 [ ] 正在修改 名称 mysql 高可用方案探究 作者 飞鸿无痕 版本 V1.0 日期 2012-09-04 博客地址 Make make install 4.5.5 Heartbeat 的配置 Hearbeat 的配置主要包括三个配置文件,authkeys,ha.cf 和 haresources 的 配置,下面就分别来看! Hosts 文件的配置 需要在 hosts 文件中添加 master 和 backup 主机,加快节点间的通信 Master 和 backup 的 hosts 节点添加的内容一样,我的配置添加如下内 puppet Authkerys 的配置 这个文件用来配置密码认证方式,支持3种认证方式,crc,md5和sha1, 从左到右安全性越来越高,消耗的资源也越多。因此如果 heartbeat 运行在安全的网路之上,比如私网,那么可以将验证方式设置成 crc, master 和 backup 的 authkeys 配置一样。我的 authkeys 文件配置如下: vim /etc/ha.d/authkeys0 码力 | 31 页 | 874.28 KB | 1 年前3
谈谈MYSQL那点事数据存储方式简单,使用 B+ Tree B+ Tree 进行索引 进行索引 • 使用三个文件定义一个表: 使用三个文件定义一个表: .MYI .MYD .frm .MYI .MYD .frm • 少碎片、支持大文件、能够进行索引压缩 少碎片、支持大文件、能够进行索引压缩 • 二进制层次的文件可以移植 二进制层次的文件可以移植 (Linux (Linux Windows) Windows) Windows) • 访问速度飞快,是所有 访问速度飞快,是所有 MySQL MySQL 文件引擎中速度最快的 文件引擎中速度最快的 • 不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • Table level lock Table level lock ,性能稍差,更适合读取多的操作 ,性能稍差,更适合读取多的操作 InnoDB InnoDB 每个进行一个顺序扫描的线程为其扫描的每 张表分配这个大小的一个缓冲区,可以设置 为 2M 以上 table_cache 64 1024 为所有线程打开表的数量。增加该值能增加 mysqld 要求的文件描述符的数量。 MySQL 对每个唯一打开的表需要 2 个文件描述符。 服务优化 服务优化 MyISAM MyISAM 选项 选项 选项 缺省值 推荐值 说明 key_buffer_size 8M 512M 用来存放索引区块的缓存值0 码力 | 38 页 | 2.04 MB | 1 年前3
使用 Docker 建立 MySQL 集群最新版本,apt-get 中版本较老。 首先获取安装脚本: wget https://get.docker.com 下下来的虽然名字是 index.html,但其实是脚本文件,所以我们 chmod +x index.html 这样我们就可以执行这个文件: sudo ./index.html 安装完成后根据提示,可以将当前用户加到 docker 用户组里,这样就不用每次 执行 docker 都需要 sudo 了。 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 下面是我的 run 命令: docker run --name mdb1 3.2 接下来就需要配置两个数据库了,前提工作是镜像中并没有自带 vi,所以在两 个容器内都需要: apt-get update apt-get install vim 这样我们才能在容器内修改配置文件。 还有一种方法,就是我们在主数据库容器中操作,之后,使用 docker commit <主数据库容器名> mariadb 这样再创建的容器就包含 vi 了。 3.3 为讲述方便,现在假设:我们有了连个数据库,mdb10 码力 | 3 页 | 103.32 KB | 1 年前3
TokuDB索引结构TokuMx: ft-index + MongoDB Server层代码 InnoDB TokuDB MyISAM MySQL Server层 MySQL Storage层 Linux 文件系统层 TokuDB特点 • 支持事务(ACID)的MySQL存储引擎 • 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作)0 码力 | 19 页 | 1.97 MB | 1 年前3
共 10 条
- 1













