一文教会DBA做数据库梳理

最近对数据库做了下梳理和优化,使得数据库的成本每月下降20多万,成本优化幅度达超过80%,这个数字一点也不夸张。但是这篇文章不是想炫耀给公司节约了多少成本,而是想通过一个具体的案例,给我们技术人普及一个最基本理念,那就是如何通过你的专业度来为公司省钱和提升效率,从而更好的展现我们作为技术人的价值。

契机

最近到了新的部门任职,开展工作的时候,由于对数据库相关的工作非常熟悉,因此切入点就选择了先从数据库开始,在短短2周的时间里,让线上DB的成本下降80%,并且业务稳定运行。这里把我的经验整理出来分享给大家,大家如果到了一家新环境也可以用类似的方法来做数据库相关的梳理和优化工作,在此次的整理中,我从下面几个部分来做梳理。

如何梳理

一、数据库实例梳理

数据库梳理部分,可以详细梳理各个环境的数据库的资源使用情况,包括数据库的规格,实例的数量等等,一般包含如下几个环境的梳理,有的公司环境会有多套,建议分类梳理;

1、DEV环境数据库梳理

2、QA环境数据库梳理

3、仿真环境数据库梳理

4、线上环境数据库梳理

通过这个数据库实例的梳理,你能够从宏观上了解线上数据库的部署情况,根据后面的梳理结果,可以评估数据使用是否合理以及哪些地方需要做改造和优化;

二、DB部署情况梳理

这部分主要是要了解线上数据的部署情况,一般包含如下几个方面:

1、数据库部署的路径(程序路径、数据目录、日志目录等)

2、数据库使用字符集

3、使用的引擎

4、数据库的版本

5、数据库的核心参数

     核心参数一般包含性能、数据一致性等相关参数,一般关注如下几个(下面参数仅仅适用于MySQL数据库):

    innodb_buffer_pool_size

    innodb_flush_log_at_trx_commit

    sync_binlog

    binlog_format

    character_set_server

    character_set_database

    max_connections

    这里仅仅列出了少量比较重要的参数,大家可以根据自身的情况做参数的梳理;

6、实例高可用

三、DB运营情况梳理

这部分涉及的内容比较多,大致概括如下:

1、容量使用情况

2、QPS访问量

3、TPS访问量

4、慢查询

5、CPU使用量

6、活动线程数

7、备份方案

8、权限方案

通过这些信息可以看出一个实例的健康度以及实例资源使用是否合理。

四、DB相关需求调研

调研相关的需求,比如对高可用的需求、对数据一致性的需求、分库分表、数据回滚等需求,通过这些需求能知道现在线上的部署模式是否符合要求。

举个简单的列子:

比如业务有数据强一致性的需求,而线上同步方式是异步,以及innodb_flush_log_at_trx_commit和sync_binlog参数并不是双1,那么这里就存在风险,需要做相应的改造。

思考和分析

在完成资料的收集以后,下一步就是根据自己的专业度进行分析和思考,下面列举几个思考的维度,大家在工作中可以经常这么去反问自己,然后思考出答案。

1、资源使用合理吗?

    一般根据存储容量、QPS、TPS以及CPU的使用情况就可以很清楚的确认实例的运行状态,是过于空闲、负载适中还是高负载?然后根据具体的情况对数据库做实例缩容或者扩容。

2、数据库参数设置合理吗?

3、实例负载是否在正常范围?

4、实例的权限是否设置合理?

    权限这部分比较好评估,是否存在业务权限过大的情况?root的权限是否有限定访问IP?这里一般的原则是:

业务权限一般只给select/insert/update三个权限就OK

禁止针对账号做%的授权

root用户只由DBA控制

5、是否存在低版本,以及低版本是否需要升级?

    线上一般需要保持版本的统一,特殊情况除外。

6、数据一致性需求能满足吗?

7、实例是否需要高可用?

8、慢查询是否正常?

9、索引设计是否合理?

    索引这里一般根据慢查询来判断,还有一个维度,大家可以通过pt的pt-duplicate-key-checker工具来看线上是否存在重复的索引,比如如下的索引:

10、数据库的变更流程是否合理?

11、实例监控是否合理?

12、实例的备份策略是否合理?

上面列出了我自己常用的一些主要的维度,大家可以根据自身的情况酌情添加或者删除。

改造

根据上面的分析,就可以进一步对DB做优化,这里需要根据具体的情况来进行推进,就我们现在的DB存在的问题,我做了如下的优化:

1、实例降级和升级改造

    仅仅这一步就为公司每个月节约成本20多万。

    注意:实例降级需要准确评估实例的负载情况,并对线上留有比较大的余量的情况下进行,把控好风险。

2、版本升级

3、监控告警优化

4、权限改造

5、SQL和索引优化

6、变更流程规范化

总结

做了前面的工作,你可以把前面你做得事情整理成一封非常好的邮件,你的优化成果、思考以及项目推进的详细过程,还有别忘记记录其中遇到的问题和经验教训。

总结的时候可以用思维导图来展现,比如下面的图:

备注:记住,这一步非常重要,公司中不仅要积极主动干事情,也要积极主动的总结和回报,曾经自己因为只知道埋头干事情吃了不少亏,大家一定要谨记。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容