重新启动PostgreSQL

49

运行/etc/init.d/postgresql restart有危险吗?我们刚刚发生了一件关系表消失的事情,我运行了上述命令。系统管理员对我大发雷霆,但他没有解释为什么这样做是不好的。当时我将Web应用程序置于维护模式,因此在此期间没有任何交易/查询。


谢谢大家……简而言之,它不会损坏任何东西,但可能会丢失许多有价值的诊断信息。


1
你的意思是“他没有证明正当性”吗? - JanC
15
小提示:在大多数系统中,重新启动postgresql的命令是/etc/init.d/postgresql restart。 - keithhackbarth
3个回答

49

不,使用init.d方法重新启动postgres不会有危险。

然而,因为出现了一些怪异的情况而重启它并不是一个好主意,因为这严重限制了你收集信息以找到根本原因并解决问题的机会。

在我参与postgresql的所有年份中,我从未遇到过重启“解决”问题的情况。即使立即的“事故”可能被解决了,如果存在问题,它仍将存在。


1
谢谢。我知道这不会解决路由问题,但系统管理员不在,客户想让他们的网站恢复正常。 - Simon
2
你可能想要密切关注它,或编写一个脚本定期检查错误条件是否重新出现,这样下次在客户打电话之前就有更多时间收集数据并解决问题。 - Peter Tillemans

5

如果关系是临时表或者在打开的事务中创建的,那么在重启Postgres后它们将消失。当数据库重新启动时,它会关闭所有连接,因此所有临时表都会被删除,并且打开的事务将被回滚。但是,任何已提交的内容都不会受到重新启动的影响。


4

关系不会因为重启而消失,你可能会失去一些正在运行的事务,但仅此而已。PostgreSQL 重启时不会破坏你的数据库,不用担心。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接