版本:ob社区版4.2.0.0
执行tpcc时,在主节点执行下面命令,将数据盘锁住
echo blocked > /sys/block/sdb/device/state
查看io,没有写,说明磁盘是被锁住了
但是查看数据库,仍有数据写入,这是为啥?
而且observer的进程状态没有切到D状态,tpcc也正常执行
好神奇,这也太强了,不明白这是为啥?黑科技吗?求指点
版本:ob社区版4.2.0.0
执行tpcc时,在主节点执行下面命令,将数据盘锁住
echo blocked > /sys/block/sdb/device/state
查看io,没有写,说明磁盘是被锁住了
但是查看数据库,仍有数据写入,这是为啥?
而且observer的进程状态没有切到D状态,tpcc也正常执行
好神奇,这也太强了,不明白这是为啥?黑科技吗?求指点
几个副本?
数据文件和 clog 日志文件都在这个盘上吗?
对 我就一个盘
3个节点
3副本只要有两个副本能够写入,写入就是成功的。是不是只锁了一个节点?
对,难道要锁三个?
OB是分布式数据库,只要多数派能落盘写入就是成功的。你部署了三个节点,只锁一个节点,另外两个节点还是能写入的,满足多数派的要求。你可以再锁一个节点,写入就失败了
原来如此,我试试,多谢
这个是不是锁了一个节点,然后做了主备切换啊?可以感知到线程是D状态吗?
多数派锁后确实无法写入了, 但是我设置了echo running > /sys/block/sdb/device/state后
依然无法写入,这是为啥啊?
因为被标记成坏盘了。可以登录到sys租户,执行select * from __all_virtual_disk_stat;看一下磁盘状态。
标记为坏盘需要手动运维恢复,参考
https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000284535?back=kb