DBA的40条军规 - 职场生涯
作者介绍
贺春旸,普惠金融MySQL专家,《MySQL管理之道》第一版、第二版作者。曾任职于中国移动飞信、机锋安卓
市场,拥有丰富的数据库管理经验。目前致力于MySQL、Linux等开源技术的研究。
DBA操作规范
1、涉及业务上的修改/删除数据,在得到业务方、CTO的邮件批准后方可执行,执行前提前做好备份,必要时
可逆。
2、所有上线需求必须走工单系统,口头通知视为无效。
3、在对大表做表结构变更时,如修改字段属性会造成锁表,并会造成从库延迟,从而影响线上业务,必须在凌
晨0:00后业务低峰期执行,另统一用工具pt-online-schema-change避免锁表且降低延迟执行时间。
使用范例:
对于MongoDB创建索引要在后台创建,避免锁表。
使用范例:
db.t1.createIndex({idCardNum:1},{background:1})
4、所有线上业务库均必须搭建MHA高可用架构,避免单点问题。
5、给业务方开权限时,密码要用MD5加密,至少16位。权限如没有特殊要求,均为select查询权限,并做库表
级限制。
6、删除默认空密码账号。
delete from mysql.user where user='' and password='';
flush privileges;
7、汇总库开启Audit审计日志功能,出现问题时方可追溯。
行为规范
8、禁止一个MySQL实例存放多个业务数据库,会造成业务耦合性过高,一旦出现问题会殃及池鱼,增加了定
位故障问题的难度。通常采用多实例解决,一个实例一个业务库,互不干扰。
9、禁止在主库上执行后台管理和统计类的功能查询,这种复杂类的SQL会造成CPU的升高,进而会影响业务。
10、批量清洗数据,需要开发和DBA共同进行审查,应避开业务高峰期时段执行,并在执行过程中观察服务状
态。
11、促销活动等应提前与DBA当面沟通,进行流量评估,比如提前一周增加机器内存或扩展架构,防止DB出现
性能瓶颈。
评论