mysql变更上线流程
###########################
首先,咱们的mysql数据库拓扑结构如下:
拓扑简要说明:
1)lvs:这是业务使用的连接,通常提供ip和port给业务,比如lvs提供了ip为10.10.10.10,port为6688
2)kingshard是go语言实现的一个中间件,这里将给业务提供用户、密码、端口号,通常情况下,为了避免kingshard实例出现单点故障,我们会部署2个以上的的kingshard实例,端口号通常和lvs的端口号一一对应,当然也可以不一致;
这里假设提供3个kingshard实例,他们的配置完全相同,将3个kingshard实例分别部署在3台不同的机器上,形成一个kingshard集群:
kinshardA:
kinshardB:
kinshardC:
3)mysql集群:通常是一从多从,这里假设一主两从:
角色 | ip | port | 账号 |
主库 | 10.10.10.111 | 3306 | apple_x |
从库 | 10.10.10.112 | 3306 | apple_x |
从库 | 10.10.10.113 | 3306 | apple_x |
变更详细:
变更名称 | 建议变更时间 | 风险程度 | 是否有回滚方案 | 变更是否有记录 | 变更影响与说明 | 处理方式 |
删库drop database |
10:00-11:30 14:00-17:30 |
高 | 有 | 有 | 数据库不可用 |
1)提前一天邮件通知业务方和本小组同事 2)操作前半小时内通知业务群 3)先rename ,7天后再执行drop database |
删表drop table |
10:00-11:30 14:00-17:30 |
高 | 有 | 有 | 表不可用 |
1)提前一天邮件通知业务方和本小组同事 2)操作前半小时内通知业务群 3)先rename ,7天后再执行drop table |
权限变更 |
10:00-11:30 14:00-17:30 |
高 | 有 | 有 | 连接不可用 | 提前邮件通知业务方,且业务群内通知 |
重大参数变更类 innodb_buffer_pool_size sql_mode等 |
10:00-11:30 14:00-17:30 |
高 | 有 | 有 | 因具体参数而不同 |
1)提前一天邮件通知业务方和本小组同事 2)操作前半小时内通知业务群 |
重启从库 |
10:00-11:30 14:00-17:30 |
高 | 无 | 有 | 业务连接报异常 |
1)提前一天邮件通知业务方和本小组同事 2)操作前半小时内通知业务群 3)通常会先下线该从库的流量,然后再重启, 而不是直接重启从库 |
下线从库 |
10:00-11:30 14:00-17:30 |
高 | 有 | 有 |
1)提前一天邮件通知业务方和本小组同事 2)操作前半小时内通知业务群 |
|
下线集群 |
10:00-11:30 14:00-17:30 |
高 | 有 | 有 |
1)提前一天邮件通知业务方和本小组同事 2)操作前半小时内通知业务群 3)先停服,7天后再下线 |
###########################