logo
GBase 8s
其他
文章

检查空间使用率【onstat -d】

GBase社区管理员
发表于2024-02-01 14:40:35212次浏览0个评论

空间使用率可使用系统命令或SQL查询系统表统计,如以下两种方式:

1、【gbasedbt】用户登陆系统执行【onstat -d】查看空间状态及使用情况:

onstat -d

【onstat -d】示例输出:

On-Line -- Up 00:23:45 -- 1686980 Kbytes

Dbspaces
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
45ef6028         1        0x60001    1        1        2048     N  BA    gbasedbt rootdbs
48a506e8         2        0x60001    2        1        16384    N  BA    gbasedbt datadbs01
48921dd0         3        0x68001    3        1        2048     N SBA    gbasedbt sbspace01
 3 active, 2047 maximum

Chunks
address          chunk/dbs     offset     size       free       bpages     flags pathname
45ef6258         1      1      0          1024000    263112                PO-B-- /data/gbase/rootdbschk001
490ff028         2      2      0          6250       6197                  PO-B-- /data/gbase/datadbs01chk001
49937028         3      3      0          50000      46558      46558      POSB-- /data/gbase/sbspace01chk001
                                 Metadata 3389       2522       3389
 3 active, 32766 maximum

NOTE: The values in the "size" and "free" columns for DBspace chunks are
      displayed in terms of "pgsize" of the DBspace to which they belong.


Expanded chunk capacity mode: always

【size】和【free】的单位为page,大小需要乘以【pgsize】

2、【gbasedbt】用户登陆系统执行以下SQL脚本统计空间使用率:

dbaccess sysmaster -<<!
SELECT A.dbsnum as No, trim(B.name) as name,
CASE  WHEN (bitval(B.flags,'0x10')>0 AND bitval(B.flags,'0x2')>0)
  THEN 'MirroredBlobspace'
  WHEN bitval(B.flags,'0x10')>0  THEN 'Blobspace'
  WHEN bitval(B.flags,'0x2000')>0 AND bitval(B.flags,'0x8000')>0
  THEN 'TempSbspace'
  WHEN bitval(B.flags,'0x2000')>0 THEN 'TempDbspace'
  WHEN (bitval(B.flags,'0x8000')>0 AND bitval(B.flags,'0x2')>0)
  THEN 'MirroredSbspace'
  WHEN bitval(B.flags,'0x8000')>0  THEN 'SmartBlobspace'
  WHEN bitval(B.flags,'0x2')>0    THEN 'MirroredDbspace'
        ELSE   'Dbspace'
END  as dbstype,
 round(sum(chksize)*2/1024/1024,2)||'GB'  as DBS_SIZE ,
 round(sum(decode(mdsize,-1,nfree,udfree))*2/1024/1024,2)||'GB' as free_size,
 case when sum(decode(mdsize,-1,nfree,udfree))*100/sum(decode(mdsize,-1,chksize,udsize))
   >sum(decode(mdsize,-1,nfree,nfree))*100/sum(decode(mdsize,-1,chksize,mdsize))
then TRUNC(100-sum(decode(mdsize,-1,nfree,nfree))*100/sum(decode(mdsize,-1,chksize,mdsize)),2)||"%"
else TRUNC(100-sum(decode(mdsize,-1,nfree,udfree))*100/sum(decode(mdsize,-1,chksize,udsize)),2)||"%"
    end  as used,
  TRUNC(MAX(A.pagesize/1024))||"KB" as pgsize,
  MAX(B.nchunks) as nchunks
FROM syschktab A, sysdbstab B
WHERE A.dbsnum = B.dbsnum
 GROUP BY A.dbsnum,name, 3
ORDER BY A.dbsnum;
!

输出示例:

no         1
name       rootdbs
dbstype    Dbspace
dbs_size   1.95GB
free_size  0.50GB
used       74.30%
pgsize     2KB
nchunks    1

no         2
name       datadbs01
dbstype    Dbspace
dbs_size   0.10GB
free_size  0.09GB
used       0.84%
pgsize     16KB
nchunks    1

no         3
name       sbspace01
dbstype    SmartBlobspace
dbs_size   0.10GB
free_size  0.09GB
used       25.58%
pgsize     2KB
nchunks    1

【used】为空间使用率,超过80%应当及时扩容。

注意:一般空间名为plogdbs和llogdbs的空间,分别用于存放物理日志和逻辑日志,这两种日志均为固定大小循环使用,空间不会增长,使用率高可忽略。可使用【onstat -l】查看物理日志和逻辑日志位置。

更多【onstat】命令参考及输出说明,参考【GBase 8s 管理员参考】。

评论

登录后才可以发表评论