1 现象:
发现服务器磁盘被wal快速吃光了,百思不得其解,主要的数据库参数:
max_wal_size = 70GB
min_wal_size = 15GB # max_wal_size/4
archive_mode = on
发现目录/pg_wal下的日志已经达到了160G,并且已经超过max_wal_size ,但是没有归档。
2 查看后台日志发现:
3 难道是archive_command没有设置?查看果然是没有设置。
解决办法:
该问题主要是因为archive_command没设置导致wal无法归档导致 的异常膨胀,设置archive_command
archive_command = 'test ! -f /pg12.2/data/archivelog/%f && cp %p /pg12.2/data/archivelog/%f'
4 清理归档日志:清理两分钟前的归档
[postgres@ycdb archivelog]$ find ./ -type f -mmin +2 -exec rm -f {} \;