数据库管理 2023-04-17
- 第六十八期 Oracle 23c的其他
- 1 DGPDB
- 2 无锁并发
- 总结
第六十八期 Oracle 23c的其他
由于Oracle 23c的文档相对较少,一是当前文档主要面向开发人员,二是感觉实际内容还在不断增加,主要还有一点就是各种新特性的在官方文档中的范例确实太少,很多东西需要不断地摸索做实验。众所周知我的SQL能力希撇,所以SQL Domain相关的内容,先搁置一下,弄点其他的。
1 DGPDB
从21c开始,Oracle支持PDB级别的DB,但是standby PDB只能mount,仅能mount同步数据。
相较于传统DG模式,PDB级别的DG其实简化了DG实现的门槛。从23c开始DGPDB可以为只读打开状态,CDB彻底沦为插座,这可以更加便捷的实现资源分配、读写分离、快速切换等功能。由于Oracle 23c 文档高可用部分还没有内容,计划照着21c的方式来构建并摸索。
然而,机器装好了,数据库装好了,最终发现23c free作为免费版本,直接不支持DG Broker,所以只能把这个实验放到后面正式版发布后再做了。(虚拟机已准备好,坐等)
2 无锁并发
直接上示例:
首先表需要有主键:
选择工资最高的人,开了4个终端进行模拟操作,分别用T1-T4指代。
-
T1操作:
这里有个限制,只能加减,不能乘除。
-
T2操作:
-
T3操作:
-
T4操作:
-
T2 commit,T1、T3查询:
-
T3 commit,T1、T4查询
-
T4 commit,T3查询
-
T1 commit,T2查询
最终结果满足24000+100-25+5的最终值。同时数据操作没有出现锁,分开commit的时候也会影响全局查询,但是最终数据是正确的。
这里还可以看到针对reservable的列,直接修改值也是不行的,这其实也是对数据安全的一种保护。
总结
老规矩,知道写了些啥。