MySQL学习笔记(二)

一、MySQL日常运维巡检项目

1、性能监控与调优

  • 使用MySQL自身的SHOW STATUS、SHOW VARIABLES、EXPLAIN等命令,或结合第三方工具(如Percona Toolkit、MySQL Enterprise Monitor、Prometheus + MySQL exporter等)定期收集并分析性能指标,如查询响应时间、CPU利用率、内存使用情况、磁盘I/O、磁盘空间使用、会话数、连接数等,一般公司都有相关的监控平台,DBA有完善的权限管理机制可供其他开发人员查询。
  • 根据监控数据优化索引、查询语句、表结构设计、存储引擎选择等,确保数据库高效运行。
  • 业务方使用一些大的加工任务、要监控长事物执行时间、减少死锁。
  • 定期整理废弃表、大表的删除清理方式、数据库表要有明确的表名命名和使用场景,减少磁盘占用和提升数据库IO性能。

2、备份与恢复

  • 制定并执行备份策略,包括全量备份、增量备份、差异备份等,可使用mysqldump、xtrabackup等工具,可以使用shell脚本+mysqldump来做简单备份,使用云数据库一般会开启配置相关的备份任务,检查是否执行成功。
  • 测试备份的有效性,定期执行恢复演练以确保在真实故障情况下能快速恢复数据。
  • 存储备份文件的安全性,可能需要异地备份或云存储,确保备份文件的安全性。

3、高可用性与容灾

  • 配置主从复制(MySQL replication)以实现数据的实时同步,提升系统的可用性和扩展性。
  • 实施读写分离策略,减轻主库压力、以及主从同步的延迟性和主从同步的模式GTID。
  • 配置MySQL集群如InnoDB Cluster或MySQL Group Replication以增强容错能力、以及云上一主一备一级联的跨AZ容灾、金融级高可用的PXC集群。
  • 使用如Keepalived、Heartbeat等工具配合虚拟IP实现故障切换,确保高可用服务、以及业务连接的高可用方式。
  • 数据库的连接高可用,数据库连接池参数配置连接探活、主备切换的可用性等关键参数。

4、日志管理

  • 定期清理和归档binlog、error log、slow query log等日志文件,以便分析和排查问题。binlog的保存时间,binlog的类型,如以及磁盘空间ROW、STATEMENT和MIXED。
  1. ‌ROW模式‌:

    • 特点:基于变更的数据行进行记录,每一行数据的修改都会被详细记录。
    • 优点:能够清晰地记录每一行数据修改的细节,不容易出现存储过程或触发器调用无法正确复制的问题。
    • 缺点:可能会产生大量的日志内容,尤其是执行大量数据更新时。
    • 应用场景:适用于对数据一致性要求较高的场景,能够确保数据同步的准确性‌。
  2. ‌STATEMENT模式‌:

    • 特点:基于SQL语句级别的记录,记录的是执行的SQL语句而不是每行数据的具体变更。
    • 优点:日志量较小,占用磁盘空间少,主从复制的数据也较少,审计数据库更改更加方便。
    • 缺点:无法用于非确定性语句,可能会出现主从库执行结果不一致的情况。
    • 应用场景:适用于大量数据的更新操作,可以减少从库的延迟‌。
  3. ‌MIXED模式‌:

    • 特点:混合了ROW模式和STATEMENT模式的优点,根据操作类型自动选择最适合的模式。
    • 优点:结合了ROW模式和STATEMENT模式的优点,既能保证数据一致性,又能减少日志量。
    • 应用场景:适用于需要兼顾数据一致性和性能的场景‌。
  • 分析slow query log识别并优化慢查询,一般公司系统会对接各种监控类似Druid的数据库监控、及时关注处理。

5、安全性管理

  • 设计和实施用户权限管理策略,最小化权限授予原则。
  • 定期更改数据库用户的密码,并使用强密码策略。
  • 开启审计功能,监控可疑行为。
  • 使用SSL/TLS加密数据传输通道。

6、容量规划与扩展

  • 根据业务发展预测和评估数据库的增长趋势,适时进行容量扩展、包括实例数目。
  • 监测表空间使用情况,合理规划磁盘空间分配。
  • 数据库的连接资源监控、如最大连接数max_connetions

7、系统维护

  • 定期检查操作系统状态、内核版本、glibc版本与MySQL版本之间的兼容性、检查业务使用版本
  • 优化MySQL配置文件(my.cnf),调整系统参数以适应业务变化。
  • 协同运维团队,更新系统补丁和MySQL补丁,确保安全更新及时到位。

8、应急响应

  • 建立和完善应急预案,应对可能出现的各种异常状况,如宕机、数据丢失、性能瓶颈、主从同步失败、延迟过大、CPU彪高、占用网络带宽高、以及扩容问题等问题。
  • 定期进行灾难恢复演练,确保在紧急情况下能够迅速恢复服务。
相关推荐
qq_284274054 分钟前
机械设计基础·滚动轴承全解(类型·代号·选型·寿命)+轮系与蜗杆蜗轮传动
笔记·学习·自动化·制造
ACP广源盛139246256735 小时前
硬件选型笔记:国产 PCIe Gen2.1 交换芯片 IX6024@ACP,工控与存量设备国产化改造方案评估
笔记·硬件架构·硬件工程·pcie·国产芯片
2603_965148115 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
for_ever_love__5 小时前
MySQL ORDER BY 排序优化:从 Using filesort 到索引有序扫描(含双路 / 单路排序原理)
java·mysql·优化·存储·by·order·filesort
文人sec6 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
摇滚侠7 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
kaixin_啊啊7 小时前
【用于更准确 G×E 基因组预测的大规模作物数据集与基于深度学习的多模态融合框架】论文学习
人工智能·深度学习·学习
xier_ran7 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
志尊宝7 小时前
Vue3 零基础每日笔记(078):首屏加载速度优化汇总——清单化方案
笔记
Sayai9 小时前
DataX 离线数据同步实战:Elasticsearch 数据批量导出 MySQL(作业配置、并发调优与定时同步平台化设计)
大数据·mysql·elasticsearch·datax·数据同步