`
jinghuainfo
  • 浏览: 1525065 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

数据库运维原则

 
阅读更多

一、数据库运维工作总原则
1、能不给数据库做的事情不要给数据库,数据库只做数据容器。
2、对于数据库的变更必须有记录,可以回滚。
二、权限相关

总原则,以最低粒度控制权限。
SELECT权限:所有开发人员均可拥有自己业务范围内的表权限。
INSERT/UPDATE/DELETE权限:所有项目经理可以拥有自己业务范围内的表权限。
Structure权限:数据库管理员可以拥有。
Administration权限:系统管理员和数据库管理员可以拥有。
程序访问权限:根据IP和系统名建立用户名,只拥有必须表的访问权限。
全部权限:技术总监掌管,MySQL系统表mysql表权限除技术总监任何人不得拥有。
权限粒度:开发人员权限粒度到表一级,数据库管理员和系统管理员权限粒度到库一级。
访问限制:除DBA和系统管理员需要24小时保证可以操作数据库外,其他人均需要绑定IP。

密码强度:必须根据目标/来源/用户等信息设置密码,保证不用用户在不同主机从不同来源的密码不一样,每隔一段时间需要集中更换密码。
三、改表相关

总原则,以最少的开销按需记录数据,所有变更要有记录。

  • 表结构修改流程:开发人员提交建/改/删表的SQL(必须有注释)给DBA,并且说明建/改/删表原因,DBA审查,与开发人员交流修正,由DBA执行SQL操作,并记录。
    表结构改动注意:(越靠前优先级越高)
    按需建立字段,不得采用远大于需求的类型。
    尽量采用无符号型数据类型。
    尽量采用固定长度类型。
    尽量避免TEXT类型。
    尽量用数字来代替字符。
    可以用ENUM枚举数量不多的字符。
    如果必须采用TEXT类型,如无特殊情况,必须拆表单独存放TEXT列。
    存在必须用函数计算才能做条件的列,新建一存放函数计算结构,对新列进行索引,采用触发器自动更新。
    记录修改时间尽量采用时间戳,不要采用时间类型列然后手动设置。
    分离表中常用和不常用数据,分开存储。
    历史数据要及时分离,按一定规则命名表或存放到数据仓库。
    类似标记字段设计要合理,尽量避免在SQL中出现<>,尽量使用>/</=来完成条件查找。
    类型选择细则参考已发的类型选择文档。

四、索引相关

  • 总原则,以高并发SQL为核心建立索引,尽量复用索引。
    除非某个字段经常单独作为查询字段,并且不会作为其他组合索引的第一个列,才为本字段建立单独的索引。
    尽可能建组合索引,综合考量涉及的SQL,遵循尽量复用的原则建立索引。
    优先处理高并发SQL的索引,很少使用的SQL或者只在闲时使用的SQL可以不为其索引。
    小表可以不建立索引(如果参与关联需要为关联字段索引)。
    索引后结果集仍较大可以增加排序字段进索引,若执行计划不使用,则删除。
    关联字段除特殊情况都需要建索引。
  • 要及时根据SQL的使用情况调整索引。

五、架构相关

  • 总原则,尽可能在内存中完成大部分操作。
    内存足够选择InnoDB(高并发数据与内存大小相当),内存不足用MyISAM,归档用Archive,事务相关用InnoDB,临时高并发数据用Memory。
    Master-Slave架构,适合明显读大于写的情况。
    Master-Master架构,无比使两个Master产生不同的主键,例如一台产生奇数主键,一台产生偶数主键,
    单机事务用InnoDB,集群事务用LVS+NDB,切不可直接用NDB,效率极低。
    分布式事务尽量避免,如果必须,则采用XA事务,分段提交,或者直接采用NDB集群引擎。
    原则上历史数据和生产数据不要放在同一数据库,如历史数据极少使用,则建立新库将历史数据保持表名不变存入,只要USE改变数据库就可以查询历史数据,比较常用的历史数据采用表名+日期来存放相应的历史数据,通过表明和日期拼接来做历史查询。
    主库写压力较大时采取级联复制,读库压力更大时采用一对多复制,以平衡压力为目标。
  • 历史数据拆分由DBA与开发人员商议拆分时间,每次拆分时间由DBA与开发人员确认则删除或转移至数据仓库。

六、SQL相关

总原则,最小化查询结果集,不做不必要的操作,分散压力到平时。
尽量不做全表查询,根据需要选择需要的字段需要的行。
条件尽可能详细,不要让数据库扫描不必要的行。
选择条件尽可能按照一致的顺序出现,最大化利用索引。

  • 尽量将大结果集操作拆分到多次执行,避免数据库长时间被锁。

七、工作流程

  • 通过Cacti和mysqlreport脚本查看运行状态
    通过mystat脚本监控实时状态
    通过mysqlsla脚本分析昨日慢查,可作为计划任务每天定时执行,清空旧慢查
    对每日慢查进行调优
    通过mysqlidxchx脚本对无效索引进行检查
    建表要询问哪些字段会用来查询和连接,建立索引
    改字段要问清类型和范围,设立合适的数据类型
    表结构的修改必须加注释,每个字段都要有注释,除了id
    从数据库删除数据一定要先备份再删除。
    每月末要执行历史数据清理,通过mysqldump –where来导出指定范围的数据,插入数据仓库。
  • 无用表和字段要及时清理
分享到:
评论

相关推荐

    运维须知:挑选数据库服务器的五原则 数据库运维.docx

    运维须知:挑选数据库服务器的五原则 数据库运维.docx

    DevOps故障排除 linux服务器运维最佳实践

    Linux服务器运维最佳实践》首先介绍了故障排除中要掌握的基本方法和原则,然后针对Linux系统中的常见问题,逐个分析故障原因并给出故障排除方法,这些问题包括服务器运行缓慢、系统无法启动、不能写入磁盘、服务器宕...

    数据库服务器选型原则及实例解说.doc

    数据库服务器选型原则及实例解说

    毕业设计-keywords搜索关键词包括各种教程安全awesomecLinux运维数据库安卓androidios.zip

    在使用这些资源时,请务必遵守学术诚信原则和相关法律法规,不得将其用于任何商业目的或侵犯他人权益的行为。对于任何因使用本资源而导致的问题,包括但不限于数据丢失、系统崩溃或安全漏洞,风险自担哦!

    MySql整理(基础进阶运维).docx

    基础篇,通用语法及分类,DDL(数据定义语言),DML(数据操作...InoDB引擎,逻辑存储结构,架构,事务的原理,MVCC(多版本并发控制),MYSQL管理,系统数据库,常用工具,mysql,mysqladmin,mysqlbinlog,mysqlshow,mysqldump,运维

    高性能Linux服务器构建实战:运维监控、性能调优与集群应用

    运维监控与性能优化篇通过理论与实践相结合的方法讲解了如何利用Nagios进行性能监控,以及Linux服务器的性能分析原则和优化方法。集群高级应用篇是前面内容的综合,也是本书的核心,主要讲述了如何通过LVS+heartbeat...

    智能运维管理平台建设方案.doc

    11 4.5.5数据库级安全 12 第五章 系统功能设计 13 5.1统一登录入口 13 5.2智能巡检分析系统 14 5.2.1设备信息管理模块 15 5.2.2参数管理模块 15 5.2.3巡检表管理模块 15 5.2.4巡检任务管理模块 15 5.2.5巡检任务执行...

    大数据云计算技术系列 NoSQL数据库学习教程(共71页).pdf

    5 NOSQL们背后的共有原则 5 假设失效是必然发生的 5 对数据进行分区 5 保存同一数据的多个副本 5 动态伸缩 5 查询支持 5 使用 Map/Reduce 处理汇聚 5 基于磁盘的和内存中的实现 5 仅仅是炒作? 6 附 6 感谢 6 版本志 ...

    01开源NewSql数据库TiDB Introduction (Feb 2018)

    围绕上面三点原则,TiDB 做了大量的改进,一些是对外可见,如 OLAP 性能的显著提升、监控项的大量增加以及运维工具的各项优化,还有更多的改进是隐藏在数据库背后,默默的提升整个数据库的稳定性以及正确性。...

    华为 HCIE-Cloud Service Solutions Architect LVC 培训视频教程【共68集】.rar

    01华为云介绍及架构设计原则-01华为云是什么 01华为云介绍及架构设计原则-02华为云的基础设施 01华为云介绍及架构设计原则-03云上架构设计原则 01华为云介绍及架构设计原则-04华为云的定价是怎样的 01华为云介绍及...

    政务云整体建设方案(167页)

    4.1 城市基础数据库 17 4.1.1 系统概述 17 4.1.2 需求分析 17 4.1.3 系统功能 18 4.2 政务信息资源交换平台 18 4.2.1 移动电子政务平台 19 4.3 政务协同办公 19 4.3.1 远程医疗系统 21 4.3.2 区域卫生系统 21 4.3.3 ...

    缓存配置说明.doc

    缓存按照规划,AI-CRM5.0系统除数据库以外,将全部迁移至X86刀片服务器,工程以两级中心、三层架构、统一平台和统一数据的体系架构的原则下,构建面向SOA的CRM系统架构,依据天津现网1000W的用户规模,双中心预计会...

    03开源NewSql数据库TiDB-Deep Dive into TiDB

    围绕上面三点原则,TiDB 做了大量的改进,一些是对外可见,如 OLAP 性能的显著提升、监控项的大量增加以及运维工具的各项优化,还有更多的改进是隐藏在数据库背后,默默的提升整个数据库的稳定性以及正确性。...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    10.4 系统性能分析标准和优化原则 10.5 几种典型应用对系统资源使用的特点 10.5.1 以静态内容为主的Web应用 10.5.2 以动态内容为主的Web应用 10.5.3 数据库应用 10.5.4 软件下载应用 10.5.5 流媒体服务...

    HCIE-Cloud Service Solutions Architect V1.0 PPT文档和实验手册.zip

    第8章华为云运维架构设计。pptⅸ 第7章华为云应用架构设计。pptⅸ 第6章华为云上大数据处理与分析。pptⅸ 第5章华为云数据库架构设计。ppv 第4章华为云存储架构设计。pptⅸ 第3章华为云计算架构设计。pptⅸ 第2章华...

    H3Cloud云计算管理平台项目方案建议书模板.rar

    2.1.8物理设备选型原则 2.2资源抽象和控制层 2.2.1计算资源池设计 2.2.2存储资源池构建 2.2.3网络资源池构建 2.2.4虚拟化管理平台 2.3云服务层 2.3.1 IaaS服务 2.3.2多租户组织架构 2.3.3虚拟数据中心 2.3.4云服务...

    网站设计方案书.docx

    利于管理人员统一管理信息发布及使用者信息旳平台 建立公司信息和公司资源旳网上共享平台 2、目旳实现规定 由以上建设目旳旳规定,我在平台设计中,建议强调如下原则: 即时性 访问者可以即时理解公司最新动态及有关...

    HCIE-Cloud-Computing3,0+ PTT

    第一章:华为云介绍及架构设计原则 第二章:华为云网络架构设计 第三章:华为云计算架构设计 第四章:华为云存储架构设计 第六章:华为云上大数据处理与分析 第七章:华为云应用架构设计 第五章:华为云数据库架构...

    IBM DB2经典视频教程

    第5周 DB2性能优化:日志优化,包括日志优化三原则、日志原理、参数配置、日志性能监控等。 第6周 DB2性能优化:运维工具优化,包括Runstats、Reorg、Export、Import、Load、Backup/Restore等。 第7周 DB2性能优化:...

    6.9.1主机系统及数据库安全管理规范.docx

    防病毒系统应自动保持防病毒代码的更新,或者通过运维操作员进行手动更新。 入侵检测与防范 通过主机入侵检测系统、主机日志系统等主机安全技术,结合网络安全技术(如网络入侵检测系统、防火墙等),实现对各种...

Global site tag (gtag.js) - Google Analytics