首页 > 数据库 > 数据库开发技术 > 曹老道聊大数据云计算时代的DBA破茧
曹老道聊大数据云计算时代的DBA破茧
社会变化如大潮般一浪一浪的向前推进,冲刷着已有格局。然,对于热爱工作、热爱生活的我们来说,我们的心潮也要浮沉随浪记今朝,要保有进步之心,才能在岁月长河里安然荡漾。可有揽二乔于东南兮,乐朝夕之与共之畅快。
说数据库行业,不得不提Oracle当年的一枝独秀地位,目前其影响力依然是一座高大的标杆。彼时的DBA凭借对Oracle体系结构的了解和管理经验的积累,一杯咖啡,风轻云淡尽在掌握。学习范畴比较明确:Oracle手册学习,来纯熟日常运维操作;大量存储过程的编写,锻炼SQL逻辑能力;基于cost花销的分析,工于性能优化细节;CRS各个服务的依赖关系和asm文件系统的深入分析,掌握RAC各组件的运行机制。
随着最流行数据库MySQL的走红,MySQL已然是数据库从业人员的必备要求。默然回首过往感慨颇多,深有桃李春风一杯酒,江湖夜雨十年灯之感。然,世间唯一不变的就是变化,所以我们就深入研究MySQL,层层褪掉其外衣,细看其究竟。
接下来,我们看看DBA的几个方向领域大概涉及的专业技能储备。

1. 常规方向,传统DBA
(1). 了解体系结构:
组件的构成,Server层和引擎层的主要结构和交互;
常规配置优化,比如各种缓存参数、复制参数、连接参数等等。
(2). 常规处理过程的理解比较细化:
主从同步过程,逻辑和物理备份过程,session访问过程;
(3). 有不错的复杂SQL优化分析能力
索引、聚合、关联等的优化处理
(4).常规操作运维自动化
比如授权、修改表结构、修改数据,添加监控,管理备份,控制高可用,分析慢SQL等等。
此象限在devops、aiops的推动下,日常工作明显减少。同时也要清楚的看到,在面对复杂问题时,自动化、智能化尚在不断发展阶段,有些时候达不到预期效果,导致的现象是简单的问题更简单了,复杂的问题也更加复杂了。复杂场景的处理结果,很多时候差强人意。这种内外交困的状态令DBA很头疼,但我们要拥抱变化迎接创新,纵观古今中外历朝历代的变法图强,无一例外的都经历过黎明前最黑暗的时刻。随后到来的将是阳光明媚的一天,再之后又一波黑夜降临。周而复始,循环往复。
2. 横向拓展,大数据DBA&解决方案架构师
数据写入场景的复杂化,内容形式的多样化,以及大数据时代数据量级的逐年飞速跨越。各种因素的叠加,致使单一种类的数据库难以支撑业务的高效平稳运行。要求我们放眼数据库的生态,比如关注缓存,关注nosql,关注分布式中间件,关注newsql数据库,关注时序数据库,关注一致性组件zk、etcd等等,对业务运行的整体场景有个宏观认识。
在云技术时代,我们要清楚云技术的一些知识范畴,容器原理、sdn软件定义网络、共享存储系统等等,目前来看有竞争力的云产品,大多是几个领域组合打造出来的。
如下列举一些常见的拓展领域:
了解上游缓存的对外数据结构以及其底层结构;
一致性组件etcd raft过程,本身数据库boltdb,类比zk;
rocksdb的系统结构,lsm结构存储管理、索引结构,布隆过滤,逐层merge过程,内存跳表结构;
容器操作系统的构建过程和原理;
SDN的网络实现过程,数据包结构,和物理网络的交互;
K8S生态,资源类型、事件管理、服务访问链路、prometheus监控体系;
NewSQL、NoSQL、时序数据库,全文检索ES
常规关系型Oracle、SQLServer,PostgreSQL
3. 纵深方向,数据库内核方向
数据库的内部实现的脉络,要越捋越细致,通过源码看细节处理。
(1). 数据存储结构
数据行、数据页的内容和格式,同步到文件的过程。
(2). redo结构
日志生成、结构、写入过程,恢复时日志的作用过程。
(3). undo结构
mvcc实现,回滚过程,物理结构管理。
(4). 实例运行结构体
db buffer,log buffer,change buffer,double write buffer,data dictionary
(5). 数据库进程在OS内核的结构形态
文件访问的管理,内存分配管理
(6). io调用过程
线性预读、异步刷脏等操作,数据库内部线程和io进程的交互
MySQL 一些结构的脉络梳理:
访问鉴权,安全认证;
OS进程管理:task_t,vm_area_t;
文件描述符,打开文件表,inode表;
net buffer;
open table;
table hash,lock hash,MEM_ROOT;
存储逻辑结构:space ID、offset,file header、segment、extent,page director、slots;
buffer访问和管理结构:lru list,page hash;buf_pool_t, buf_block_t,buf_page_t;
日志过程:mtr、lock,redo buffer,logfile,binlog;
刷脏flush list,change buffer,db file;
线性预读,异步刷脏,O_DIRECT,OS I/O
4. 数据库技术专家
内外兼修,文武之道。数据库要把控整体是综合复杂的,既要求专业知识既要有深度又要有广度。
5. 非一线技术方向
DBA作为IT技术栈的中间位置,上到研发、下到运维,是较为综合类职位。因此其职业发展空间很大。
数据库产品经理,强调技术+产品能力。
项目经理,多在工作中因项目而转型,统筹管理项目。
技术管理者,由技术岗位逐步过渡到管理岗位。
树欲静而风不止,我们不能控制外界环境,但可以壮大和深扎自己的技术根基,亦可从容抵御风暴。在5G甚至不远的6G时代,随着数据量指数形式的飞跃增长,要求数据库从业人员具备大数据DBA的分析管控能力。国际形势各种技术制约,强化了国家对基础信息科技芯片、操作系统、数据库的重视,数据库内核研究人才非常紧缺的,要求我们打造实打实的好数据库。
无论国家战略,还是行业趋势,都要求有核心层面的技术。数据库领域的深度专研人才,还是很缺失的。底层数据库自研的或打造或改造,上层数据自治的功能实现的可靠性,同样都非常需要数据库内核机制的深刻了解。
当前IT科技领域,已经不允许我们只弄形式上的包装。四轮车扣个壳子,就号称准备进军豪华跑车市场,还鼓吹要大杀四方。照着葫芦不明就里,就弄了一大堆瓢,俨然是做瓢专业户,严重浪费资源和时间成本。
人生自古,多留有一份真,一腔热血,搏于业而精于业。坚持与扎实,心若不改,必然扬眉吐气!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25380026/viewspace-2746394/ ,如需转载,请注明出处,否则将追究法律责任。