【 使用环境 】生产环境 or 测试环境 生产
【 OB or 其他组件 】 4.0
【 使用版本 】 4.0
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手 ] 即可召唤小助手,欢迎试用!
请教下,OCP 租户里显示的 日志盘大小和数据库大小,可以在操作系统里 du -sh 看看么?
2 个赞
论坛小助手
2025 年3 月 11 日 09:06
#3
用户问题: “OCP 租户里显示的日志盘大小和数据库大小是否可以通过操作系统中的 du -sh 命令查看?”
针对您提到的问题,du -sh
命令可以用来查看文件系统中指定目录的磁盘使用情况,但对于 OceanBase 数据库而言,其日志盘大小和数据库大小在 OCP 租户里显示的信息是基于数据库内部统计和监控数据。因此,直接通过操作系统命令如 du -sh
可能无法准确反映这些信息,因为:
OceanBase 的数据存储结构和操作系统文件系统之间存在抽象层;
日志盘(如 clog、ilog 等)可能分布在不同的物理或逻辑位置,并且部分日志可能是临时性的或者已经归档但仍然计入当前大小;
数据库内部可能会对某些数据进行压缩处理,这也会导致操作系统层面看到的空间占用与实际不同。
为了更准确地了解 OCP 租户内的日志盘和数据库大小,建议使用 obdiag 工具来收集集群的基础信息以及 clog 盘满相关的信息,以便我们进一步分析。
日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base
日志采集场景: clog盘满
日志采集命令: obdiag gather scene run --scene=observer.clog_disk_full
另外,请您提供以下信息以帮助我们更好地理解您的环境:
您当前使用的 OceanBase 版本号是多少?
您所指的日志盘具体是指哪种类型的日志(例如:clog, ilog, slog)?
在 OCP 中观察到的日志盘大小和数据库大小的具体数值是多少?
您尝试使用 du -sh
命令时,具体是在哪个路径下执行的?该路径是否为 OceanBase 数据目录或日志目录?
请根据上述指导运行相应的 obdiag 命令并将结果提供给我们,这将有助于我们为您提供更加准确的帮助。
附上敏捷诊断工具 obdiag 使用帮助链接
1 个赞
日志盘的空间分配在文件系统里可以看到,不过不是用 du -sh
命令,可以用 ncdu /data/log1
命令。
[admin@server061 ~]$ mysql -h127.1 -uroot@sys -P2881 -paaAA11__ -c -A oceanbase
mysql> alter system set log_disk_size='50G';
Query OK, 0 rows affected (0.24 sec)
ncdu 1.20 ~ Use the arrow keys to navigate, press ? for help
--- /home/data/log1/obtest --------------------------------------
/..
50.0 GiB [#######################] 828 /clog
135.5 MiB [ ] 19 /slog
8.0 KiB [ ] 2 /etc2
ncdu 1.20 ~ Use the arrow keys to navigate, press ? for help
--- /home/data/log1/obtest/clog -----------------------------
/..
28.4 GiB [#######################] 456 /log_pool
7.2 GiB [##### ] 118 /tenant_1
6.5 GiB [##### ] 110 /tenant_1006
6.5 GiB [##### ] 110 /tenant_1004
704.0 MiB [ ] 14 /tenant_1005
704.0 MiB [ ] 14 /tenant_1003
这个目录总大小就是 OB 集群参数 log_disk_size
, tenant_数字
就是各个租户分配到的 log_disk_size
。
数据盘在文件系统里只能看到数据文件总大小,ocp里使用明细是 OB 内部数据统计,在外部看不到。
详细 OB 空间分配原理看这篇文章《 OB 数据文件缩容技巧 》。
4 个赞
咖啡哥:
没用过这个命令工具。
看目录大小还挺方便。
请教,如何用一条SQL 查询当前数据库数据文件位置 和日志文件的位置?
主机上挂了如下目录,我拿不准哪个是数据文件目录?
/dev/mapper/vgob01-datalv 1000G 888G 113G 89% /data/1
/dev/mapper/vgob01-dataloglv 300G 243G 58G 81% /data/log1
tmpfs 26G 0 26G 0% /run/user/0
1.1.28.167:/backup/obbackup_obclu_test_ 6.4T 4.0T 2.5T 63% /data/obbackup_obclu_test_ncore2
10.1.28.167:/data/1/ob_backup/ob_backup_obclu_test_ 2.5T 1.1T 1.5T 44% /data/ob_backup_zhob4_obclu_test_ncore2
10.1.28.167:/backup/obbackup_obclu_test 6.4T 4.0T 2.5T 63% /data/obbackup_obclu_test_ncore_2
咖啡哥:
没用过这个命令工具。
看目录大小还挺方便。
请教,如何用一条SQL 查询当前数据库数据文件位置 和日志文件的位置?
主机上挂了如下目录,我拿不准哪个是数据文件目录?
/dev/mapper/vgob01-datalv 1000G 888G 113G 89% /data/1
/dev/mapper/vgob01-dataloglv 300G 243G 58G 81% /data/log1
tmpfs 26G 0 26G 0% /run/user/0
1.1.28.167:/backup/obbackup_obclu_test_ 6.4T 4.0T 2.5T 63% /data/obbackup_obclu_test_
10.1.28.167:/data/1/ob_backup/ob_backup_obclu_test_ 2.5T 1.1T 1.5T 44% /data/ob_backup_zhob4_obclu_test_
10.1.28.167:/backup/obbackup_obclu_test 6.4T 4.0T 2.5T 63% /data/obbackup_obclu_test_
咖啡哥
2025 年3 月 11 日 10:57
#11
show parameters like ‘data_dir’;
一般看到的是/home/admin/oceanbase/store/clustname
进这个目录去看链接指向
[root@test-ob-zone1-observer001 ~]# ls -lth /home/admin/oceanbase/store/xxx
total 0
lrwxrwxrwx 1 root admin 25 Aug 11 2023 clog -> /data/log1/xxx/clog
lrwxrwxrwx 1 root admin 22 Aug 11 2023 slog -> /data/1/xxx/slog
lrwxrwxrwx 1 root admin 25 Aug 11 2023 sstable -> /data/1/xxx/sstable
1 个赞
论坛小助手
2025 年3 月 11 日 10:59
#12
根据文档库中的信息,您可以使用以下 SQL 查询来获取当前数据库的数据文件位置和日志文件的位置。这些查询将帮助您确认哪些目录是用于存储数据文件或日志文件的。
查询数据文件位置
对于 OceanBase 数据库,可以通过查询系统表 gv$ob_partitions
来找到数据文件的位置:
SELECT
SVR_IP,
SVR_PORT,
DATA_TABLET_PATH
FROM
gv$ob_partitions;
此查询会返回每个分区所在的服务器 IP、端口以及该分区的数据文件路径 (DATA_TABLET_PATH
)。
查询日志文件位置
要查询日志文件(如 clog、ilog 和 slog)的位置,可以分别执行以下查询:
CLog (提交日志)
SHOW VARIABLES LIKE 'clog_dir';
ILog (增量重做日志)
SHOW VARIABLES LIKE 'ilog_dir';
SLog (系统日志)
SHOW VARIABLES LIKE 'slog_dir';
这些命令将显示相应的日志文件存放路径。
分析提供的主机挂载信息
从您提供的主机挂载信息来看:
/dev/mapper/vgob01-datalv
挂载到了 /data/1
,并且占用了较大空间(89%),这很可能是您的 数据文件目录 。
/dev/mapper/vgob01-dataloglv
挂载到了 /data/log1
,主要用于存储日志文件,考虑到其名称中包含 “log” 字样及占用情况(81%),这应该是 日志文件目录 。
其他挂载点如 /data/obbackup_obclu_test_*
看起来像是备份相关的目录,并不是主要的数据或日志文件存放地。
综上所述,基于您提供的挂载信息和上述 SQL 查询的结果,应该能够准确判断出数据文件与日志文件的具体存放位置。如果您需要进一步确认,请尝试运行上述 SQL 语句并检查输出结果。
以上信息依据的是 OceanBase 社区版的相关特性,如果还有其他疑问或者需要更详细的帮助,请随时告知!
检索到的文档如下:
发起集群级备份
GORM 连接 OceanBase 数据库示例程序
弱一致性读
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
1 个赞
obpilot:
ncdu
ncdu 命令没找到,要单独下载么?
[root@zhobtest10 ~]# find / -name ncdu
find: ‘/proc/1989200’: No such file or directory
find: ‘/proc/1998647’: No such file or directory
find: ‘/proc/2017854’: No such file or directory
find: ‘/proc/2018250’: No such file or directory
[root@zhobtest10 ~]#
1 个赞