0x00 背景
最近公司正在去微软化,之前使用的SQL Server、Oracle将逐步切换到MySQL,所以部门也会跟随公司步伐,一步步将现有业务从SQL Server切换到MySQL,当然上MySQL肯定是上集群和分布式。
于是,有了这份结合业务数据调研MySQL的清单,后面的日子里将一点点记录关于调研过程中的发现和收获。
另外,后面可能使用到的操作系统、MySQL及docker信息如下:
- Win7_x64
- CentOS 7.2
- docker
- MySQL5.7.18-log
需要说明的是,由于目前本人也是刚接触MySQL,当前对调研清单的内容列举肯定有各种问题,所以后面清单中的内容后面可能会根据具体情况进行修改,这里暂且列举一个粗略的清单。
0x01 MySQL分布式
1、方案、框架、中间件
- MyCat
- OneProxy
2、分库分表片键
0x02 MySQL集群
1、方案及框架
- Galera
2、数据同步技术
- 异步复制
- 半同步复制
- Group Replication
3、同步状态监控
- 同步故障自动检测及预警
- 同步延迟监测
- 同步数据一致性校验
- 同步故障解决
4、主从切换/master故障切换从库
5、读写分离方案
0x03 灾备作业
1、日常数据/日志备份
- 完整备份
- 差异备份
- 增量备份
- 二进制日志备份
2、日常数据清除
- 超期备份文件清除
- 超期二进制日志清除
3、数据恢复
0x04 数据库及表
1、结合业务确定数据表存储引擎
- MyISAM
- InnoDB
考虑因素:数据量、查询/插入/更新/删除效率,事务性、锁、数据恢复等。
2、数据库分库分表、表分区
- 分库分表片键
- 垂直切分
- 水平切分
- 表分区字段
3、索引
- 索引设计
- 索引信息查询
- SQL语句优化
4、资源统计
- 查询时间统计
- CPU占用统计
- 内存占用统计
5、性能测试
- 分区表与非分区表查询/插入/更新性能对比
0x05 MySQL实例参数设置
1、结合场景MySQL实例参数设置
2、所有端的字符集编码格式
- server(character_set_server)
- schema(character_set_database)
- table(table)
- client(character_set_client)
- connection(character_set_connection)
- result(character_set_results)
- system(character_set_system)
3、InnoDB存储引擎参数设置
0x06 数据库日志
1、普通查询日志
2、慢查询日志
3、Binlog
4、安全审计日志
0x07 用户管理
1、管理员账号
2、开发人员账号
3、生产使用账号
4、测试账号
5、权限分配及安全审计
0x08 运维常见问题
1、数据同步延迟太大或失败
2、日常数据/binlog备份失败
3、查询时间太长/死锁(性能)
4、作业执行失败
5、误删数据(数据恢复)
6、资源占用彪高
0x09 其他内容
日后补充。