关键字
vacuumdb
sys_contronl
sys_archivecleanup
reindexdb
空间清理常用方法
Vacuumdb
在autovacumm没有及时清理空间的情况下,可以直接使用vacummdb直接清理整个database的所有表。
[kingbase@localhost ~]$ vacuumdb -d kops
vacuumdb: 清理数据库 "kops"
该操作可能会耗时时间比较长,且对磁盘空间有要求,在执行该操作前,要提前评估时间窗口和磁盘空间。
sys_archivecleanup
清理wal日志,需要进行两步走:第一步查询最新检查点的重做日志文件,第二部清理;
[kingbase@localhost ~]$ sys_controldata -D /data/ |grep 最新检查点的重做日志文件
最新检查点的重做日志文件: 000000010000002A000000D4
[kingbase@localhost ~]$
[kingbase@localhost ~]$ sys_archivecleanup -d /data/sys_wal/ 000000010000002A000000D4
sys_archivecleanup: keeping WAL file "/data/sys_wal//000000010000002A000000D4" and later
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A0000005A"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A0000005B"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A0000005E"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A0000005F"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A00000062"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A00000063"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A00000066"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A00000067"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A0000006A"
…………………………………………………………
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A000000CD"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A000000CE"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A000000CF"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A000000D0"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A000000D1"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A000000D2"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A000000D3"
sys_archivecleanup: removing file "/data/sys_wal//000000010000002A00000030"
[kingbase@localhost ~]$
reindexdb
如果用户表做个大量、周期性说的数据delete操作,索引就需要定期重建,提高命中率,并且清理空间。
reindexdb是用于重建一个KingbaseES数据库中索引的工具。
reindexdb是 SQL命令 REINDEX 的一个包装器。通过这个工具和其他方法来重建数据库索引之间没有实质性的区别
[kingbase@localhost ~]$ reindexdb -d kops
该操作会产生大量的IO,如果是生产环境,请根据实际情况找合适的时间窗口执行。