doris数据磁盘空间释放的方式,包含数据垃圾清理、数据手动均衡、数据副本修改

1 篇文章 0 订阅
1 篇文章 0 订阅

1、现象说明

当磁盘空间高于高水位甚至危险水位后,很多操作都会被禁止。此时可以尝试通过以下方式减少磁盘使用率,恢复系统。
常见报错内容如下:

disk xxxxx on backend xxx exceed limit usage

通常做法是删除无效的表和数据库、或者挂载新的磁盘来保障数据库的正常运作。
但生产环境上,无法删库删表切不能尽快的增加磁盘容量。我们该怎么办?本博文将从3个方面介绍应急处理方式。

2、数据垃圾清理

2.1数据垃圾清理用于清理 backend 内的垃圾数据,使用命令如下:
ADMIN CLEAN TRASH [ON ("BackendHost1:BackendHeartBeatPort1", "BackendHost2:BackendHeartBeatPort2", ...)];

说明:以 BackendHost:BackendHeartBeatPort 表示需要清理的 backend ,不添加on限定则清理所有 backend 。

2.2 使用例子

清理所有be节点的垃圾数据

ADMIN CLEAN TRASH;

清理制定节点的垃圾数据

ADMIN CLEAN TRASH ON ("192.168.0.1:9050","192.168.0.2:9050");
2.3 web界面截图

web界面

3、数据手动均衡

查看每个be节点数据块占用,发现仅一个达到了阈值95%以上,其它都在70% 左右。此时可以使用手动数据均衡命令。将数据均匀分配到每个节点。来降低单个节点数据压力问题。
web查询界面

3.1 命令说明
ADMIN REBALANCE DISK [ON ("BackendHost1:BackendHeartBeatPort1", "BackendHost2:BackendHeartBeatPort2", ...)];

说明

  1. 该语句表示让系统尝试优先均衡指定BE的磁盘数据,不受限于集群是否均衡。
  2. 默认的 timeout 是 24小时。超时意味着系统将不再优先均衡指定的BE磁盘数据。需要重新使用该命令设置。
  3. 指定BE的磁盘数据均衡后,该BE的优先级将会失效。
3.2 使用例子

尝试优先均衡集群内的所有BE

ADMIN REBALANCE DISK;

尝试优先均衡指定BE

ADMIN REBALANCE DISK ON ("192.168.1.1:1234", "192.168.1.2:1234");

4、临时修改表或分区的副本

可以将表或分区的副本数降低。比如默认 3 副本可以降低为 2 副本。该方法虽然降低了数据的可靠性,但是能够快速的降低磁盘使用率,使集群恢复正常。该方法通常用于紧急恢复系统。请在恢复后,通过扩容或删除数据等方式,降低磁盘使用率后,将副本数恢复为 3。

4.1 命令说明

修改副本操作为瞬间生效,后台会自动异步的删除多余的副本。

ALTER TABLE tbl MODIFY PARTITION p1 SET("replication_num" = "2");
4.2 例子

将表 colin.products_d 表的副本又3降到1

ALTER TABLE colin.products_d  SET("replication_num" = "1");
4.3 副本前后变化截图

修改前,副本为3
修改前
修改后,副本为1

修改后
观察可得,此表数据磁盘占用由原来66G降到了 22G。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值