一文搞定 OceanBase 各级别数据量统计

OceanBase 是一个多租户的分布式数据库,统计数据量时需要考虑一台服务器上可能会有多个租户,每个租户会有多个副本。此外 OceanBase 中磁盘上的数据文件是预分配的,当我们统计数据量大小时,得找出真实数据占用的大小。我们需要考虑:

  • OceanBase 不同版本(V3、V4)的统计方式有何区别?
  • 不同级别(服务器级、租户级、表级)如何统计?

本文将总结在 OceanBase 中统计数据量大小的技巧,旨在扫清这方面的迷雾。

服务器级别

OCP 统计

OCP 上“集群总览”展示的数据量是集群中每个 OBServer 服务器的磁盘容量大小和已使用大小。通过这个信息我们可以快速知道整个集群大概的数据量,以及每台服务器上的存储是否够用。

OCP 资源水位

比如上图中 xxx.xxx.xxx.193 服务器显示的 2.5TB/16.8TB 含义如下:

  • 16.8TB:表示的是 OBServer 上用 datafile_size 或者 datafile_disk_percentage 参数指定的可以使用的存储大小,也就是 /data/1/{cluster_name}/sstable/block_file 数据文件的大小。
    • OceanBase 的数据文件是预分配的,在安装数据库后数据文件 block_file 的大小就已经预留好了,后续的写入不会改变文件大小。
  • 2.5TB:表示 block_file 数据文件中真实数据的大小,剩余都是可用空间。

磁盘统计

对应服务器上看到的磁盘使用量就是 block_file 数据文件的大小,和 OCP 上“集群总览”展示的一致:

df -h |grep /data/1
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/observervg-obdata   24T   17T  7.1T  71% /data/1

ll /data/1/group_x86_pt01/sstable/
total 17T
-rw-r----- 1 admin admin 17T Jan 18 01:31 block_file

视图统计

OCP 展示的数据实际上来自系统视图 __all_virtual_disk_stat,因此如果没有 OCP,也可以通过查询系统视图得到这个数据:

适用 V3、V4 版本,在 sys 租户下执行。

SELECT
  svr_ip,
  svr_port,
  total_size / 1024 / 1024 / 1024 AS total_size_GB,
  free_size / 1024 / 1024 / 1024 AS free_size_GB,
  (total_size - free_size) / 1024 / 1024 / 1024 as used_size_GB
FROM
  __all_virtual_disk_stat;
+----------------+----------+--------------------+--------------------+-------------------+
| svr_ip         | svr_port | total_size_GB      | free_size_GB       | used_size_GB      |
+----------------+----------+-----------
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值