分享一些 500 强信创数据库的有趣故事吧

55 天前
 HOMO114514
  1. 数据库的集群间节点互访通过 SSL 加密传输来保证安全性,非生产环境下,SSL 证书通过标准的 openssl 自签流程生成。openssl 自签证书的最长有效期是 10 年,然而直到今年 5 月之前,该数据库产品并未在管控平台提供任何证书过期的告警监控。
  2. 某些数据库的规则中,视空字符串''为有效的内容,但是 Oracle 和兼容 Oracle 的数据库会将''视作NULL。 以此为前置条件,使用信创数据库官方的迁移平台进行数据迁移,将某个有NOT NULL列且包含大量''的表迁移到信创数据库中,竟然能够顺利执行。落库后经过查询,发现''被转换成了一个没有内容、不是 NULL 、长度为 0 (正常情况下,NULL的长度为NULL)、显示为空、强转十六进制后显示为0x(即 RAW 值也为空)、无法通过任何 where 条件选中(IS NULL=''等)的东西。
  3. 我们已知该数据库的 Oracle 兼容模式下将''等价为NULL,但是我可以在数据库里创建一个带有列COLNAME VARCHAR(n) NOT NULL DEFAULT ''的表。表现是如果进行INSERT不指定该列的值,直接出发违反约束的 ERROR 。
  4. 客户一直在进行信创数据库的 API 长期测试。信创数据库由内核软件提供一组 API ,再由管理平台对内核 API 进行二次封装。前阵子开发向技术支持反馈,有一个基础功能的 API 接口调用一直有问题,调用失败。客户、驻场 DBA 、技术支持上下游联合调试了两天,最后数据库那边的 Developer 发现,这个接口的定义和使用方法虽然写在了《 API 手册》中,但是数据库本身根本就没有实现,是个虚空接口。
5990 次点击
所在节点    程序员
50 条回复
HOMO114514
55 天前
@codingmiao
自主可控,意味着“代码 100%纯自研”,意味着名义上“不借助任何的开源项目实现”,既然我名义上都不用它的代码了,我当然不需要遵守它的 GPL 协议

信创客户都是国产企业,都是国内自产自销,私有化部署的全是银行这种高度隔离的大客户,其它客户只能用云上服务和云底座,很难接触到数据库二进制程序。用户群够小,出了舆情精准定位和处理非常轻松,谁会因为所谓的开源正义丢了自己饭碗呢?

而且真有人能把这整个数据库系统的代码或者二进制文件偷去给国际的开源警察审查,他首先会吃到国安+法务的组合拳,这可是正儿八经的泄敌

再说了,国内目前处于蛮荒的开源环境,不遵守协议,他又奈我何?……
dyllen
55 天前
@qviqvi 就是说的什么被制裁的风险,代码都在我手上了,还怕什么制裁呀,后面升级我不要了,自我发展。实际也没见过那个开源软件伊朗,朝鲜用不了的,还有谁比他俩的制裁还严重的吗?
ShuWei
55 天前
我怎么感觉 2 、3 其实没啥问题,仅仅是因为 op 带着第三方的刻板印象
macha
55 天前
我就做过 Oracle 兼容,太难搞了。从 SQL 解析改到查询计划,当时都快吐血了。
PopRain
55 天前
@HOMO114514 这个就是胡整了,原来数据库里面有空字符串,说明应用是支持的,为什么要切换到 ORACLE 模式,应用支持吗?数据库改好再去改应用,神经两次?
iseki
55 天前
2 难道不是数据库 bug 吗,自己内部都不一致了
HOMO114514
55 天前
@PopRain
强制要求全部应用系统使用 ORACLE 模式是客户方数据库中心定的开发规范,类似的规定还有禁止使用 Procedure 等。
迁移到新的数据库,就要从头树立新的、良好的开发规范。不然以后随着业务迭代,留下来的屎山就又收不住了,比如 MySQL 的 UTF8 和 UTF8mb4
PopRain
55 天前
@HOMO114514 那你也应该应用先改好,把原来的数据库整理好再去迁移数据吧。支持空字符的数据库应用,我不相信不改就能没有问题跑起来。
另外, 迁移工具毕竟不是数据库厂商的主业,完善程度肯定不如数据库本身,之前试 MySQL 官方的 workbench 迁移工具,安装就遇到各种问题,需要自己去改 python ,才 30G 的数据库都迁移不到 MySql 。。。 最后还是自己写的迁移工具。
HOMO114514
55 天前
@PopRain
恰恰相反,我们这边的信创流程都是先把数据迁移弄好,迁移完之后带着迁移报告、开发规范、改造指南一并交接应用,再让应用接入适配、改造、联调联测
“迁移工具毕竟不是数据库厂商的主业”,常规开发是这样的,但是信创信创,讲国产替代就一定会有被替代的 DB 在,所以信创数据库的迁移工具都会全力以赴去适配某些 DB ,尤其是 Oracle 。迁移都做不好怎么去替代呢?
xausky
54 天前
pgsql 的代码非改出个 mysql 兼容模式和 orcale 兼容模式,出问题不是很正常么

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1060229

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX