pgsql如何重启
正常情况下,pgsql 停止可以执行一下命令:
bin/pg_ctl stop -s -D pg_data/ -m fast
此命令和 kill -15 PID 效果相同
但是有时候 pgsql 也会抽风,无法通过正常的方式停止,这个时候我们就需要暴力拆解了
kill -9 PID 大法,没有什么进程是可以抵抗的(除了用户权限不对外,基本是遇神杀神,遇佛杀佛哦)
但是kill -9 这个方式太暴力,导致pgsql 在下次启动时,会爆出乱七八糟的错误
例如 PID 已存在的问题
FATAL: pre-existing shared memory block (key 4432001, ID 1245189) is still in use HINT: If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "post master.pid".
解决方式是将 pg_data/postmaster.opts 和 pg_data/postmaster.pid 两个文件删除
因为pgsql 在启动时,会去检测是否存在这两个文件
另外在kill -9 强杀进程时,有时候也会误伤数据库的日志文件,这个时候,就会出现以下的问题
LOG: database system was interrupted; last known up at 2016-03-23 10:55:25 CST LOG: invalid record length at 0/1A97600 LOG: invalid primary checkpoint record LOG: invalid record length at 0/1A97598 LOG: invalid secondary checkpoint record PANIC: could not locate a valid checkpoint record LOG: startup process (PID 2348) was terminated by signal 6: Aborted LOG: aborting startup due to startup process failure
解决方式如下
bin/pg_resetxlog -f pg_data/
这个命令应该是恢复pgsql 的日志,有可能会造成pgsql 里面的数据丢失或者损坏,但是你在kill -9 时就应该了解这个风险。
否则呢,你就自己想明白为啥不能 kill -15 吧!!!
再进击
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
2014-03-29 java 读取excel 2007 .xlsx文件 poi实现