IoTDB 节点宕机后集群恢复

问题及现象

  • 现象1:IoTDB 集群一台电脑硬盘坏了,换了新硬盘迁移数据只能用 load 么?是不是直接新增节点就行了?
  • 现象2:这个错误是什么原因引起的?集群有个节点宕机,上线之后就报错:
java 复制代码
insertByGroup - Meet error when async insert! org.apache.iotdb.rpc.StatementExecutionException: 606: The write is rejected because the wal directory size has reached the threshold 53687091200 bytes. You may need to adjust the flush policy of the storage storageengine or the IoTConsensus synchronization parameter
  • 现象3:请教个问题,双副本集群中,一个节点宕机后,WAL 会持续增加,如果机器无法恢复,需要怎么解决?
  • 现象4:如果 3C3D 的模式下,设置了三个元数据副本,两个数据副本,其中一个节点有问题后会影响另外两个节点的工作么?如果移除那个有问题的节点后会存在数据丢失么?看官方文档说会把移除节点的数据自动同步到剩余两个节点中,又在文档中说不能少于元数据 3 副本的节点数运行,那三个节点的集群岂不是照样一个节点都不能挂?
  • 现象5:如果老节点挂掉了,是不是拿不到之前节点上的数据了?如果是单副本,那数据是取不到吗?

方法

  • 单机版节点宕机:在其他主机上配置新节点,重新启动,并将旧节点的 /data 目录 load 进新节点。
  • 集群内某个节点宕机之后:
复制代码
   节点能启动:手动启动该节点,启动后如果依然报下面的错,V1.1.0 及之前的版本先升级到最新版本,尝试调大 WAL 文件总大小配置 iot_consensus_throttle_threshold_in_byte 并重启该 DataNode 服务。
java 复制代码
The write is rejected because the wal directory size has reached the threshold 53687091200 bytes. You may need to adjust the flush policy of the storage storageengine or the IoTConsensus synchronization parameter`
复制代码
   节点无法启动:在其他主机上配置一个新的节点,指向该集群,启动该节点加入集群。CLI 连接上该集群其他 DataNode,移除掉已经宕机的节点。

原因

  • 无法移除 DataNode 的情况:当集群只有 3 个 DataNode 且每个有 3 副本时,无法移除某个 DataNode,系统不允许分片的副本数小于配置值。建议先增加一个 DataNode,达到 4 个节点后再移除出问题的节点,因为如果 DataNode 数量不足,系统不支持主动移除节点,这样可能导致副本数少于配置值。但如果是被动宕机,集群仍能正常工作。
  • 拒绝写入的错误原因:如果某个节点长时间宕机,数据副本会一直无法同步,直到达到一定的阈值(默认 50G)后,保护机制会启动。重启后,由于待同步的 WAL 文件过多,通过增大 WAL 总文件大小配置,可以暂时避免阻塞节点间的数据同步。当前版本在节点长时间宕机的情况下,仍然需要通过恢复或移除节点的方式来解决 WAL 堆积问题。未来版本会优化这方面的设计,避免 WAL 堆积再次发生。
相关推荐
1024奇点11 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
w-w0w-w12 小时前
SQL注入
网络·数据库·sql
tianyuanwo12 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
一条泥憨鱼12 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
IvorySQL13 小时前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql
幽灵诶14 小时前
Mysql(基于测试的学习)
数据库·mysql
砚底藏山河14 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
冬奇Lab14 小时前
一天一个开源项目(第252篇):Lightpanda —— 用 Zig 从零写的 AI 专用无头浏览器,内存省 16 倍、速度快 9 倍
人工智能·开源·资讯
IT召唤狮14 小时前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php
宇宙无敌暴龙战士66615 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发