暂无图片
暂无图片
12
暂无图片
暂无图片
暂无图片

如果有一天面试DBA,我会问这7类问题

原创 多明戈教你玩狼人杀 2021-11-05
5520

一个岗位做久了,自然而然就会有做面试官的机会。有时候是给自己公司,有时候是给兄弟公司或者帮朋友面人。从一开始面别人不知道问什么,到后来能够根据岗位要求来灵活决定问题,我也经历了一个过程。这期间当然也有自己在面试者面前尴尬的情况。有关做面试官问什么,我有这些心得。

问题类型1:体系结构

不管什么数据库,做DBA都是必须要了解这个数据库的体系结构的。例如Oracle的实例包含内存区域,SQL Server的存储引擎是怎么回事,PG都有哪些后台进程,通过这些问题可以了解一个面试者对这个数据库的基础了解程度。当然,也有一些面试者会说,平时不会全都记住,但是会关注其中一部分。不妨让他们展开来说说,这其中仍然有很多东西可以深挖。

同时要结合数据库实际情况有所侧重,比如都是集群数据库那么多问一些RAC相关的问题,例如ASM、Cache Fusion。如果是有多地灾备的环境,就多问一些Dataguard相关的内容。对基础知识和体系结构的理解,会一定程度上反映出一个人的真实水平。

比较特殊的一种情况是,面试者可能是之前从事开发,想要转型来面试DBA岗位,也就是我们常说的开发转运维。这种情况可能会出现,面试者对数据体系结构里的某些东西特别熟悉,对其他没接触过的没有概念。这种事情就要酌情处理,如果岗位要求不是那么高,只是找个初级DBA的话,这种情况是可以接受的。


问题类型2:数据库安装与配置

作为DBA,安装数据库是动手能力里面最基础的。除了比较常见版本的数据库安装,我通常会选择去问数据库一些常用的参数配置的问题,比如一个OLAP库,服务器内存64GB,那么哪些参数需要调整,调整的思路是什么样?通过这些问题,以及面试者的思路,也能够看出他们实际的对数据库的理解程度如何。

也可以主动询问一些开放性问题,比如自己做过哪些数据库最佳实践,用的什么样硬件,为什么这么设计。不同数据库之间的数据同步是怎么做的?有没有遇到什么问题,这期间是如何调整的。这类问题不但可以考察面试者的水平,同时也可以自己学到一些东西。


问题类型3:系统优化

这类问题通常是一个不太容易验证的类型。因为不同的系统可能面临的问题不一样,优化也没有固定的答案。很多时候只能是通过问题来借此考察面试者遇到过的问题的程度以及他对数据某些方面的理解程度。我甚至遇到过对方讲述问题和解决过程,可是我自己对这块几乎不懂的时候。

这里有一些面试官会有一些误区,往往喜欢拿着网上的一些冷门问题去问面试者。像Oracle这种已经成长了几十年的产品,已经非常复杂。很可能一个DBA从事了几年的管理工作,但是一些冷门的问题并没有遇到过,对这类问题毫无头绪。

我曾经遇到过两个面试官,从网上找的题目照着念,有的答案都是错的或者只是执着于所谓的标准答案。甚至其中一道题目,疑似我当年贡献的,题目中的方法后来被我自己推翻了,但是两个面试官还在执着于那个不够好的方案。最后连他们在场的两个领导都有点看不下去了,打断了他们两个直接和我沟通。


问题类型4:运维规范

DBA是IT部门一个风险比较高的岗位,有时候一个误操作就可能给公司带来很大的损失。尤其是像金融和地产,掌握着大量敏感信息,除了对技术的要求,还需要有很高的职业素养。除了日常的系统操作必须要保障每一次登录生产环境都能

在我当面试官的时候,最终领导因为这个部分拒掉的人比例比我想象的要高很多。一些乙方的DBA来面甲方岗位的时候,往往会遇到很多各种各样的合规的问题。之前我们合作方的DBA,来面我们公司的岗位。我问他,如果我要生产环境的数据导入到测试环境,时间又很紧急的情况下,该怎么处理?他的回答是,先导入再和领导说。我告诉他,在公司,所有业务数据要复制必须要通过业务部门许可。流程不正确做的所有事情都是错的。流程正确,即便影响开发进度,也是正确的做法。


问题类型5:文档能力

不管在甲方乙方,能够通过文档把事情描述清楚,都是必备技能。

通常在面试前一天,我都会要求面试者准备一份自己写的数据库技术文档或者自己的技术博客。通过这些来考察是否能够具备文档撰写的能力。如果面试者工作了很多年,却几乎没写过技术文档,这就要对其文档撰写能力打一个问号。尤其在岗位交接的时候,一份清晰明确的文档,可以节省大量的时间,也把运维风险降到最低。

印象很深刻的是,有一位面试者,记忆力非常好。很多东西都存在脑子里,反应也很敏捷。但是我问他提前准备的文档在哪,他说自己没有写文档的习惯,都是靠脑子记忆。我表示,记忆力好是一件好事,但是往往工作中我们要把自己的东西准确传递给其他同事的时候,成文的技术文档才是公司认可的形式。


问题类型6:职业规划

我们通常都会被问,你对自己未来职业是怎么规划的。在求职者和面试官角度,往往又是矛盾的。

求职者希望的都是自己的职业生涯能有突破,不会拘泥于某个岗位某个层级。可是对面试官来说,希望的是团队稳定,如果一个人想法太多太激进,可能不见得长期做一个岗位,尤其是DBA这种需要稳定性很高的岗位。意识到这个问题之后,我一般会在问题中加一个具体的时间,比如未来3年你的职业规划是什么样,能否接受3年内一直在做同一个岗位。现在的时代,让一个人长期做一个岗位本身就已经很难,公司和员工签约一般也是3年左右。此外也会问问,过去两份工作的离职原因作为参考。


问题类型7:加分项

这类问题通常没有固定的内容。而我以自己的经历总结了如下几个。

懂业务,这个在一些行业是存在硬性要求的,一般来说懂业务对于数据库运维来说是个很大的加分项,业务会出现什么场景,不同场景对数据库有哪些挑战。

编程能力,再具体点就是写脚本的能力。DBA不一定会去写特别复杂的脚本,但是会写一些简单的脚本,是非常有意义的。

项目管理,甲方的DBA有时候还要兼顾一些基础设施项目的建设,或者数据库项目的项目管理。有这方面能力可以为公司节省更多的人力成本。

其他基础设施知识,一个DBA会和系统、存储、网络、中间件都打交道,这些领域的知识不可能做到样样精通,但是如果在某一个方面有相关经验,对于以后的运维来说,是个加分项。

当然,这里面还是有很多东西没有完全涵盖,比如写复杂SQL、存储过程等等。往往是和DBA的工作量以及组织结构有直接关系。例如之前我在外企,有专门的团队专门做SQL和存储过程的开发。


面试,不仅仅是检验别人,其实也是一个DBA检验自己的一个机会。好的面试官,可以根据面试者的情况动态调整面试问题的难度和范围,反之只知道照着念问题的面试官,被应聘者打脸的情况也屡见不鲜。每一次面试,当作一次对自己的检验和学习,做到见贤思齐,也是一个DBA成长的途径。

最后修改时间:2021-11-09 14:09:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论