备份天天做,恢复一时难!DBA 该如何远离救火、完成自我救赎?
1、引言
2、看山是山
看山是山,就是干一行研究一行。DBA每天在做什么?以G行的经验,大概有五个方面的工作:日常维护、环境搭建、升级迁移、开发支持、故障处置。既然做DBA,就得研究怎么把这些工作做好。
-
首先选择合适的软件版本,就是所谓的LTS(Long Time Support)版本,不仅仅是数据库软件,还包括中间件、操作系统乃至硬件,最好保持基本一致的生命周期,避免“你方唱罢我登场”。
-
统筹规划,与应用系统的架构改造、功能升级的计划相结合,提升测试效率,避免资源重复投入。
-
针对不同数据量、不同重要程度和不同停机窗口要求的系统,总结对应的升级实施工艺,分类施法,有标准可依。此外,作为“高效能人士”的DBA,在版本升级这件事情上,还是尽早养成“以终为始”的好习惯吧…
前面说了日常运维、环境搭建、升级迁移、支持开发四个方面的工作,如果这四个方面做好了,数据库的故障自然会少。但不是说故障处置的工作不重要,相比其他方面的技术问题,这里我们更想说的是的DBA在故障处置中行动标准。
DBA参与故障处置,无论是不是数据库的问题,首先应该让自己进入战时状态,一切行动听指挥,严格执行指令,主动报告发现;牢记降低业务影响是故障处置第一目标,快速响应,沟通表达清晰简洁,当断则断。
图1
3、看山不是山
MySQL里的Database 的范围大致与Oracle/DB2 中的Tablespace相当,尽管 MySQL自己也有Tablespace这个概念;再有,Oracle的同学往往不怎么区分 Schema 和 User,因为在 Oracle 里面这两个东西实际使用起来没什么区别。而在 DB2、MySQL之类其他数据库中,用于认证和权限管理的 User 和用来组织对象的 Schema 之间的区别就大了。
看山不是山,这里讨论的不是哲学里共相与殊相的深奥问题,只是想建议DBA跳出某一个产品的范畴,一专多能。可以尝试一下用下面的结构梳理一下不同的数据产品。
图2
如果想了解数据库内部的原理,推荐学习这些材料:
-
MySQL:MySQL Internal (dev.mysql.com/doc/internals/en/ ,目前MySQL官网上是8.0版本的源代码指南,实际上5.7版本的Internal手册更加适合DBA)。
-
PostgreSQL:The Internals of PostgreSQL (www.interdb.jp/pg/),作者铃木启修,有中文版。
-
Oracle:Oracle Core Essential Internals for DBA,作者Jonathan Lewis(Oracle领域的大神,出自牛津数学系),有中文版。
4、看山还是山
“庐山烟雨浙江潮,未至千般恨不消。到得还来别无事,庐山烟雨浙江潮。”
苏东坡说的是人生,技术又何尝不是如此。
5、总结
如果问到我们的看法,或许可以参考这段对话:
问
他们认为分布式数据库是未来
答
“这是对的。”
问
“那我该怎么办?”
答
“要多想。”
问
“想了以后呢?”
答
“我只能告诉你,那以前要多想。”
来源:本文转自公众号匠心独运维妙维效,点击查看原文。
还不过瘾?运维如何提升自己?10月26-27日,GOPS 全球运维大会 2023 · 上海站,云原生、可观测性、FinOps、SRE,来 GOPS 就对啦!
发表评论