云计算

从事DBA是一种怎样的体验?

本文主要是介绍从事DBA是一种怎样的体验?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

大家好,我是马听,目前有8年DBA工作经验,这一篇文章,来跟大家聊一下,从事DBA岗位是一种怎样的体验?

DBA(数据库管理员)是负责管理和维护数据库系统的专业人员

我们就来聊一下大家对于DBA,常见的一些疑问。

DBA 相对其程序员相关岗位,有哪些优势呢?

第一点,加班相对较少:通常情况很少加班,除非需要再业务低峰,比如凌晨进行一些迁移或者其他一些操作,当然如果业务进入稳定期,那这些情况通常是很少的。

第二点,薪资方面,完全可以达到同经验年限开发的薪资,当然,如果你的工作表现突出,甚至会更高。

第三点,相对开发,年龄危机来的更晚一点。有些公司招DBA,就是只考虑有丰富经验的。

第四点,更容易进大厂,通常设置了DBA岗位的也都是中大型厂,如果我们能从事DBA,那进大厂的概率相对开发更容易一些。

第五点,高挑战高回报,相对其他岗位,我们从事DBA,如果学的多,比如会更多的数据库,对原理很精通,那工资会更高。

第六点,成就感,DBA岗位可以给我们带来一些其他岗位无法比拟的成就感。

我即将毕业,适合做DBA吗?

如果是计算机相关专业的本科或者大专,把主流数据库(比如MySQL、Redis、MongoDB)的一些重要知识点学习完,那很容易找到一份DBA的工作。

如果非计算机相关专业的本科或者大专,需要自己补充一些计算机相关的知识,然后再结合主流数据库的知识点,也可以顺利的找到DBA相关的工作。

我工作几年能转DBA吗?

如果之前从事的工作和数据库有关,比如大数据、运维工程师、后端开发,都是可以转DBA的,我认识的人中,很多就是从运维工程师和开发转的。

如果从事的不是数据库相关的人群,那么如果你具备良好的学习能力,补充一些计算机的基础知识,再结合数据库相关的知识体系,也完全可以转行做DBA的。

DBA对开发能力有要求吗?

作为DBA需要具备一些基础开发能力的,比如:需要DBA开发一些管理平台或者编写一些自动化脚本之类的。

一般公司对DBA的开发能力要求也不是非常高,也就是会写代码,不精通也没关系,重点是对数据库的知识掌握要熟悉。

但是想要进入大厂,开发能力是一定不能缺少的。

DBA岗位薪资怎样?

可以一起看一下,昨天笔者随便找的某个招聘网站的几个DBA相关的JD。
1
图片描述

2
图片描述

3
图片描述

当然,有人要说了,这个是不是故意写这么高,实际面试开的工资会少很多。

根据笔者的了解,其实上面的薪资基本是真实的范围,很多笔者认识的DBA,普通本科毕业的,也能拿到上面截图范围中的薪资。

DBA需要掌握哪些内容?

linux基础命令,生产环境的数据库,大部分是运行在linux机器上,所以数据库部署,性能排查等操作,都会用到一些linux命令。

shell,我们需要通过shell来编写MySQL部署脚本或者备份脚本。

SQL,DBA需要掌握SQL语句,才能保证SQL优化之后,结果是对的。

掌握主流数据库,比如MySQL、Redis、MongoDB,除了这些,其他的数据库也需要狩猎一些,比如TiDB、OceanBase、ClickHouse 等

数据库理论,比如主从复制原理,MVCC等,这样在日常维护中,才能很快定位到一些问题。

备份恢复工具的使用,要学会常用备份工具的使用,比如mysqldump,xtrabackup,mydumper等备份工具,并能知道各种场景下备份文件的恢复。

高可用架构部署和维护,高可用架构部署也是DBA最后重要的工作,包括这些高可用架构的维护。

监控工具的使用,比如Prometheus、Zabbix等监控工具,需要知道怎么添加监控项,为什么会触发告警等。

问题排查,遇到问题,能第一时间排查出来,并解决这些问题。

一门开发语言,建议Go或者Python,用来开发自动化运维平台,或者编写一些工具,来提高工作效率。

除了上面这些技能,好需要掌握一些软技能,比如

沟通能力,DBA经常会和研发沟通,或者解释一些问题,所以需要具备良好的沟通能力。

组织能力,当遇到迁移等大型项目或者数据库出现重大问题时,DBA需要有很强的组织能力,让各个环节的人知道做什么。

了解业务,我们也需要去了解一些业务,比如哪些业务数据非常重要,备份需要保留更长时间,哪些业务需要更高的TPS,哪些业务可能有突增流量等。

云时代,DBA 工作内容有哪些变化?

1 恢复演练

对于 MySQL 实例、单库、单表,定期进行恢复演练,现在很多云厂商的数据库服务虽然自带这些功能,但是根据以往的经验,第一次恢复多多少少还是会遇到一些问题的。

如果有开发能力,后续可以写成程序,通过程序调用云厂商接口的形式实现。

2 资源缩减

很多业务上线之后,往往达不到当时预估的峰值,我们可以做的就是对资源使用率进行评估,然后进行资源缩减,从而节约成本。

3 答疑

跟以前一样,DBA 工作的一部分就是答疑。比如:数据库默认存储引擎、隔离级别,实例对应的 QPS,当然这类重复性的问题可以整理成文档。

4 增加监控和告警处理

云厂商自带的监控不能适用于所有场景,所以我们总要增加一些特有的监控项,并及时处理告警。

5 Redis 大 key 分析

使用云 Redis 之后,也是要关注的,但是很多云厂商自带 Redis 大 key 分析结果,如果我们要按业务集中展示出来,可以通过调用云厂商的接口,获取大 key 分析结果,然后基于业务分组,并展示给研发。

6 数据库巡检

比如巡检 RDS、Redis 的付费方式,剩余时间,时区等。有异常发送给 DBA,防止出现线上数据库服务到期未续费或者时区不统一的低级错误。

7 评分系统

对于每个 RDS 或者 Redis 或者 MongoDB,形成一个评分,具体打分维度比如:Slow Log 条数、CPU 最大使用率、大表数量、表数量、磁盘使用率、连接数使用率、IOPS 使用率等。

8 迁移支持

有时需要从机房迁移到云上,或者在不同云厂商之间迁移。需要找到合适的数据迁移方案(很多云厂商都有 DTS,一般支持很多场景的数据迁移),并且参数要统一(比如时区、SQL Mode 等)。

9 资源申请/扩缩容

经常会遇到一些资源申请或者扩缩容的需求。可以在页面点,可以调云厂商的接口,也可以借助其他工具(比如 Terraform)。

10 分库分表支持

通常情况也是能不分就不分,如果业务实在有分库分表的需求,需要 DBA 配合他们做。

11 SQL 审核

很多云厂商都有自己的 SQL 审核产品,比如阿里云的 DMS,如果公司采购了,需要 DBA 熟悉他的使用,以方便日常的审核或者答疑。当然 DMS 不便宜,如果有条件,可以自行开发一个 SQL 审核工具。

12 SQL 优化

SQL 优化也是要继续做的事情,尽管有些云厂商自带慢查询优化建议,但是也要 DBA 去验证优化建议是否可行,并且需要跟进研发后续是否优化了。

13 架构设计

可以给业务一些架构设计上的建议(比如某项功能使用哪种数据库最好,当然,前提是我们要学习更多的数据库)。

14 开发规范

可以结合公司场景制定一个数据库开发规范,定好规范并真正实施之后,其实很多问题都可以避免的。

想要要从事DBA,需要掌握哪些数据库?

建议掌握几门数据库

通常互联网企业,都是要求MySQL、Redis、MongoDB,当然也可以学一些其他的数据库,比如TiDB、ClickHouse等。

如何系统的学数据库知识,从而能找到一份DBA相关的工作?

在前几天雷军的2023演讲中,他分享了一个这样的故事,他想在两年修完大学四年所有的学分,但又不知道怎样选课,于是厚着脸皮请教了一些学长,学长也很热心的告诉他怎样选课,甚至还把他们用过的教材、教辅、课堂笔记打包送给雷军。

雷军的这一次经历,也让他有了一个特别重要的收货,遇到问题,第一时间找个懂的人问问。很多人觉得,自己遇到的问题,只能自己琢磨、自己搞定。实际上,无论你遇到什么问题,别人可能都遇到过,都解决了,甚至都有标准答案,你只要找人问问就可以。

所以,如果你想最快速度找到一份DBA相关的工作,建议是找个身边有DBA工作经验的人请教,哪些应该重点学,一些难点应该怎么理解。

当然,如果你暂时不认识从事DBA的朋友,就可以考虑学习笔者刚在慕课网上线的《DBA数据库工程师》体系课程,课程包括:

基础部分:Linux、Shell、MySQL部署、SQL语句、用户管理、备份和恢复、日志文件

进阶部分:PT工具详解、开发语言连接MySQL、分区、分库分表、内存管理、MySQL主从复制、磁盘管理

扩展部分:云上资源申请和参数调整、云上数据库备份恢复、云上监控告警、SQL审核、API获取云上慢查询、API获取云上Redis大key、Redis、MongoDB运维知识

优化部分:索引、锁、事务、AI助力优化SQL、SQL优化等

高可用和自动化部分:双主+keepalived、Orchestrator、MGR、Go基础语法、Go获取MySQL状态、Go处理MySQL元数据

项目和经验分享部分:DBA企业级实战落地、独家经验分享、数据库常见面试题

并且遇到疑问,笔者会在交流群或者提问区及时回答。并且还会提供1对1面试指导以及模拟面试,助你找到一份DBA相关的工作。

课程链接:https://class.imooc.com/sale/dba
图片描述

这篇关于从事DBA是一种怎样的体验?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!