MySQL数据库运维变更流程


草拟时间:2015.11.13
制订时间:
修订时间:

0x00 目的

规范MySQL数据库的运维人员变更流程,降低操作流程引发的安全隐患,减少人为的错误风险。


0x01.场景

1.业务人员根据业务需要进行数据订正,库表字段结构变更的相关需求。
2.运维人员根据数据库日常运维,故障处理与性能优化的变更需求。


0x02.类型


1.数据订正(insert,update,delete相关操作)

  重大变更

    数据订正表的总数据条数100W以上,且表属于核心业务。
        数据订正涉及的行数超过50W条,且此表数据为读写频繁业务表。
        导入单张表的数据文件大小超过1G,在线服务器压力较大,导入核心业务表或修改操作频繁的表

  一般变更

  若被订正的数据量,小于表总数据量的1%,且数据订正的条件有合理的索引。
       若一次性导入单张表的数据文件大小不超过1G,则选择为一般变更即可,但是建议安排在18:00之后或服务器压力相对较小的时候完成。

  

2.数据库结构变更

  重大变更
    
   
       修改表结构:表数据大小超过1G,且进行下列操作:修改字段名称、增加/删除字段、修改字段属性
      增加/修改索引属性:表数据大小超过1G,且修改操作频繁或应用对数据库修改操作要求响应时间极短
       影响服务器性能的其他变更:如,mysqldump备份数据库、修改表或字段的字符集、修改表分区的逻辑

     一般变更


      新建表对象:对于数据库服务器中不存在的表,因项目上线或其他原因而需要新创建的表,选择为一般变更即可。
      数据量较小的变更:表记录小于100w或涉及变更记录少于50w,或数据大小小于1G的变更。
       其他变更,如:修改表名称、增加与修改表或字段的备注、创建与删除分区、表删除、修改自增序列开始位置值等。


3.权限变更

   重大变更 

    数据库管理或清除库表权限授权,如grant, all, super, process, create user,truncate,drop。

  一般变更

     业务访问(select)权限授权
     数据变更(insert,update,delete)权限授权


4.服务器端参数变更

  重大变更

     服务器全局变量值的修改


5.MySQL服务器迁移与升级

  核心变更

  涉及核心DB相关MySQL服务器迁移与升级,主从重建等变更

  重大变更

  涉及CDB数据库相关MySQL服务器迁移与升级变更


  核心变更,变更发起人需提前知会运维Leader,leader确认后,由运维变更人员在变更前发布研发和产品人员通知邮件,确定变更时间,变更对象,变更步骤及回退步骤。
  重大变更,变更发起人需提前知会业务Leader,leader确认后,由变更发起人员与运维人员确定变更时间后发布相关人员邮件通知和RTX群通知。
 一般变更,由变更发起人RTX群通知相关人员,运维人员变更后在RTX群中同步信息。


0x03.变更流程

  核心变更,变更发起人需提前知会运维Leader,leader确认后,由运维变更人员在变更前发布研发和产品人员通知邮件,确定变更时间,变更对象,变更步骤及回退步骤。核心变更需求需要做好变更计划,紧急需求需要总监级别审批确认。
  重大变更,变更发起人需提前知会业务Leader,leader确认后,由变更发起人员与运维人员确定变更时间后发布相关人员邮件通知和RTX群通知。
 一般变更,由变更发起人RTX群通知相关人员,运维人员变更后在RTX群中同步信息。


流程内容
申请-->审核---处理-->验证-->结束

1.申请
流程负责人员:变更发起人员
对于计划内变更需求,需至少提前12小时进行申请,对于紧急需求需在需求确认后进行申请,并记录到问题管理系统中。

数据库运维变更流程遵守常规业务变更规范,非常规工作日(如周五或重大节假日前后2日内)变更申请需要发邮件到总监审批。

需求人员通过RTX群与运维人员沟通需求,需求确认后在需求工单系统进行提单,选择工单类别“平台侧基础运维”-“数据库线上操作”,工单描述中填写 数据库变更的具体对象和内容,如有疑问可在RTX沟通群中确认。

工单描述参考格式见附录。

2.审核
流程负责人员
:运维人员
需求人员提数据库变更需求单后,运维人员对需求单进行审核,审核通过进入下一个环节,审核不通过则进行沟通确认取消需求还是修改需求。

3.处理
流程负责人员:运维人员

响应:
授权类需求与需求方进行沟通确认或在工单有效期内进行处理。
紧急且重大变更需求,提升优先级立即进行响应。

通知:
运维人员收到相关需求后,确认需求属于常规时间或紧急时间,一般或重大变更需求后,发送变更计划通知邮件或拉相关人员RTX群进行通知。
变更开始与变更关键节点,变更结束需要在RTX或邮件中进行回复。

备份:
变更前需要备份相关服务器配置,库表数据,便于恢复数据和配置。
涉及到库表结构,整体数据的更新,需要在变更前进行备份。

变更:
变更后生效前,需要再次确认变更内容,数据库变更期间尽可能避免处理其他变更需求。


4.验证
流程负责人员:运维人员及被所有通知人员

运维人员变更完毕后,确认变更效果后,需及时通知到需求发起人员及相关RTX群或邮件,由需求发起人员进行最终变更效果确认。
需求发起人员验证通过后,30分钟到2个小时观察期,确认数据库变更后相关系统运行正常。

5.结束

流程负责人员:需求发起人员
通知相关人员,本次变更结束。

0x05.违反流程行为的处理


1.违反流程行为:

1.未按照流程进行变更
2.非授权行为进行变更

2.违反流程行为处罚:

对于违反数据库变更流程行为未造成影响的,进行批评教育。
对于违反数据库变更流程行为并造成影响的,按照公司及OMG相关处罚规定处理。


0x06.修订与发布


1.修订

通过与业务方及运维变更人员沟通对运维变更流程进行草拟修订。

2.发布

流程内容修订后,发布最新内容及变更内容邮件通知全体研发人员。


0x07.附录


1.自建MySQL
业务需求背景下由运维人员搭建并备案的MySQL数据库。
2.数据库托管
 在产品技术部的MySQL数据库,运维通过相关网页进行申请,数据库服务器由其他技术部相关人员运维。
3.核心DB
自建的放置核心数据的MySQL集群

需求申请,参考格式

数据变更需提供:
数据库IP:
数据库端口:
数据库库名,表名:
业务名称:
其他说明:

授权需要额外提供:
需要授权的主机IP:
需要授权的权限:例如,selectinsertupdate,delete需要使用的账户名:
账户是否已存在: