上一章我们说,甲骨文这门生意像收房租——签下许可证,客户年年续费,钱像自来水一样流进来。但房东能安稳收租,前提是租客搬不走。这一章我们就把这句话拆开:一个用了甲骨文数据库的公司,为什么想换换不掉?这个"换不掉",具体锁在哪几个螺丝上?把这几颗螺丝看清楚了,你就摸到了整座护城河最底下、砌得最早的那块石头。
先说清楚:数据库到底是个什么东西
数据库,你可以先粗暴地理解成一个"特别讲规矩的仓库管理员"。你把公司所有要紧的数据——订单、客户、账目、库存——都交给它保管。它负责三件事:把数据摆好、你要的时候快速找出来、以及保证在任何时候数据都不会自相矛盾。
甲骨文卖的是一种叫 关系数据库 的东西。"关系"两个字听着玄,其实就是说数据都摆成一张张表格:一张表存客户,一张表存订单,订单表里记一个"客户编号"指回客户表。表和表之间靠这种编号勾连起来,这就是"关系"。你跟它打交道用的语言叫 SQL(读作"sequel"),一种专门用来查表、改表的语言,比如"把所有欠款超过 30 天的客户挑出来"。
为什么这事这么要命?因为对一家银行、一家航空公司、一家电商来说,这个仓库管理员管的不是普通杂物,是命根子。转账转到一半崩了、机票同一个座位卖给两个人、双十一订单对不上账——任何一个都是灾难。所以谁一旦选定了一个靠谱的管理员,就极不愿意再换。
换一个核心数据库,难在哪
工程师最容易犯的一个直觉错误是:数据库不就是个存数据的地方吗?把数据从甲骨文导出来,再导进另一个数据库,不就搬完了?如果真这么简单,甲骨文早就没护城河了。真正难的地方,从来不是搬数据本身,而是下面这几层缠绕。
第一层:SQL 长得像但脾气不同
SQL 名义上有国际标准,听起来各家数据库应该能互换。但现实是每家都在标准之上加了自己的一堆"方言"和独门函数。甲骨文尤其如此——它有大量只有它才认的语法、只有它才有的函数、还有一种叫 PL/SQL 的东西(甲骨文自己的编程语言,让你能把一整段业务逻辑直接塞进数据库里跑)。
一家公司用了甲骨文十几年,往往在数据库里堆了成千上万行 PL/SQL——发工资的逻辑、算利息的逻辑、月底结账的逻辑,全写在里面。换数据库,意味着这些代码一行都不能直接搬,得用新数据库的语言重写一遍。而且这些代码常常是十几年前某个已经离职的人写的,没人敢保证自己完全看懂了它在干嘛。
第二层:应用程序在假设"底下是甲骨文"
数据库不是孤零零一个仓库,它上面压着一整栋楼——公司所有的业务系统都建在它之上。这些系统在写的时候,程序员会有意无意地依赖甲骨文的种种特性:它的性能脾气、它处理并发的方式、它某个特定行为的细节。你把地基换掉,上面这栋楼的每一层都可能咯吱作响,出现谁也没预料到的裂缝。
打个比方:这就像你想给一栋住了人的大楼换地基。理论上地基是地基、楼是楼,可以分开。实际上楼里所有的水管电线都是按老地基的位置铺的,你一动地基,得把整栋楼的水电重走一遍,还得保证换的过程中住户水电不断。
第三层:一次都不能错,还不能停
这才是最狠的一层。银行的核心数据库不能说"我们周末停三天,搬完再营业"。它必须一边正常收钱转账,一边把自己搬到新家,而且搬完之后,一分钱都不能对不上。
这里有个关键词叫 迁移(migration,就是把数据和逻辑从一个系统搬到另一个系统的整个工程)。核心系统的迁移,几乎从来不是"搬一次",而是要让新旧两套系统并行跑上几个月甚至几年,一点点把流量从老系统切到新系统,随时准备出问题就切回来。这中间任何一次对账不平,都可能让整个项目推倒重来。
把这些难处加起来,等于什么
现在我们把上面三层难处翻译成一个 CTO 桌上的决策题。他要换掉甲骨文,需要付出的代价大致是:
- 一大笔一次性成本:重写所有 PL/SQL、改造上层应用、买新硬件、雇一支专门团队,干上一两年。对一家中大型企业,这个数字量级上常常是几百万到上千万美元。
- 一段高风险窗口:迁移期间系统更容易出故障,而故障砸的是最核心的业务——收钱的、结账的。
- 一个几乎看不见的收益:就算全部搞成了,换来的也不过是"和以前一样能用",业务上没有任何新增价值,顶多省下点许可证费。
这道题的答案,对绝大多数公司来说是显然的:不换。这就是经济学里说的 切换成本——不是产品本身有多贵,而是"离开它"这个动作本身太贵。切换成本一高,客户就被钉在原地,动弹不得。
切换成本怎么变成了定价权
护城河的故事到这里才讲到一半。锁定本身只是让客户走不了,甲骨文真正厉害的一步,是把"客户走不了"这件事,翻译成了自己账本上的钱。这个翻译器,就叫 定价权——你有本事涨价,而客户明知道被涨了,也只能咽下去。
逻辑链条是这样的:客户被锁定 → 换掉甲骨文的代价是一千万、还得冒系统崩的风险 → 那么只要甲骨文每年涨价、加各种费用,只要这笔账加起来还没超过"一千万加风险"这条线,客户理性的选择就是接着付。甲骨文很清楚这条线在哪,于是就把价格顶到这条线附近。
说得再直白点:搬走要花一千万,那我一年多收你两百万的费用,你也只能忍——因为忍五年才等于搬一次的钱,而且搬还有搬崩的风险。这不是抢,这是精确地按你的"逃跑成本"给你定价。销售铁军最擅长的谈判筹码,本质上就是替你算这笔账,然后把价格顶到你不得不留下来的那个点。
甲骨文把这种定价权用到了极致,尤其体现在两件事上。一是 软件审计——它有权来查你到底用了多少、有没有超出许可证范围,一查往往能查出一笔"欠费",逼你补交或升级到更贵的套餐。二是它复杂到出名的许可证条款,比如按 CPU 核心数收费、虚拟化环境怎么算等等,复杂到客户自己都算不清自己该付多少,而算不清的时候,吃亏的总是客户。这些都不是数据库技术本身,而是把"你走不掉"这个事实,变现成现金流的一整套机器。
这块石头,砌得有多牢
回头看,甲骨文护城河最底下那块石头,是这样砌成的:数据库管的是企业命根子,所以选型极其谨慎、极其黏人;而它的技术特性、专有语言、和上层应用的深度缠绕,又让"离开"这个动作贵到不合算;最后,它用审计和复杂条款,把这份"离开太贵"精确地换算成了自己的涨价空间。锁定、切换成本、定价权——三者环环相扣,缺一不可。
但请记住一件事,我们后面几乎每一章都会回来敲打它:这块石头之所以牢,靠的是一个前提——数据非在你自己家的机房里、你自己买的甲骨文数据库上跑不可。整套锁定,锁的是"客户拥有并运维一个甲骨文数据库"这个动作。
那么,一旦世界变了——数据不再养在自家机房,而是按小时租用别人云上的服务;一旦上层应用可以整个打包换成别人家的 SaaS,压根不在乎底下是哪个数据库——这块石头下面的地基,还稳吗?这正是从第四章开始,我们要一层层撬开的问题。护城河最初的那块石头砌得再牢,也架不住有人把它脚下的地给挖走。