You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何防止PostgreSQL文件在Kali重启后被删除?服务启动异常求助

解决Kali重启后PostgreSQL无法启动及统计文件损坏警告的问题

你遇到的问题其实有两个核心原因:一是/var/run/postgresql/10-main.pg_stat_tmp/目录在重启后消失(因为/var/run是临时文件系统,重启会清空),二是手动创建的空global.stat文件不符合PostgreSQL的预期格式。下面是分步解决方法:

临时修复:立即消除警告

先清理无效的手动创建文件,让PostgreSQL重新生成合法的统计文件:

  • 停止PostgreSQL服务:
    sudo systemctl stop postgresql@10-main
    
  • 删除空的无效统计文件:
    sudo rm /var/run/postgresql/10-main.pg_stat_tmp/global.stat
    
  • 重新启动服务,PostgreSQL会自动生成格式正确的global.stat:
    sudo systemctl start postgresql@10-main
    

此时查看日志,应该不会再出现"corrupted statistics file"的警告了。

永久解决:重启后不再丢失目录

因为/var/run是tmpfs临时文件系统,系统重启后所有内容都会被清空,所以每次手动创建目录不是长久之计。推荐两种方案:

方案1:通过Systemd自动创建目录

修改PostgreSQL的Systemd服务配置,让服务启动前自动生成所需目录并设置正确权限:

  1. 编辑服务文件:
    sudo nano /lib/systemd/system/postgresql@10-main.service
    
  2. 在[Service]区块下添加两行命令:
    ExecStartPre=/usr/bin/mkdir -p /var/run/postgresql/10-main.pg_stat_tmp
    ExecStartPre=/usr/bin/chown postgres:postgres /var/run/postgresql/10-main.pg_stat_tmp
    
  3. 重新加载Systemd配置:
    sudo systemctl daemon-reload
    
  4. 重启服务验证:
    sudo systemctl restart postgresql@10-main
    

以后重启系统,Systemd会自动帮你创建好目录,PostgreSQL启动时就能正常生成统计文件了。

方案2:将统计目录迁移到持久化位置

把统计文件目录从临时的/var/run转移到PostgreSQL的数据目录下,这样重启后文件不会丢失:

  1. 停止服务:
    sudo systemctl stop postgresql@10-main
    
  2. 创建新的持久化统计目录:
    sudo mkdir -p /var/lib/postgresql/10/main/pg_stat_tmp
    sudo chown postgres:postgres /var/lib/postgresql/10/main/pg_stat_tmp
    
  3. 编辑PostgreSQL配置文件:
    sudo nano /etc/postgresql/10/main/postgresql.conf
    
  4. 找到stats_temp_directory参数,修改为新目录:
    stats_temp_directory = '/var/lib/postgresql/10/main/pg_stat_tmp'
    
  5. 启动服务:
    sudo systemctl start postgresql@10-main
    

这个方案更彻底,统计数据会持久化保存,同时从根源避免了临时目录的问题。

补充说明:为什么手动创建的global.stat会报错?

PostgreSQL的global.stat不是一个空文件,它存储了数据库的统计信息,有特定的二进制格式。你手动用touch创建的空文件完全不符合PostgreSQL的预期,所以会被判定为损坏,从而持续抛出警告。让PostgreSQL自己生成这个文件才是正确的做法。

内容的提问来源于stack exchange,提问作者jiggaboo 209

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:20:32