最终选择是适合自己的, 白鳝说"不是说国产这不好,那不好,而是想办法用好它!" 这句话缺少了选择,而是强调努力,忍耐,等待国产数据库越来越好.
选择大于努力,大于忍耐! 以前中国市场各大美国数据库产品都在争奇斗艳,然后它们自我进化,也有很多从DB2换成ORACLE.
当然,你们公司做出了选择,那就想办法用好它就是了,前提是它稳定,厂商继续改进. 如果选择不知名DB,比如贵州银行选择了 易鲸捷esgyndb. 结果可想而知 OVER了!
ORACLE不是不能用,顶多不买服务,不买新版本而已.只所以要搞国产替代,因为鹅乌战争导致的. 甲骨文公司明确地退出了鹅国市场,不再提供服务了.那么作为非常依赖原厂的甲方,就很难受,没有背锅侠. 为了防止美西方帝国主义,资本家甲骨文公司给小鞋子穿. 我们要坚决把ORACLE数据库从中国市场踢出去.
按照传统作风来说,是一场运动,话说得好听叫自愿, 上次疫情打疫苗也是那样.
除了国企使用ORACLE外, 很多国企控股,国企入股正在接受这种压力,哪怕你没有用到ORACLE数据库,而是用其它开源数据库,也要强逼你使用国产数据库.
这就是考验老板 印度(钢铁的意志)的问题了,能否抗得住,能否怼得过,关系到老板的幸福,领导升迁!
当然作为DBA的, CTO的 您 要跟老板讲清楚利益关系.目前国产数据库BUG多,性能不咋地,除了老牌数据库外,其它数据库稳定性没有经过时间得考验.
选错了国产数据库,或者轻易转到国产数据库是个非常大的业务风险.成本高,风险大.
在经济不景气,萧条下,为了没有增益的业务而不必要的投资是不明智的.且极大可能影响业务的稳定型.
所以 没钱去用国产数据库,则要干,怼,抗上面的压力. 它们官僚主义,形式主义,运动主义作风很坏的. 为了推国产还在民企施压!
有钱替换ORACLE
可选择的数据库 建议使用国产替代之前的出生的数据库
达梦-DMDSC
人大金仓-KES RAC
南大通用-GBase8s
蚂蚁-OceanBase
中兴-GoldenDB
华为-GaussDB
老牌国产数据库都支持各种高可用模式
主从 集群 分布式 MMP
没钱有实力的 比如说工行,老早就用MYSQL替代ORALCE,比国产替代运动-瑶瑶领先好几年.那么那个啥要逼逼工行咋办呢?
工行可以自己把MYSQL改造下去申请信创, 然后工行MYSQL分支,自主自控的国产数据库.
没钱没实力的
那就继续使用开源数据库 JAVA+MYSQL8.0+REDIS+CK+ES黄金组合.
并硬刚上峰的压力.
下面给各位检查各种国产数据库消耗CPU指令的办法 PERF 纯粹娱乐放松
测试方式如下:步1:执行perf命令:
perf stat -einstructions:u,cycles:u,cycle_activity.stalls_total:u,cycle_activity.stalls_mem_any:u -p 38433
其中 38433 ,为进程号。如果是MYSQL、华为OpenGauss,这里要改为"-t 线程号"。":u",代表只在指令是用户态时才进行计数。其实就是去除操作系统的影响。
步2:在28433进程的Session中,执行SQL:
postgres=# execute cs(1);
id1 | id2 | c1 | c2-----+-----+----------+--------- 1 | 101 | AAAAA111 | aaaaaa1
(1 row)
注:SQL为:
prepare cs(int) as select * from SharkDB where id1=$1;
并且已经执行execute cs(1)多次
步3:回到perf中,Ctrl+C,就能看到效果了:
[root@sharkdb ~]# perf stat -einstructions:u,cycles:u,cycle_activity.stalls_total:u,cycle_activity.stalls_mem_any:u -p 38433^C <-------按Ctrl+C Performance counter stats for process id '28477':
60,054 instructions:u # 0.17 insn per cycle 357,168 cycles:u 302,468 cycle_activity.stalls_total:u 122,362 cycle_activity.stalls_mem_any:u
1.007995611 seconds time elapsed
遥遥领先的国产数据库:
[root@sharkdb ~]# perf stat -einstructions:u,cycles:u,cycle_activity.stalls_total:u,cycle_activity.stalls_mem_any:u,L1-dcache-loads:u -t94509^C Performance counter stats for thread id '4504':
262,662 instructions:u # 0.15 insn per cycle 1,681,672 cycles:u 1,411,605 cycle_activity.stalls_total:u 614,187 cycle_activity.stalls_mem_any:u
1.959583056 seconds time elapsed
|-------------------------------|---------|--------------|----------------|
| | PG 16 | MYSQL 8.0.25 | OPEN GAUSS 5.0 |
| 指令 | 6,0054 | 6,3792 | 26,2662 |
| 周期 | 35,7168 | 34,4998 | 168,1672 |
| cycle activility stalls total | 30,2468 | 29,6039 | 141,1605 |
高斯不出意外的遥遥领先,相同数据量、相同逻辑的SQL,单从指令数上,从原生PG多4倍。
你们说像华为这样实力雄厚的公司把PG套壳修改内核.CPU消耗指令数量比原来还高,说明代码实力不强. 那国产排名10名之后的PG魔改的DB性能又如何? 什么好弱DB,什么破烂DB.就遥遥落后了
最重要的是稳定 ,不丢数据,卡顿都无所谓,兼不兼容也无所谓.
不要把ORACLE的存储过程业务逻辑,轻松导入到国产数据库.
作为架构师DBA跟你们说 存储过程跑业务那是老掉牙的架构了,是上个世纪MIS和ERP系统的C/S架构.
要用先进的架构 微服务架构! 或者退一步B/S单体架构,总之把业务逻辑放在后端就行.
国产替换中,顺便把业务也重构一下. 数据库就是存数据的地方.用现在时髦的话说就是存算分离
最后有人说看不懂,再度总结下
1 有钱企业
直接购买先进的国产数据库, 早在信创之前诞生的
2 有IT技术实力的企业
可以直接折腾开源数据库
3 没钱没IT技术实力
只好当小白兔去购买信创鸡尾的数据库,毕竟便宜
4 可以不选择硬抗
对于控股(娃哈哈),入股(???),民企来说 不用鸟信创,国产. 不要充当培育国产数据库的牺牲品