 使用 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 1,-name <给容器取个好记的名称> 2,-e MYSQL_ROOT_PASSWORD =‘<给数据库一个 root 用户密码>’ 3,-p <映射到本机的端口>:3306 4,-v <本机的数据库存放目录>:/var/lib/mysql 5,设定 MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE 环境变量可以使容器在 运行时同时创建你所需要的数据库和带有全部权限的用户及其对应密码 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 下面是我的 run 命令: docker run --name mdb1 \0 码力 | 3 页 | 103.32 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 1,-name <给容器取个好记的名称> 2,-e MYSQL_ROOT_PASSWORD =‘<给数据库一个 root 用户密码>’ 3,-p <映射到本机的端口>:3306 4,-v <本机的数据库存放目录>:/var/lib/mysql 5,设定 MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE 环境变量可以使容器在 运行时同时创建你所需要的数据库和带有全部权限的用户及其对应密码 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 下面是我的 run 命令: docker run --name mdb1 \0 码力 | 3 页 | 103.32 KB | 1 年前3
 MySQL高可用 - 多种方案haresources 用来设置 master 的主机名、虚拟 IP、服务以及磁盘挂载等, master 和 backup 的配置是一样的,下面的 mysqld 需要做成服务,放在 /etc/rc.d/init.d/目录下,配置配置如下: vim /etc/ha.d/haresources dbserver 10.1.1.176/32/eth0 mysqld 4.5.6 Heartbeat 的启动 在启动 挂在后可以往/drbd 目录写入一些测试数据,看看是否能同步到从节点上。  迁移 mysql 的数据到 drdb(假设你的 mysql 已经在该服务器上安装好了) DRBD 已经安装并且能正常同步了,那么我们接下来要做的就是将本机的 已安装的 mysql 的数据迁移到 drbd 上,这里为了简单就不考虑新安装数 据库的情形了,因为新安装的时候只需要将数据目录指定到 drbd 中并将 my dbserver2 的 mysql,/etc/rc.d/init.d/mysqld stop b) 在 dbserver1 上创建存放数据库数据的目录:mkdir /drbd/dbdata c) 在 dbserver1 将配置文件放到 drbd 目录中: mv /etc/my.cnf /drbd/dbdata/ 删除 dbserver2 上的/etc/my.cnf,rm -f /etc/my0 码力 | 31 页 | 874.28 KB | 1 年前3 MySQL高可用 - 多种方案haresources 用来设置 master 的主机名、虚拟 IP、服务以及磁盘挂载等, master 和 backup 的配置是一样的,下面的 mysqld 需要做成服务,放在 /etc/rc.d/init.d/目录下,配置配置如下: vim /etc/ha.d/haresources dbserver 10.1.1.176/32/eth0 mysqld 4.5.6 Heartbeat 的启动 在启动 挂在后可以往/drbd 目录写入一些测试数据,看看是否能同步到从节点上。  迁移 mysql 的数据到 drdb(假设你的 mysql 已经在该服务器上安装好了) DRBD 已经安装并且能正常同步了,那么我们接下来要做的就是将本机的 已安装的 mysql 的数据迁移到 drbd 上,这里为了简单就不考虑新安装数 据库的情形了,因为新安装的时候只需要将数据目录指定到 drbd 中并将 my dbserver2 的 mysql,/etc/rc.d/init.d/mysqld stop b) 在 dbserver1 上创建存放数据库数据的目录:mkdir /drbd/dbdata c) 在 dbserver1 将配置文件放到 drbd 目录中: mv /etc/my.cnf /drbd/dbdata/ 删除 dbserver2 上的/etc/my.cnf,rm -f /etc/my0 码力 | 31 页 | 874.28 KB | 1 年前3
 MySQL 企业版功能介绍的键值操作。  平台独立性让您可以灵活地在多个操作系统上开展开发和部署工作。  使用 MySQL 作为 Hadoop 和 Cassandra 的业务数据存储,支持大数据互操作性。 MySQL 企业级备份 MySQL 企业级备份能够执行 MySQL 数据库无阻塞联机备份。除了对所有 InnoDB 数据执行完整、 增量和部分备份以外,MySQL 还全面支持事务操作。并行执行的备份操作有助于快速完成备份; 还全面支持事务操作。并行执行的备份操作有助于快速完成备份; 此外,MySQL 企业级备份还支持多种压缩选项,可将备份映像减小 90%。恢复选项包括向后兼 容完整恢复、准确的一键式指定时间点恢复和专用于恢复一组特定对象的部分恢复。 MySQL 企业级高可用性 MySQL 企业级高可用性可帮助您满足一切应用的可用性需求,即便是极为严苛的任务关键型应 用。MySQL 分组复制通过内置分组成员管理、数据一致性保证、冲突检测和处理、节点故障检 冲突检测和处理、节点故障检 测和数据库故障切换相关操作提供原生高可用性,所有这些都无需人工干预或定制工具。 MySQL 企业级可扩展性 MySQL 企业级可扩展性可帮助您满足不断增长的用户、查询和数据负载对性能和可扩展性的要 求。MySQL 线程池提供了一个高效的线程处理模型,旨在降低客户端连接和语句执行线程的管 理开销。 MySQL 企业级身份验证 MySQL 企业级身份验0 码力 | 6 页 | 509.78 KB | 1 年前3 MySQL 企业版功能介绍的键值操作。  平台独立性让您可以灵活地在多个操作系统上开展开发和部署工作。  使用 MySQL 作为 Hadoop 和 Cassandra 的业务数据存储,支持大数据互操作性。 MySQL 企业级备份 MySQL 企业级备份能够执行 MySQL 数据库无阻塞联机备份。除了对所有 InnoDB 数据执行完整、 增量和部分备份以外,MySQL 还全面支持事务操作。并行执行的备份操作有助于快速完成备份; 还全面支持事务操作。并行执行的备份操作有助于快速完成备份; 此外,MySQL 企业级备份还支持多种压缩选项,可将备份映像减小 90%。恢复选项包括向后兼 容完整恢复、准确的一键式指定时间点恢复和专用于恢复一组特定对象的部分恢复。 MySQL 企业级高可用性 MySQL 企业级高可用性可帮助您满足一切应用的可用性需求,即便是极为严苛的任务关键型应 用。MySQL 分组复制通过内置分组成员管理、数据一致性保证、冲突检测和处理、节点故障检 冲突检测和处理、节点故障检 测和数据库故障切换相关操作提供原生高可用性,所有这些都无需人工干预或定制工具。 MySQL 企业级可扩展性 MySQL 企业级可扩展性可帮助您满足不断增长的用户、查询和数据负载对性能和可扩展性的要 求。MySQL 线程池提供了一个高效的线程处理模型,旨在降低客户端连接和语句执行线程的管 理开销。 MySQL 企业级身份验证 MySQL 企业级身份验0 码力 | 6 页 | 509.78 KB | 1 年前3
 MySQL 8.0.17 调优指南(openEuler 20.09)..............................................................................................3 3 操作系统调优............................................................................................... 双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其 是开放源码这一特点,一般中小型网站的开发都选择 MySQL作为网站数据库。 1.2 调优原则 性能调优从大的方面来说,在系统设计之初,需要考虑硬件的选择,操作系统的选 择,基础软件的选择;从小的方面来说,包括每个子系统的设计,算法选择,如何使 用编译器的选项,如何发挥硬件最大的性能等等。 在性能优化时,我们必须遵循一定的原则,否则,有可能得不到正确的调优结果。主 一般指的是CPU、内存、磁盘I/O方面的问题,分为服务器硬件瓶 颈、网络瓶颈(对局域网可以不考虑)。 操作系统 一般指的是Windows、UNIX、Linux等操作系统。例如,在进行性 能测试,出现物理内存不足时,虚拟内存设置也不合理,虚拟内 存的交换效率就会大大降低,从而导致行为的响应时间大大增 加,这时认为操作系统上出现性能瓶颈。 数据库 一般指的是数据库配置等方面的问题。例如,由于参数配置不合 理,0 码力 | 11 页 | 223.31 KB | 1 年前3 MySQL 8.0.17 调优指南(openEuler 20.09)..............................................................................................3 3 操作系统调优............................................................................................... 双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其 是开放源码这一特点,一般中小型网站的开发都选择 MySQL作为网站数据库。 1.2 调优原则 性能调优从大的方面来说,在系统设计之初,需要考虑硬件的选择,操作系统的选 择,基础软件的选择;从小的方面来说,包括每个子系统的设计,算法选择,如何使 用编译器的选项,如何发挥硬件最大的性能等等。 在性能优化时,我们必须遵循一定的原则,否则,有可能得不到正确的调优结果。主 一般指的是CPU、内存、磁盘I/O方面的问题,分为服务器硬件瓶 颈、网络瓶颈(对局域网可以不考虑)。 操作系统 一般指的是Windows、UNIX、Linux等操作系统。例如,在进行性 能测试,出现物理内存不足时,虚拟内存设置也不合理,虚拟内 存的交换效率就会大大降低,从而导致行为的响应时间大大增 加,这时认为操作系统上出现性能瓶颈。 数据库 一般指的是数据库配置等方面的问题。例如,由于参数配置不合 理,0 码力 | 11 页 | 223.31 KB | 1 年前3
 谈谈MYSQL那点事不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • Table level lock Table level lock ,性能稍差,更适合读取多的操作 ,性能稍差,更适合读取多的操作 InnoDB InnoDB 特点 特点 •使用 使用 Table Space Table Space 的方式来进行数据存储 的方式来进行数据存储 (ibdata1, ib_logfile0) MySQL 优化方式 优化方式 影响性能的因素 影响性能的因素 应用程序 应用程序 查询 查询 事务管理 事务管理 数据库设计 数据库设计 数据分布 数据分布 网络 网络 操作系统 操作系统 硬件 硬件  使用好的硬件,更快的硬盘、大内存、多核 使用好的硬件,更快的硬盘、大内存、多核 CPU CPU ,专业的 ,专业的 存储服务器( 存储服务器( NAS NAS 、 、 像性别、状态值等等建立索引没有意义 像性别、状态值等等建立索引没有意义  字段唯一,最少,不可为 字段唯一,最少,不可为 null null  对大数据量表建立聚集索引,避免更新操作带来的碎片。 对大数据量表建立聚集索引,避免更新操作带来的碎片。  尽量使用短索引,一般对 尽量使用短索引,一般对 int int 、 、 char/varchar char/varchar 、 、 date/tim0 码力 | 38 页 | 2.04 MB | 1 年前3 谈谈MYSQL那点事不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • Table level lock Table level lock ,性能稍差,更适合读取多的操作 ,性能稍差,更适合读取多的操作 InnoDB InnoDB 特点 特点 •使用 使用 Table Space Table Space 的方式来进行数据存储 的方式来进行数据存储 (ibdata1, ib_logfile0) MySQL 优化方式 优化方式 影响性能的因素 影响性能的因素 应用程序 应用程序 查询 查询 事务管理 事务管理 数据库设计 数据库设计 数据分布 数据分布 网络 网络 操作系统 操作系统 硬件 硬件  使用好的硬件,更快的硬盘、大内存、多核 使用好的硬件,更快的硬盘、大内存、多核 CPU CPU ,专业的 ,专业的 存储服务器( 存储服务器( NAS NAS 、 、 像性别、状态值等等建立索引没有意义 像性别、状态值等等建立索引没有意义  字段唯一,最少,不可为 字段唯一,最少,不可为 null null  对大数据量表建立聚集索引,避免更新操作带来的碎片。 对大数据量表建立聚集索引,避免更新操作带来的碎片。  尽量使用短索引,一般对 尽量使用短索引,一般对 int int 、 、 char/varchar char/varchar 、 、 date/tim0 码力 | 38 页 | 2.04 MB | 1 年前3
 运维上海2017-从理论到实践,深度解析MySQL Group Replication -徐春阳MRG实践经验 • 支持多节点并发执行事务。如何保证从各个节点并发执行 的事务在每个节点以相同的顺序被应用/执行.------paxos协 议的功能。 • 自动地事务冲突检测。节点之间不能”同时”操作主键相同 记录,如果冲突,只有一个节点成功。------冲突检测。 • 节点故障容忍度强。多数派原则,超过半数节点存活的集 群依然整体可用。------paxos协议。 • 更高级别地保证数据的一致性 MGR�������������� ����������! MRG原理 MGR vs Semi-Sync MGR实践经验 Group_replication_bootstrap_group参数须谨慎 DDL操作注意事项 当心secondary节点变成可写节点 规避大事务 Secondary��������! ������Single primary ����secondary����! ��my group_replicaiton�/����������“� �”���������8.0������5.7��������5.7� �������bug��������������.! DDL操作注意事项 当心secondary节点变成可写节点 规避大事务 group_replication_bootstrap_group参数须谨慎 ����group_replicati0 码力 | 32 页 | 9.55 MB | 1 年前3 运维上海2017-从理论到实践,深度解析MySQL Group Replication -徐春阳MRG实践经验 • 支持多节点并发执行事务。如何保证从各个节点并发执行 的事务在每个节点以相同的顺序被应用/执行.------paxos协 议的功能。 • 自动地事务冲突检测。节点之间不能”同时”操作主键相同 记录,如果冲突,只有一个节点成功。------冲突检测。 • 节点故障容忍度强。多数派原则,超过半数节点存活的集 群依然整体可用。------paxos协议。 • 更高级别地保证数据的一致性 MGR�������������� ����������! MRG原理 MGR vs Semi-Sync MGR实践经验 Group_replication_bootstrap_group参数须谨慎 DDL操作注意事项 当心secondary节点变成可写节点 规避大事务 Secondary��������! ������Single primary ����secondary����! ��my group_replicaiton�/����������“� �”���������8.0������5.7��������5.7� �������bug��������������.! DDL操作注意事项 当心secondary节点变成可写节点 规避大事务 group_replication_bootstrap_group参数须谨慎 ����group_replicati0 码力 | 32 页 | 9.55 MB | 1 年前3
 MySQL 数据库架构灾难恢复解决方案:异步复制通道的自动连接故障转移 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:异步复制通道配置自动跟随主成员 Copyright 仅打开读取流量 写入将被拒绝 当目标集群为主集群时: 写入端口打开 特性: 可配置每个路由器实例 可以在mysqlsh 中在线更改配置 部署 2 种类型的路由器: • 以“主”为目标以将写入操作发送到“主数据库” • 定义目标集群以便本地读取 INVALIDATED 无效集群仍可用于只读( 可自定义) 路由器集成- 3DC Copyright @ 2021 Oracle and/or 异步复制在主更改后自动重新配置 Copyright @ 2021 Oracle and/or its affiliates. 改主 - 更改正常系统上的主集群 41 / 55 切换 • 一个可以完成所有操作的命令: setPrimaryCluster() • 集群之间的异步复制通道会自动重新配置 • 保证一致性 • 如果需要, 所有路由器将立即重定向( 取决于 目标模式) Copyright0 码力 | 52 页 | 3.07 MB | 1 年前3 MySQL 数据库架构灾难恢复解决方案:异步复制通道的自动连接故障转移 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:异步复制通道配置自动跟随主成员 Copyright 仅打开读取流量 写入将被拒绝 当目标集群为主集群时: 写入端口打开 特性: 可配置每个路由器实例 可以在mysqlsh 中在线更改配置 部署 2 种类型的路由器: • 以“主”为目标以将写入操作发送到“主数据库” • 定义目标集群以便本地读取 INVALIDATED 无效集群仍可用于只读( 可自定义) 路由器集成- 3DC Copyright @ 2021 Oracle and/or 异步复制在主更改后自动重新配置 Copyright @ 2021 Oracle and/or its affiliates. 改主 - 更改正常系统上的主集群 41 / 55 切换 • 一个可以完成所有操作的命令: setPrimaryCluster() • 集群之间的异步复制通道会自动重新配置 • 保证一致性 • 如果需要, 所有路由器将立即重定向( 取决于 目标模式) Copyright0 码力 | 52 页 | 3.07 MB | 1 年前3
 TokuDB索引结构Linux 文件系统层 TokuDB特点 • 支持事务(ACID)的MySQL存储引擎 • 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本! 分形树索引结构(一) 分形树结构(二) • msg_buffer – 先进先出队列 • BasementNode(OMT)0 码力 | 19 页 | 1.97 MB | 1 年前3 TokuDB索引结构Linux 文件系统层 TokuDB特点 • 支持事务(ACID)的MySQL存储引擎 • 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本! 分形树索引结构(一) 分形树结构(二) • msg_buffer – 先进先出队列 • BasementNode(OMT)0 码力 | 19 页 | 1.97 MB | 1 年前3
 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波先选择IO最空闲的主机。 5.VIP集群必须主从端口一致,Proxy接入的集群端口无需一致。 6.VIP集群端口基于网段递增,Proxy集群端口基于IP递增 Docker里放了什么 内核版本 操作系统 宿主机 容器 镜像 Kernel版本 4.7 CentOS 7.2 部署服务器监控、容器监控agent容器 Docker版本 1.12,部署监控及系统服务agent MariaDB镜像(按产品)、MySQL5 用率低。 MySQL容器平台: 部署一套高可用集群+自动化备份+慢日志分析+监控。用时1-2分钟。部署32个节点的分片集群, 只需5分钟。标准化的系统管理,部署环境统一、配置文件统一。系统化的操作降低人为失误和重复劳 动。资源使用集中管理,有效利用服务器资源。 效率提升0 码力 | 32 页 | 7.11 MB | 1 年前3 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波先选择IO最空闲的主机。 5.VIP集群必须主从端口一致,Proxy接入的集群端口无需一致。 6.VIP集群端口基于网段递增,Proxy集群端口基于IP递增 Docker里放了什么 内核版本 操作系统 宿主机 容器 镜像 Kernel版本 4.7 CentOS 7.2 部署服务器监控、容器监控agent容器 Docker版本 1.12,部署监控及系统服务agent MariaDB镜像(按产品)、MySQL5 用率低。 MySQL容器平台: 部署一套高可用集群+自动化备份+慢日志分析+监控。用时1-2分钟。部署32个节点的分片集群, 只需5分钟。标准化的系统管理,部署环境统一、配置文件统一。系统化的操作降低人为失误和重复劳 动。资源使用集中管理,有效利用服务器资源。 效率提升0 码力 | 32 页 | 7.11 MB | 1 年前3
 如何用 MySQL 构建全方位高可用应用启动/停止节点或整个 群集 • 联机扩展 • 联机重新配置 • 联机升级 • 联机备份和恢复 • 导入正在运行的群集 自我修复 • 节点监视 • 自动恢复扩展到 SQL + 管理节点 高可用性操作 • 群集范围的配置一致性 • 永久性配置 • 高可用性代理 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 34 不使用 MySQL Cluster Manager 群集模式 主 + 从 主备 主备 主备 多主 多主 多主 故障转移时间 N/A 数秒以上 数秒以上 数秒以上 1 秒以上 1秒以上 < 1 秒 扩展 读取 ✖ ✖ ✖ 读取 读取 ✔ 跨分片操作 N/A N/A N/A N/A N/A N/A ✔ 透明路由 ✖ ✔ ✔ ✔ ✔ ✔ ✔ 无共享 ✔ ✖ ✖ ✖ ✔ ✔ ✔ 存储引擎 InnoDB+ InnoDB+ InnoDB+ InnoDB+0 码力 | 40 页 | 2.19 MB | 1 年前3 如何用 MySQL 构建全方位高可用应用启动/停止节点或整个 群集 • 联机扩展 • 联机重新配置 • 联机升级 • 联机备份和恢复 • 导入正在运行的群集 自我修复 • 节点监视 • 自动恢复扩展到 SQL + 管理节点 高可用性操作 • 群集范围的配置一致性 • 永久性配置 • 高可用性代理 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 34 不使用 MySQL Cluster Manager 群集模式 主 + 从 主备 主备 主备 多主 多主 多主 故障转移时间 N/A 数秒以上 数秒以上 数秒以上 1 秒以上 1秒以上 < 1 秒 扩展 读取 ✖ ✖ ✖ 读取 读取 ✔ 跨分片操作 N/A N/A N/A N/A N/A N/A ✔ 透明路由 ✖ ✔ ✔ ✔ ✔ ✔ ✔ 无共享 ✔ ✖ ✖ ✖ ✔ ✔ ✔ 存储引擎 InnoDB+ InnoDB+ InnoDB+ InnoDB+0 码力 | 40 页 | 2.19 MB | 1 年前3
共 11 条
- 1
- 2













