数据库运维原则

一、数据库运维工作总原则 1、能不给数据库做的事情不要给数据库,数据库只做数据容器。 2、对于数据库的变更必须有记录,可以回滚。 二、权限相关 总原则,以最低粒度控制权限。 SELECT权限:所有开发人员均可拥有自己业务范围内的表权限。 INSERT/UPDATE/DELETE权限:所有项目经理可以拥有自己业务范围内的表权限。 Structure权限:数据库管理员可以拥有。 Administration权限:系统管理员和数据库管理员可以拥有。 程序访问权限:根据IP和系统名建立用户名,只拥有必须表的访问权限。 全部权限:技术总监掌管,MySQL系统表mysql表权限除技术总监任何人不得拥有。 权限粒度:开发人员权限粒度到表一级,数据库管理员和系统管理员权限粒度到库一级。 访问限制:除DBA和系统管理员需要24小时保证可以操作数据库外,其他人均需要绑定IP。 密码强度:必须根据目标/来源/用户等信息设置密码,保证不用用户在不同主机从不同来源的密码不一样,每隔一段时间需要集中更换密码。 三、改表相关 总原则,以最少的开销按需记录数据,所有变更要有记录。 • 表结构修改流程:开发人员提交建/改/删表的SQL(必须有注释)给DBA,并且说明建/改/删表原因,DBA审查,与开发人员交流修正,由DBA执行SQL操作,并记录。 表结构改动注意:(越靠前优先级越高) 按需建立字段,不得采用远大于需求的类型。 尽量采用无符号型数据类型。 尽量采用固定长度类型。 尽量避免TEXT类型。 尽量用数字来代替字符。 可以用ENUM枚举数量不多的字符。 如果必须采用TEXT类型,如无特殊情况,必须拆表单独存放TEXT列。 存在必须用函数计算才能做条件的列,新建一存放函数计算结构,对新列进行索引,采用触发器自动更新。 记录修改时间尽量采用时间戳,不要采用时间类型列然后手动设置。 分离表中常用和不常用数据,分开存储。 历史数据要及时分离,按一定规则命名表或存放到数据仓库。 类似标记字段设计要合理,尽量避免在SQL中出现<>,尽量使用>/
posted @ 2012-08-13 22:07  Alex Tian  阅读(587)  评论(0编辑  收藏  举报