事故原因
清理线上日志文件的时候发现,pg 输出了所有的 SQL 日志,即 log_statement=all。然后觉得去改下减少日志输出。执行 pg_ctl restart,一直 wait shut down。然后我就决定直接 kill -9 杀死进程。再 pg_ctl start 启动则提示删除 pid 文件。然后 rm -rf post tab 键一补全,把 postgresql.conf 文件给删除了。服务器上配置文件我没做备份 。。。
解决
删除后,我开始 google 搜索对应版本 9.2 的配置文件下载,发现没找到。会认为 b3log 群里有急救丸,也发现木有。接着搜索终于在 github 上找到了 9.3 版本的。wget 下来,启动,检查日志,没有问题,暂时搞定。
开始冷静下来,找到了之前测试环境上的 postgresql.conf 文件,比对刚使用的 9.3 的配置。检查其他配置项,没有问题,用测试环境的配置文件代替了 github 上下载的 conf 文件。重启。终于放心了。
接着看 postgresql.conf 各配置项的含义,看完开始睡觉。睡不着了。
总结
- 线上无小事,任何操作保持敬畏之心
- 配置文件需定时备份,不可以大意。任何改动之前先备份,记得刚开始线上操作的时候一直那样做的。
- 在合适的时间进行线上操作。
问题
- pg_ctl restart 重启的时候必须加上 m -fast 不然,就一直等待 shut down,实际上这个时候数据库已经连接不上了
- 有什么地方可以下载各 pg 版本的配置文件
- rm -rf 可以 roolback 么,有什么软件可以保证下么
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于