关于 SequoiaDB
快速入门
安装
基本操作
数据模型
SQL引擎
S3引擎
系统架构
数据库管理
连接器
驱动
参考手册
故障排除
SAC 管控中心
Web服务
版本信息
热备节点是一种逻辑节点,存储在热备组中,用于替换故障的数据节点。热备节点在加入其他数据分区组前,不存储任何数据;在加入指定分区组后,将自动同步该分区组的所有数据。
一般来说,热备节点的处理流程如下:
同一集群内只可以存在一个热备组,且统一命名为“SYSSpare”。
> db.createSpareRG()
Note:
createSpareRG() 用于创建热备组,该操作不会创建任何数据节点。
热备组内节点间不进行心跳检测,因此该组内不存在主节点。
获取热备组
var spareRG = db.getRG("SYSSpare")
创建一个新的热备节点
var node1 = dataRG.createNode("sdbserver",11860,"/opt/sequoiadb/database/data/11860")
启动新增的热备节点
> node1.start()
在 SDB Shell 中查看热备组中节点的列表
db.getRG("SYSSpare").getDetail()
当分区组中的数据节点发生无法自动修复的故障(如磁盘损坏)时,建议使用热备节点替换该故障节点,保证分区组的可用性。
下述以数据分区组 group1 中 11820 节点故障为例,使用热备节点 11860 进行替换操作。
获取热备组
var spareRG = db.getRG("SYSSpare")
将热备节点从热备组中分离
spareRG.detachNode("sdbserver",11860,{KeepData:false})
Note:
将热备节点从热备组中分离可参考 detachNode()。
将分离后的 11860 节点加入分区组 group1 中
db.getRG("group1").attachNode("sdbserver",11860,{KeepData:false})
Note:
将已分离的节点加入其他分区组可参考 attachNode()。
通过节点健康快照检查 11860 节点的 CompleteLSN 字段值是否与同组的主节点一致,如果一致则表示数据同步完成
> db.snapshot(SDB_SNAP_HEALTH,{},{"NodeName":"","CompleteLSN":""})
将故障节点 11820 从分区组中剔除
> db.getRG("group1").detachNode("sdbserver",11820,{KeepData:false})