PG数据库如何通过pg_resetwal处理wal日志的误删除

一 问题
一个开发环境数据库无法访问,发现存储数据库的挂载点存储使用率达到了100%,导致数据库宕机且无法再启动。追踪发现是pg_wal日志把存储撑爆了,然后就直接rm掉了,直接导致了数据库的启动报错。
二 解决方案
使用pg_resetwal重置wal日志
查看控制文件是否正常
pg_controldata -D $PGDATA

如果控制文件没问题,可以进行重置。
pg_resetwal -D $PGDATA
启动数据库
systemctl start postgresql
检查数据库状态
systemctl status postgresql
注意:这种方式会丢失未做checkpoint的wal数据,丢失数据的多少受checkpoint_timeout参数的影响。
使用pg_resetwal注意项
在命令行中指定数据目录PGDATA
这个命令不能在服务器正在运行时被使用,如果在数据目录中发现一个服务器锁文件,pg_resetwal将拒绝启动。
如果服务器崩溃那么一个锁文件可能会被残留,需先移除锁文件且确认没有服务器进程存活,然后再运行pg_resetwal。
使用pg_resetwal后
PG数据库如何通过pg_resetwal处理wal日志的误删除
一 问题一个开发环境数据库无法访问,发现存储数据库的挂载点存储使用率达到了100%,导致数据库宕机且无法再启动。追踪发现是pg_wal日志把...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



