集群管理
仅企业版支持
查看节点列表
SHOW DATANODES
SHOW DATANODES 会返回集群中的所有节点的列表,如下所示:
+---------+-----------+-----------+---------+-----------+------------+---------------------+
| NODE_ID | HOST | ATTRIBUTE | STATUS | DISK_FREE | DISK_TOTAL | LAST_UPDATED_TIME |
+---------+-----------+-----------+---------+-----------+------------+---------------------+
| 1001 | localhost | HOT | HEALTHY | 26.03 GB | 62.67 GB | 2023-12-26 09:15:29 |
+---------+-----------+-----------+---------+-----------+------------+---------------------+
增加节点
新增一个节点只需要将节点配置cluster中的meta_service_addr指向目标集群中的 meta 端点且 name 需要与目标集群的 name一致。集群中每个节点node_id要保持唯一,host要保证集群中任何节点都可以访问。
[global]
node_id = 888888
host = "localhost"
... ...
[cluster]
name = cluster_xxx
meta_service_addr = [127.0.0.1:8901]
... ...
移除节点
如果节点为存储节点(tskv 或 query_tskv),则其数据会被合理地迁移到其他可以存储数据的节点,下线存储节点操作要求有两个及以上的相同ATTRIBUTE的存储节点。
REMOVENODE nodeid [FORCE]
示例
移除 NODE_ID 为 1001 的节点
如果节点
1001中存在数据,则会将其标记为只读(ReadOnly)状态,不再写入新数据,直到节点中的数据根据TTL设置或根据 分级存储 功能数据完全消失,集群会将1001节点彻底销毁,移除后的节点不能重新加入集群。
REMOVENODE 1001
强制移除节点
REMOVENODE 1001 FORCE
当附加 FORCE 参数时,会主动将数据迁移至其他节点,迁移时遵循如下规则:
- 不迁移到副本集的其他节点上。
- 选择可迁移节点中剩余存储空间最大的。
- 如果没有合适的节点迁移,该数据丢弃。
数据迁移过程中,节点会被标记为 Migrating 状态,停止新数据写入,完成后节点会被彻底销毁,移除后的节点不能重新加入集群。
查看 Vnode 列表
SHOW VNODE
显示当前数据库的所有 Vnode 的列表
+----------+---------+-----------+--------------------+---------------+-------------+---------------------+---------------------+---------+
| VNODE_ID | NODE_ID | BUCKET_ID | REPLICATION_SET_ID | DATABASE_NAME | TENANT_NAME | START_TIME | END_TIME | STATUS |
+----------+---------+-----------+--------------------+---------------+-------------+---------------------+---------------------+---------+
| 3 | 1001 | 1 | 2 | usage_schema | cnosdb | 1671408000000000000 | 1702944000000000000 | Running |
+----------+---------+-----------+--------------------+---------------+-------------+---------------------+---------------------+---------+
CnosDB 支持使用 SQL 对 Vnode 进行 MOVE、COPY 、 DROP、 COMPACT、 CHECKSUM GROUP 等操作
示例
将 VNODE_ID 为 5 的 VNODE 移动到节点1001
MOVE VNODE 5 TO NODE 1001
将 VNODE_ID 为 5 的 VNODE 复制到节点1001
COPY VNODE 5 TO NODE 1001
删除 VNODE 为 5 的节点
DROP VNODE 5
分别将 VNODE_ID 为 5、6、7 的 VNODE 强制压缩
COMPACT VNODE 5 6 7
检查REPLICATION_SET_ID为 5 的 Group 的数据一致性
CHECKSUM GROUP 5
资源管理
CnosDB 支持对资源进行管理,会对一些较为复杂、多步执行的资源进行监控,并且当操作失败时进行重试,直到成功。
当前支持的资源包括:DropTenant、DropDatabase、DropTable、DropColumn、AddColumn、AlterColumn、UpdateTagValue
所对应的命令为:DROP TENANT、DROP DATABASE、DROP TABLE、DROP COLUMN、ADD COLUMN、ALTER COLUMN、UPDATE
系统表 information_schema.resource_status 中存储了资源的状态:
SELECT * FROM information_schema.resource_status;
+---------------------+------------+--------------+-----------+----------+---------+
| time | name | action | try_count | status | comment |
+---------------------+------------+--------------+-----------+----------+---------+
| 2023-10-18 08:15:16 | cnosdb/db1 | DropDatabase | 0 | Schedule | |
+---------------------+------------+--------------+-----------+----------+---------+
社区版仅支持部分功能:
| 命令 | 企业版 | 社区版 |
|---|---|---|
SHOW DATANODES | ✅ | ❌ |
REMOVENODE | ✅ | ❌ |
SHOW VNODE | ✅ | ❌ |
MOVE VNODE | ✅ | ✅ |
COPY VNODE | ✅ | ✅ |
DROP VNODE | ✅ | ✅ |
COMPACT VNODE | ✅ | ✅ |
CHECKSUM GROUP | ✅ | ✅ |
| 资源管理 | ✅ | ✅ |