分片表索引导致数据库空间满问题一例

某数据库上的fringdbs1的空间使用率达到了98.68%。
通过oncheck -pe fringdbs1 命令查看dbspace保存的表上看,存放了一个名为crbt_userring表及其索引
从crbt_userring的表结构看,这是个分片表(使用fringdbs1,fringdbs2,fringdbs3,fringdbs4)

当前存在一个问题,会使fringdbs1空间使用率相对于其它分片表所在的空间更高:
fringdbs1|98.68
fringdbs2|43.14
fringdbs3|43.14
fringdbs4|43.14
该索引idx_uringx_1_n未分片,默认建在了fringdbs1上

create index idx_uringx_1_n on crbt_userring 
    (phonenumber) using btree  in fringdbs1;

而这个索引的空间占用已经达到了
Number of pages allocated 1388700 页
整个fringdbs1的空间也就2500000 页

综上述:在建立分片时,需要考虑非分片索引的存放位置和空间大小。
因此建议分片表的索引使用独立的dbspace,或者需要按比例扩展默认的第一个dbspace的大小。

标签: none

添加新评论