前言
昨天晚上刚部署了KES mysql兼容模式,昨天对参数做了微调然后有个参数忘记调整了,导致今天重启数据库报错,处理过程如下:
处理过程
首先看到重启报错:

然后查看状态:

可以看到startup.log里面有提示:

查看和修改参数:
root@VM-10-12-ubuntu:/data/KES/data# grep min_wal_size kingbase.conf
min_wal_size = 1MB
#发现参数只有默认的1MB
#然后查看max_wal_size
root@VM-10-12-ubuntu:/data/KES/data# grep max_wal_size kingbase.conf
max_wal_size = 32GB
#发现已调整,说明昨天晚上调整遗漏了。
#然后我们进行调整min_wal_size大小至1G
root@VM-10-12-ubuntu:/data/KES/data# grep min_wal_size kingbase.conf
min_wal_size = 1GB
然后重启数据库:

可以看到数据库正常恢复。
总结
min_wal_size 参数指定了 WAL 文件的最小保留大小。
作用:
设置数据库在任何时候保留的 WAL 文件的最小总量
即使系统负载很低,也会保留至少这么多的 WAL 空间
防止因突然的负载增加导致需要频繁分配新的 WAL 文件
默认值通常为 80MB
max_wal_size 参数指定了 WAL 文件的最大保留大小。
作用:
设置检查点之间允许 WAL 增长的最大总量
当 WAL 大小接近此限制时,会触发检查点操作
这个参数间接控制检查点的频率
默认值通常为 1GB
两者关系和工作原理:
数据库会根据负载动态调整 WAL 文件的数量,在 min_wal_size 和 max_wal_size 之间变化
当系统空闲时,WAL 空间会缩减到 min_wal_size
在高负载时,WAL 空间可以增长到 max_wal_size
如果 WAL 使用量接近 max_wal_size,系统会触发检查点,使 WAL 可以被回收