詳細(xì)的報(bào)錯(cuò)信息如下:
LOG: database system is ready to accept connectionsLOG: database system was interrupted;LOG: database system was not PRoperly shut down; automatic recovery in progressLOG: invalid record length at 0/2EA3830: wanted 24, got 0LOG: redo is not requiredLOG: MultiXact member wraparound protections are now enabledLOG: database system is ready to accept connectionsLOG: autovacuum launcher startedLOG: database system was interrupted; last known up at 2017-03-02 00:32:34 UTCLOG: received smart shutdown request因?yàn)轫?xiàng)目集成了docker,docker里又有postgresql數(shù)據(jù)庫(kù),所以在調(diào)試程序的時(shí)候,經(jīng)常會(huì)有重啟項(xiàng)目的時(shí)候(一般修改代碼,會(huì)自動(dòng)重啟服務(wù)的,特殊情況除外),因?yàn)槭莿偨Y(jié)束服務(wù),有立馬啟動(dòng)服務(wù),所以會(huì)經(jīng)常啟動(dòng)不了,報(bào)錯(cuò)如上。
網(wǎng)上也查了一下,最后確定問(wèn)題的原因: postgresql數(shù)據(jù)庫(kù)里有一個(gè)文件“postmaster.pid”,它是記錄postgresql啟動(dòng)時(shí)的pid信息的,理論上在停止服務(wù)的時(shí)候,此文件會(huì)被刪除掉的,但由于我操作頻繁,導(dǎo)致它還沒(méi)有被刪除,在啟動(dòng)postgresql服務(wù)的時(shí)候,postgresql查詢到pid文件的存在,以為服務(wù)已經(jīng)啟動(dòng)起來(lái)了,為了不重新加載就不再啟動(dòng)服務(wù)了… 所以就直接 把那個(gè)pid文件刪除掉…之后再啟動(dòng)服務(wù),果然就正常咯
新聞熱點(diǎn)
疑難解答
圖片精選