我觉得DBA应有的专业技能、职业素养,从工作不同阶段来分:
起步阶段DBA:
1、配置虚拟主机或者服务器中需要的DB环境(我们现在用的是mysql数据库);
2、熟悉常用的linux命令(这里忽略掉windows主机);
3、熟悉数据库日常维护工作,排查数据库相关错误;
4、可以分析运行log,了解数据库安全相关知识;
5、管理数据库存储结构、用户和安全;
6、知道数据库备份和恢复(可以通过数据库本身实现自动备份,或者通过linux的定时任务等备份);
7、监控数据库运行状态、数据存储硬盘使用状况等;
8、对数据库有这不断进取学习的能力;
9、有着后台开发技术更佳。
起步阶段DBA,可能不能称作为DBA,可能小的公司没有单独这个职位,有后台开发人员兼职去做(我们现在就处于创业的初级阶段,我同时做着后台功能,同时维护着数据库,做着上述几条的工作!)
进阶阶段DBA:
1、熟悉数据库(mysql)操作手册,这个应该至少要看一遍;
2、熟悉网络相关知识、linux操作系统相关知识;
3、能对数据库性能进行调优,查找到现在运行数据库瓶颈在哪;
4、分布式部署数据库能力、备份容错、快速恢复数据库能力;
5、严谨的态度,尤其是线上系统操作,一定要慎之又慎(例如rm操作);
6、具有挑战精神、有利用新技术解决公司面对的问题、不断学习的精神;
7、遇到问题善于沟通。
资深阶段DBA:
1、至少5-10年维护大型数据库系统开发经验(例如阿里云里的各位大牛);
2、知识体系全面;
3、熟悉操作系统对硬件的利用和调度机制,很清楚的知道每个sql运行消耗资源(猜的,但是应该具备的);
4、熟悉各种数据库的优劣,熟悉云计算相关的非关系性数据库;当然熟悉云(阿里云、亚马逊云等)、hadoop、hdfs、spark等更佳;
5、更加沉稳老道;
6、协调DBA团队的能力,共同处理棘手问题;
7、。。。。。。
以上是自己认为一个DBA进阶必须需要知道、学习、积累的。知识是很重要的,学习能力亦很重要,DBA的个人素质会随着前两者到达一定的程度后变的异常重要。
看见阿里云上有这个讨论,就凭自己点经验及想像随感而写。