如何用 MySQL 构建全方位高可用应用
9 •异步 – MySQL 默认设置 – 并行:主数据库向应 用程序发送确认,在 存储引擎上提交,然 后将事务发送到从数 据库 • 快速 • 如果主数据库停机有可 能丢失更改 •半同步 – MySQL 5.5+ - 在 MySQL 5.7 中进行了 增强 – 串行:主数据库等待 从数据库记录更改并 将更改刷新到磁盘, 然后以并行方式提交 到存储引擎并向应用 程序发送确认 • Cluster 数据节点 Master –Slave Replication •内存优化表 – 持久 – 可与基于磁盘的表混合使用 •大量并发 OLTP •通过分布式联接支持分析 •通过并行表扫描支持非索引搜索 •MySQL Cluster 7.4 DBT2 FlexAsych – 2 亿次 NoSQL 读取/秒(32 个节点) 4/16/2017 31 MySQL Cluster 读取/秒 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 •内存优化表 – 持久 – 可与基于磁盘的表混合使用 •大量并发 OLTP •通过分布式联接支持分析 •通过并行表扫描支持非索引搜索 •MySQL Cluster 7.4 DBT2 BM – 250 万条 SQL 语句/秒 4/16/2017 32 MySQL Cluster 7.4 SQL 性能 2500 码力 | 40 页 | 2.19 MB | 1 年前3MySQL 企业版功能介绍
服务云轻松设置、运行和管理云中的 MySQL 使用 MySQL 分组复制来确保数据库的高可用性 通过 MySQL 企业级可扩展性应对指数级增长的用户和数据量 通过 MySQL 企业级备份执行热备份和恢复,从而降低数据丢失的风险 通过 MySQL 企业级安全性来利用现有安全基础架构 使用加密、密钥生成和数字签名保护敏感数据 通过 MySQL 企业级防火墙阻止针对数据库的攻击(如 MySQL 服务云 Oracle MySQL 云服务提供了一个安全、经济高效的企业级 MySQL 数据库服务。它基于 MySQL 企业版并且受 Oracle 云的支持,提供同类先进的管理工具,可自动执行供应、修补、备份和恢复、 监视和调优等管理任务。多层安全可以保护您的数据免受外部攻击,同时帮助您实现合规性。自 助式供应可创建预配置的 MySQL 数据库,针对性能进行优化;而自动扩展能够让用户弹性扩展 NoSQL 访问有助于执行复杂的查询以及快速完成简单快速的键值操作。 平台独立性让您可以灵活地在多个操作系统上开展开发和部署工作。 使用 MySQL 作为 Hadoop 和 Cassandra 的业务数据存储,支持大数据互操作性。 MySQL 企业级备份 MySQL 企业级备份能够执行 MySQL 数据库无阻塞联机备份。除了对所有 InnoDB 数据执行完整、 增量和部分备份以外,MySQL0 码力 | 6 页 | 509.78 KB | 1 年前3谈谈MYSQL那点事
如果内存是 16G ,最好本值超 1024M innodb_flush_log_at_trx _commit 1 0 0 代表日志只大约每秒写入日志文件并且日志文件 刷新到磁盘 ; 1 为执行完没执行一条 SQL 马上 commit; 2 代表日志写入日志文件在每次提交 后 , 但是日志文件只有大约每秒才会刷新到磁盘上 . 对速度影响比较大,同时也关系数据完整性 innodb_log_file_size 、 DISTINCT DISTINCT 、 、 OR OR 、 、 IN IN 等语句的使用 等语句的使用 , , 避免使用联表查询和子查询,因为将使执行效率大大下降 避免使用联表查询和子查询,因为将使执行效率大大下降 能够使用索引的字段尽量进行有效的合理排列,如果使用了 能够使用索引的字段尽量进行有效的合理排列,如果使用了 联合索引,请注意提取字段的前后顺序 Explain/ DESC Explain/ DESC 来分析 来分析 SQL SQL 的执行情况 的执行情况 使用 使用 SHOW PROCESSLIST SHOW PROCESSLIST 来查看当前 来查看当前 MySQL MySQL 服务器线 服务器线 程 程 执行情况,是否锁表,查看相应的 执行情况,是否锁表,查看相应的 SQL SQL 语句 语句 设置 设置0 码力 | 38 页 | 2.04 MB | 1 年前3MySQL高可用 - 多种方案
exit 1 esac exit 0 2.4.9 Master 和 backup 的启动 启动 master 和 backup 的 mysql 以后,再在 master 和 backup 执行如下命令启 动 keepalived 和 realserver 脚本: /etc/rc.d/init.d/realserver.sh start /etc/rc.d/init.d/keepalived exit 1 esac exit 0 3.5.8 Master 和 backup 的启动 启动 master 和 backup 的 mysql 以后,再在 master 和 backup 执行如下命令启 动 keepalived 和 realserver 脚本: /etc/rc.d/init.d/realserver.sh start /etc/rc.d/init.d/keepalived /etc/my.cnf 在 dbserver1 和 dbserver2 上执行如下命令创建软链接。 ln -s /drbd/dbdata/my.cnf /etc/my.cnf d) 修改/etc/my.cnf 的数据目录指向/drbd/dbdata e) 将原来的 mysql 数据文件移动到/drbd/dbdata f) 执行 chown -R mysql.mysql /drbd/dbdata0 码力 | 31 页 | 874.28 KB | 1 年前3运维上海2017-从理论到实践,深度解析MySQL Group Replication -徐春阳
Group Replication原理解析与实践经验 徐春阳 MGR原理 MGR vs SEMI-SYNC MRG实践经验 • 支持多节点并发执行事务。如何保证从各个节点并发执行 的事务在每个节点以相同的顺序被应用/执行.------paxos协 议的功能。 • 自动地事务冲突检测。节点之间不能”同时”操作主键相同 记录,如果冲突,只有一个节点成功。------冲突检测。 是保证每个节点执行的事务完全相同,顺序也相同。 • 所有的消息在各个节点处理动作完全相同,如果某个消息在 某个节点被丢弃(不处理 ,在其他节点也将被丢弃。 • 多数派原则,一个消息被超过半数的节点接收&”赞成”,则这 个消息将在全局生效,所有的节点都得执行(处理 这个消 息。 • Paxos协议只实现消息全局排序,不处理冲突。 Paxos��:! • 冲突检查是在执行消息(execute_msg)时发生0 码力 | 32 页 | 9.55 MB | 1 年前3使用 Docker 建立 MySQL 集群
com 下下来的虽然名字是 index.html,但其实是脚本文件,所以我们 chmod +x index.html 这样我们就可以执行这个文件: sudo ./index.html 安装完成后根据提示,可以将当前用户加到 docker 用户组里,这样就不用每次 执行 docker 都需要 sudo 了。 sudo usermod -aG docker <你的用户名> 对于 Centos6,首先要把企业常用软件包的软件源安装上 同样需要重启。 3.4 使用客户端连接上主数据库,这里我使用的是 mysql workbench,从数据库因为 安全考虑并没有公开端口给主机,只能进入容器的 mysql 控制台进行操作。 在主数据库中执行 SQL 脚本: /*设定用于同步的账号、密码*/ grant replication slave on *.* to ‘sync’@'%' identified by 'sync'; /*保存权限设定*/ flush privileges; /*查看主数据日志状态,需要记住查询结果 File 和 Position 值,是从数据库复 制的日志起点*/ show master status; 在从数据库中执行 SQL 脚本: /*如果已经开启了同步,停止同步*/ stop slave; /*设定主数据库*/ change master to master_host='master_db', master_user='sync'0 码力 | 3 页 | 103.32 KB | 1 年前3Kubernetes Operator 实践 - MySQL容器化
pod 都正常运行? 调度 pod k8s mha operator 重新调度 mha MHA 扩缩容 • 扩容:直接执行 • 缩容:集群 master 是谁? 判断条件: 缩容操作且 master 为 sts 最后一个 pod operator 执行 sts 扩缩容 判断 调用 mha 切主 否 是 pod 都正常运行? 重新调度 mha MGR 高可用简介 • 优点:可靠性高,容器漂移时 数据不变 • 缺点:读写延迟较高 本地存储 • 基于 Host Path Volumes • 优点:读写延迟低 • 缺点:单点数据,容器漂移时 数据丢失 踩到的坑 • 现象:执行 docker 命令时,docker daemon 无响应,/var/log/messages 大量报错 libceph: osdxx 10.0.0.0:6812 socket closed (con0 码力 | 42 页 | 4.77 MB | 1 年前3Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波
当系统数据库较高时确保大多数请求能够够正常访问。 触发条件: • 依赖监控告警系统,thread_running > 30(可自定义) kill哪些语句: • select语句 • 非特定系统账号(可自定义) • 执行时间超过10S • 只Kill sql请求,不kill连接 监控告警系统 Promethues Cluster Docker Docker Docker Consul Cluster Graph 当慢SQL每秒产生的数量超过阈值的时触发告警通知 DBA及相关人员及时关注问题。 分析: 定期将实例端的慢SQL分析后录入数据库,然后通过 系统页面查看慢SQL的执行时长、每日次数、每日平 均耗时等多个维度的指标。同时也支持ui上查看执行计 划和表结构信息。 • 实例迁移我们支持了全实例、库、表级别的迁移,并且同时兼容各种MySQL版本。 全量迁移基于开源工具mydumper和myloader做了定制化开发,解决了一些问题,比如0 码力 | 32 页 | 7.11 MB | 1 年前3MySQL 8.0.17 调优指南(openEuler 20.09)
2020-10-15 7 方法 Linux参数 参数含义 操作 swappiness 值越大,越积极使用swap分 区,值越小,越积极使用内存。 执行命令vi /etc/sysctl.conf, 将vm.swappiness = 1添加到文 件底部,保存退出,执行命令 sysctl -p使其生效。 dirty_ratio 内存里的脏数据百分比不能超过 这个值。 echo 5 > /proc/sys/vm/0 码力 | 11 页 | 223.31 KB | 1 年前3TokuDB索引结构
Storage层 Linux 文件系统层 TokuDB特点 • 支持事务(ACID)的MySQL存储引擎 • 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本! 分形树索引结构(一) 分形树结构(二) • msg_buffer – 先进先出队列0 码力 | 19 页 | 1.97 MB | 1 年前3
共 11 条
- 1
- 2