MySQL新项目如何确保上线安全

大纲

DBA最应该做的事情

新项目开发环境应该注意什么

功能测试和压力测试MySQL DBA关注点

线上环境关注点

业务在大压力情况下,MySQL如何能活下来

DBA最应该做的事情

备份

建议每天全备

每天把Binlog也要进行备份

理想的目标:可以把数据还原到任意时间点(近2周的能力)

监控

了解环境的情况

环境可控

了解数据增长及和环比情况

新项目开发环境应该注意什么

long_query_time=1->0

了解核心业务SQL,提出读写分离和缓存指导建议

功能测试,性能测试中注意校对

备份开发环境(每天一备),放在其他机器上,最好也要有从库

核心SQL优化,Schema调整尽量在这个阶段完成

特别提示:

新技术也可以在这个测试环境测试一下

开发环境常见问题

开发把数据误操作干掉

开发服务器机器故障

并发连接太多,DB响应太慢

功能测试和压力测试MySQL DBA关注点

功能测试环境(保稳)

保障环境正常,基本DBA不在调整该环境的东西

数据库新版本验证(也可以放到这个环节)

数据库权限尽量保持和线上一样的要求(严格控制)

重视该环境的性能问题

功能环境可能遇到的问题

1.索引不合理

2.功能不完善,调整表结构

3.存储过程,定时任务缺失

4.主从故障

性能环境(测极限)

一般基于LR测试

数据初始化(备份)

获取SQL执行频度,优化,读写分离相关工作进一步校验

产出:

基于业务的性能评估(性能测试人员)

数据库的性能情况(DBA)

压测环境可能遇到的问题

1.数据库压挂

2.IO不行

3.buffer pool太小

4.索引不合理

5.慢查询较多

6.优化SQL

线上环境关注点

1.DML操作量 & 事务队列

2.数据增长量

每张表每天增长多少行

每周增加的大小

3.每天binlog形成量,高峰期binlog切换速度

4.每天慢日志情况,错误日志情况

5.每天备份(数据,binlog)

6.高可用架构

线上问题

1.更改表结构

2.迁移

3.性能问题(异常)

4.SQL优化

5.数据一致性校验

6.高可用切换

高性能环境MySQL如何活下来

1.高可用切换后,新节点直接挂掉

从节点负载超过50%

从节点buffer pool没缓存数据

2.连接数较高,出现thread_running过高,数据库挂掉

过载保载

引入thread_pool

3.单表出现热点

读写拆分(认证)

4.update tb set c1 = c1 + 1 where id = xxx; 高并发搞挂数据库

内存中合并更新

原文地址:https://www.cnblogs.com/allenhu320/p/11364897.html