开发者学堂课程【PostgreSQL 实战进阶:国产化浪潮之上的 PostgreSQL(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/112/detail/1910
国产化浪潮之上的 PostgreSQL(二)
内容介绍:
一、数据库过去式
二、数据库最好的时代
三、PostgreSQL 是新底座
四、DBA 中年危机
五、PostgreSQL 学习方法论
三、PostgreSQL 是新底座
1、PostgreSQL 是技术底座
基于PostgreSQL 可以开发很多东西,比如一些新的数据库,或者也可以将PostgreSQL 做成产品的一部分,如做成ERP的一部分,做成电信信息系统的一部分,等等。
这些已经有很多成功案例,在国内外也产生了很有影响力的一些公司,如基于PostgreSQL 的 EDB、Greenplum 等,Greenplum 已经在美国成功上市。
基于 PostgreSQL 可以开发其他的数据库,所以 PostgreSQL 可以作为技术底座。需要注意的是 PostgreSQL 的功能可能无法满足我们的某些要求,而鉴于其插件式的机制,我们可以在 PostgreSQL 开发自己的插件,譬如 Postg4就是非常有名的特性。
2、PostgreSQL 是商业底座
PostgreSQL 也是商业底座,基于 PostgreSQL 我们可以创立一家新的公司,而这种公司在世界上可以说是遍地开花。创立公司后,可以基于 PostgreSQL 做自己的新产品,如 EDB,国内外有很多公司其实也是基于 PostgreSQL 做出了很多的新产品,由于涉及商业机密,这里不作特别强调。很多数据库其实都是基于 PostgreSQL 开发的,而基于 PostgreSQL,我们还可以做相关的技术服务、技术支撑、开发服务等。
因此,PostgreSQL 不仅仅是技术底座,也是商业底座,故而围绕 PostgreSQL 生态圈非常重要。
四、DBA 中年危机
这节课我们还来讨论一下 DBA 中年危机,尤其是35岁上下的老一代的数据库工程师,与以往相比,求职市场上35岁以上的老一代的数据库工程师骤增,一方面是受疫情影响,另一方面其实是由于 DBA 中年危机的到来。
对于数据库工程师来说,20多岁是学习能力最强的时候,可以在很短时间之内成长为公司的骨干,当到达30岁就已经到达了从事数据库的人生巅峰,而到35岁之后就会对人生感到犹豫,此时可能是从事 DBA 生涯的分水岭,一部分人仍沉溺于技术,而有一部分人已经转向非技术领域工作,当到45岁时,在市场上的竞争力不足,就已经已经感受到 DBA 中年危机。当然这不是绝对的,只是大部分情况。
当30岁之后,除了要学习技术之外,还需要真正的软实力。首先需要选择一个发展方向,要跟着行业变革而变革,否则就会被行业淘汰,被时代淘汰。比如以前很多人做 Oracle 可以有很多的工作机会,但是在今天又会发现在整个市场上,很多Oracle 工程师具有 OCPS 或 OCM,这也就意味着时代已经发生变革,变革的方向就在于向开源数据库和国产数据库方向发展,PostgreSQL 就是很好的基座、抓手很与着路点。
我们要跟随行业变革而变革,要跟随时代变革而变革,如果仅仅是往错的方向或者往小的技术领域,而非主流技术领域,可能就会限制我们的的职业生涯。另外我们也要加入优秀的团队,提升自己的软实力,加强自己的沟通能力和团队协作能力以及团队管理能力,当35岁以后,技术只是其中一部分,而软实力包括对行业的嗅觉都十分重要,所以要选择加入优秀的团队,提升软实力。
今天正处于变革的时代,PostgreSQL 产业在中国发生着巨大变化,正以各种直接或者间接的形式铺设到各个行业,我们感觉到整个行业的机会来了,35岁的中年危机也许是人生的另外一次启程。
五、PostgreSQL 学习方法论
当我们要转到 PostgreSQL 时,一些 Oracle、MySQL 工程师或一些开发人员会有抵触情绪,或许是因为从前的数据库编程习惯,不适应 PostgreSQL,进而觉得学习PostgreSQL 很难。
其实 PostgreSQL 并不难,如果把数据库比成汽车品牌,Oracle 是 BMW,DB2是奔驰,那么PostgreSQL 就是长城汽车,这些数据库都是相通的,在原本使用的其他数据库的基础上,只要经过短时间的学习,PostgreSQL 就可以轻松上手。
我们以 Oracle 为例,它与 PostgreSQL 具有类似的体系结构:
比如两者都有实例,实例里都有内存,比如 Oracle 有 SGA、数据库高速缓存区,PostgreSQL 也有数据库高速缓存区,只是名称不同,Oracle 也有 Redo Log Buffer ,等等。其实些区域都有对应的。
除了内存结构,两者的进程结构也是类似的。比如两者都有日志书写进程、数据库书写进程、归档进程。
两者在用户进程的连接方式上也类似。当用户连接进来时,在 Oracle 里,默认情况下会分配服务器进程,在 PostgreSQL 中也一样,也会分配服务器进程,而对一些排序来说,Oracle在PostgreSQL 里对应的部分是 work men。
两者在在物理结构上也是类似的。Oracle有数据文件,PostgreSQL 也有数据文件;Oracle 有控制文件,PostgreSQL也有;Oracle 有表空间的概念,PostgreSQL也有;Oracle 有 redo log,PostgreSQL 有 WAL;Oracle 有归档重做日志文件,PostgreSQL 也有;Oracle 的参数文件叫 spfile,PostgreSQL 也有它的配置文件postgresql.conf;Oracle 里有密码文件,PostgreSQL 对应的认证文件也有pg_hba.conf。这些其实都是类似的,没有太大区别。
会使用 Oracle,自然也会使用 PostgreSQL,而且两者故障排查的过程也相同。
有了其他数据库的基础,学习 PostgreSQL 其实非常简单。而今天的时代已经发生了巨变,行业的风向标已经发生了变化,而 PostgreSQL 工程师仍存在缺口,这就是我们的机遇。