写一篇很费心力,大家觉得好,就点下广告支持下吧!
如何选择国产数据库?
再论国产数据库的选择
DBA搞钱之路
做为一名中年DBA来说,从2002年毕业来,享受国家经济高速发展的时期,路过2008年经济危机,错过了房地产致富之路! 焦虑与不安伴随多年,不是几年,而是十几年! 小仙我,不是名牌大学,只是个普通凡人, 那时候都流传35岁门槛. 为了避开35岁的坑,从开发工程师转到了DBA! 结果还不如搞开发好,起码开发可以坐上CTO,迎娶白富美,走上人生巅峰, 什么身价过亿, 过千万.
自然搞DBA也可以,比如MYSQL的姜老师,以及名震天下的<MYSQL 45讲>的丁琦, 过手一个小目标! 更早前O记大佬人物,实现了财富之由,低调隐入尘埃里.信创国产DB似乎可以来一波造富,卖培训,卖套壳PG!
看看就好,毕竟富的只有少数,也无需羡慕,富不过三代,再说人民币贬值年年厉害,手握千万现金,不知咋办,担心贬值,吃不香,睡不好!
呃 我是吃不到葡萄,葡萄酸吧! 做个平凡的人,不焦虑,不担心就是了,该吃吃,该喝喝,该运动,该唱歌就是了. 什么云取代DBA,什么AI取代DBA,除了制造焦虑也没有其它更多的观点了. 他们互怼还是能了解到真实信息的,最怕人家商业互吹,相互隐瞒,报喜不报忧
向大佬学习,该努力,该选择还是要的! 我从开发变成DBA,从ORACLE变成MYSQL,从传统变成云RDS DBA! 世界是变化的,年龄也变化了,科技再怎么变,应用到人组成的社会,也需要时间过程,给你学习和适合机会!
下面是架构DBA之个人路径图,仅供参考!
少了个入门级DBA,也就是会用工具连数据库,并会写标准SQL99的语法,再多点就是特定DB的SQL语法.
以前很早早以前什么FOXBASE,会命令的,会SQL语法的都算是DBA!
SQL99 可是25年前的标准. 如今是个人都会数据库啦! SQL语法多简单,易懂!
运维DBA: 负责DB的安装,启动,参数设置,权限设置,系统设置,备份和恢复,数据导入导出,迁移啥的. 这一块正在被运维工程师抢活着.
开发DBA: 就是能使用DB的语法写存储过程实现业务, 以前叫数据库开发工程师,如今都被JAVA程序员取代了. 不过作为DBA你要会用存储过程,来实现数据库本身的数据运维工作.比如说删除数据,数量很大的情况下,你写个过程,分批删除,并设置作业形式自动在深夜执行. 如果你喜欢用SHELL,这东西就被运维人看见,那么你的护城河太浅了!
优化DBA: 这个主打就是对SQL的优化,比如执行计划,等待事件,优化器参数设置,表的统计信息收集,数据的分布情况,PROFILES, MYSQL还涉及系统性能的探测工具. MYSQL的索引规则,锁规则,需要有所了解,最好能熟悉!
内核DBA: 会C/C++语言,能看到内核代码,通过跟踪源码方式了解数据库真实的执行原理,对小小的问题可以FIX, 深的话可以小手术地修改
业务DBA: 懂业务是DBA与开工程师和产品经理沟通语言. 要做到了解前端,后端,DB端的操作. 比如前端页面点击下,要涉及哪些表,产生什么数据,后端能看懂JAVA代码,最好能运行调试JAVA代码,这样才能对JAVA写的流程图有深入的体会,记得更牢固,更加形象!另外MYBAITS语法要懂,要知道可以打印SQL日志,带参数,带执行时间,以及耗时情况. 另外可以通过SQL去实现某些业务的功能,经常运营同事需要查各种各样的数据. 这会对你加深对数据关系的了解.
测试DBA: 为什么要谈测试,这里的测试不是用SYSBEANCH这工具,使用偏向业务的工具,比如说JEMTER,APIFOX.直接对JAVA的接口进行压测.这让我们对数据库做任何修改有个清楚的了解.修改了有没有效果,是提高性能,还是降低了性能.
系统DBA: 我们需要对系统更加深刻的了解,尤其是开源数据库,对系统依赖比较高. LINUX系统有哪些功能,内存如何管理? 进程如何管理? 进程的页表是怎么回事? 进程上下文切换,线程有什么影响.
网络DBA: 了解网络7层,了解路由器,网关是什么鬼? DNS STOCK干啥用的? 使用工具进行解包 WINSHARK. 为什么要了解这些呢? 其实我也不太会,为什么JAVA要缓存SQL语句呢? 它缓存的是什么? 是执行计划呢,还是游标? 涉及不同的DB,MYSQL,PG,ORACLE是全部缓存游标,还执行计划?什么是执行计划? 就是SQL脚本编译的结果.一般是来一条就编译条件,可以说是解释并执行. 显然高并发下SQL解释很耗CPU的. 那么把执行计划缓存在JAR端是个好主意. 如果是游标的话? 什么是游标,就是一个地址,指向DB内存的地址,这个地址是执行计划的. DB内缓存了执行计划.那么我们可以通过网络解包方式了解JAVA是否把执行计划拉到应用端.
高可用DBA: 这个是运维DBA升级版, 主从架构, RAC架构,MGR架构,分布式架构. 读写分离架构
多样DBA: 多样型是指你了解更多的数据库,对每种数据库有个较为浅,中的认识. 比如说PG有哪些优点,哪些坑? 它适合什么场景下使用. 其它MYSQL,ES,MONGDB,CK. REDIS. 这些都是比较常用的DB.
最后是架构DBA, 你把上面都经历一翻,用上一翻的话,对这些都门儿清了.不清你也基本了解个大概.心里有个底!
然后我们要做架构! 根据公司的金钱的力量,和人员的实力,业务的特性,项目紧急程度来设计一套数据库
设计目标是六边型的, 1 稳定型, 2 高并发性, 3 可扩展性, 4 高可用性,5可维护型,6 自动化型.
这里就要涉及些架构设计的理论知识,且不是专门为数据库写的.从过往其它架构获取理念! 我也没有学会!
只所以要有个数据库架构师,主要是应用架构师精力有限,对数据库了解只是懂点皮毛,顶多懂点肌肉!
所以大家不要焦虑,信息化的社会,数据库可是社会的基石,类似于财务总监.
也许日后的将来就会多个CTO什么总监,既然有财务总监CFO,设计总监,技术总监,开发总监,自然要有个数据库总监. 英文单词取啥好呢? DBO
所以云的到来 可以说解放了运维DBA的工作,让DBA更有时间去干其它事,比如去享受生活! 自从使用了阿里云后,日报,日巡检都懒的做,一周做一次就行.
AI 的到来 对DBA来说如虎添翼,有问题可以问AI,无需看ACE的脸色了!
好像漏了个PPT DBA: 这里涉及PPT设计和制作, PPT如何设计更漂亮和简洁是个艺术问题. 还要写文档,还要开会和培训做演讲! 口才需要锻炼几下.
虽然你不可能达到 外面讲师级别, 只要让人看得懂,听得明白!
你看那么多要学习,有啥好焦虑的,有工作保证前提下,往这几个方面努力!
能否成功 抵达65岁工作上限,这要看缘分,国际局势,国家经济形势!
所谓尽努力,听天命罢!
愿祖仙保佑各位!
DBA界中的ACE 是时候落幕了
如何选择国产数据库?
再论国产数据库的选择
DBA搞钱之路
基于MYSQL的JAVA初级优化措施
Oracle优化新常态
MYSQL RC无索引更新CODE分析
MYSQL 索引下推 45讲