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

145 天前
 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 手册》中,但是数据库本身根本就没有实现,是个虚空接口。
6950 次点击
所在节点    程序员
50 条回复
sun1991
144 天前
#2 没看懂.
Oracle Not Null 列里面存在了大量空字串''的值? 怎么进去的?
fyooo
144 天前
哈哈,有意思,谢谢分享
crz
144 天前
@sun1991 看描述,合理的理解可能是,源不是 oracle 兼容,或者自定义规则空字符串有效,信创库是 oracle 兼容,导入后空字符串因为某种机制转换为无效值
iyaozhen
144 天前
工作中遇到过类似的事情 问过大领导,我们能不能不做这块

领导说:这块的钱你赚不赚,不赚就可以不做。其实答案很明显,要是马云说吃一口💩给 1w ,我能给马云吃破产。
Lighfer
144 天前
不用猜,就是达梦
random1221
144 天前
到底是哪一家啊
forsuperper
144 天前
500 强 开源,集群节点。。。这个几个合起来就是爱国
kenvix
144 天前
华为?
HOMO114514
144 天前
@sun1991
源库里`''`是有效的非空值,比如 DB2 、SQL Server ,但客户方统一规定信创数据库使用 Oracle 兼容模式,即`''`等价`NULL`。
预期当中,这个库里的数据应该根本导入不了信创数据库的,在导入过程就应该触发违反非空约束。
ZZ74
144 天前
太久没结束数据库,我咋记得 oralce 空 和 null 两码事啊.... 难道记反了 以前写 IS NOT NULL/IS NULL 后面得跟一个是否空的判断
random1221
144 天前
@ZZ74 你记错了,oracle 不区分''和 null
bugmaker233
144 天前
又不是不能用.jpg
bug51
144 天前
华为?
sun1991
144 天前
@HOMO114514
@crz
哈哈, 明明可以 fail early, fail fast, 就是要搞事情. 就好像修 bug 时, 吃掉 exception 不处理装作一切太平.
AAAAAAAAAAAAAAAA
144 天前
达梦吗
hihanley
144 天前
达梦
dbpe
144 天前
兼容 oracle 达梦么?
dbpe
144 天前
@Leviathann 真的是套壳就谢天谢地了..最烦的加作料
codingmiao
144 天前
@HOMO114514 这顿操作没看明白,为了遵守 GPL 开源,但是所谓自主可控后为什么就不需要遵守 GPL 了?那别人用的过程中发现他基于 GPL 的代码痕迹,那他不完蛋了。。
mark2025
144 天前
人在信创 公众号?

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

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

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

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

© 2021 V2EX