Greenplum定期vacuum系统表以及定期删除日志

2018-09-27  本文已影响0人  雪_1911

gp数据库中数据分散存放在各个节点的数据文件中,当执行delete操作时,会留下很多空白空间,导致磁盘空间不会下降。此时可用vacuum all 表名来回收空间。

1.系统表定期vacuum,重建索引

建议定期vacuum系统表并重建索引,以下脚本可以定期执行

#!/bin/bash

DBNAME="<database-name>"

SYSTABLES="' pg_catalog.' || relname || ';' from pg_class a, pg_namespace b

where a.relnamespace=b.oid and b.nspname='pg_catalog' and a.relkind='r'"

psql -tc "SELECT 'VACUUM' || $SYSTABLES" $DBNAME | psql -a $DBNAME

reindexdb --system -d $DBNAME

analyzedb -s pg_catalog -d $DBNAME

2.数据库日志文件管理

greenplum日志存放在pg_log下,master节点和每个segment节点都会有,格式为gpdb-YYYY-MM-DD_hhmmss.cs

需要我们定期清理

定期清理master节点的日志,保留最近8天的日志

find master日志目录  -type f -name "gpdb-*.csv" -ctime +8 -exec rm {} \;

平时如果gp有问题,也可以查看相关日志

查看日志:

gplogfilter -n 3 输出最后3行日志

如果想查看segment节点的日志,那么可以执行以下命令

gpssh -f seg_hosts  #seg_hosts为segment节点的主机列表

=>source /usr/local/greenplum-db/greenplum_path.sh

=>gplogfilter -n 3 /data01/gpadmin/gpdata/primary/gpseg*/pg_log/gpdb*.log  #segment节点的日志目录

gplogfilter具体使用可看--help

除了数据库日志,还有管理日志在~/gpAdminLogs下面,可以到相关目录查看

上一篇 下一篇

猜你喜欢

热点阅读