Oracle RAC 23ai 的Reconfiguration更平滑

最近有个客户Oracle RAC (11g)的因为interconnect network网络问题导致脑裂,节点驱逐,恢复后重启,应用有配置TAF,所以出现ORA-25402: 事务必须回滚等,并且有一段时间的连接超时,客户需要了解Reconfiguration过程时间长的原因,发现Oracle 23c 在RAC 的Reconfiguration又做创新如Recovery Buddy和调整reconfig和stop instance顺序,简单记录。

MySQL Insert Duplicate entry报错但仍持有record S共享锁,可能导致deadlock

MySQL中一个经典的并发场景。当发生 Duplicate entry 错误时,事务仍然持有 S锁(共享锁),这在某些情况下确实可能导致死锁。这现象在Oracle中并不存在,在MySQL无论事务隔离级别是REPEATABLE READ还是READ COMMITTED都存在这个问题,2个会话相同的SQL可能就会导致死锁的现象,如有些业务习惯在一个事务先insert 再update 同一记录。

达梦数据库文件误删的修复

数据库有一些重要的文件如控制文件,redo, 回滚段undo, temp,表空间数据文件,有时因为在操作系统误操作或者是存储等原因导致文件损坏,如果没有前期安装主从同步的容灾方案,那这类异常恢复还是有一些需求,同时伴随高风险,在oracle数据库有较多的技术像重建ctl,推scn, 隐藏参数非一致open resetlogs, bbed, dul/odu等异常修复手段,达梦中如果出现记录几种常见修复。

MySQL 5.7 memory_global_total view 内存使用不真实

有时做数据库监控像内存使用率,希望可以从数据库中使用SQL更加方便,在MySQL及同系的国产数据库(如GoldenDB)中同样有视图memory_global_total和sys.memory_global_by_current_bytes, 但是在早期的MySQL 5.7存在bug 可能会导致查询视图与ps、top操作系统级看到的相差很多。

YashanDB dump block确认索引储存’NULL’

前几天在一个YashahDB的测试场景中看到,yashanDB的一个分页查询SQL的相应时间比oracle要快很多,对比执行计划发现是列上没有Not null约束时,YashanDB可以走INDEX FULL SCAN,虽然YashanDB是heapTable, 那看来Null值也在index 中存储(pg同样),这点和oracle不同,下面实际查看一下Yashandb 的block是否有null记录?

YashanDB YAC 的跨节点行锁测试(Oracle enq: tx – row lock contention)

崖山数据库支持了YAC如oracle的集群RAC功能,RAC除了高可用外,大家可能比较关注像性能的提升效率比怎么样?因为大家还是希望增加节点为带了性能横向的扩展,那对于要求在cache fusion中的GES, GCS等资源与锁的管理就要求比较高,还有就是跨节点的并发争用,这里先简单测试row级争用的现象,与oracle还是有些不同。

重启Oracle 11g RAC后(on Linux7)ohasd.bin未启动

众所周知,oracle 11g(11.2.0.4) RAC 在Linux 7上安装并不是很顺利,之前我整理过几个小坑,其中最常见的就是ohasd.bin 或ohasd.server 未启动,影响root.sh时,或操作系统重启后,或安装补丁时。一般手动创建个服务,或是安装个patch引入服务也可以,但这次这个case有点复杂,断电重启后CRS无法启动,简单记录。