1. 程式人生 > 資料庫 >Postgresql 解決pg掉電後無法重啟的問題

Postgresql 解決pg掉電後無法重啟的問題

機房斷電後重啟pg資料庫,報如下錯誤:

< 2019-01-01 22:42:59.240 EST >LOG: database system was interrupted while in recovery at 2019-01-01 22:00:58 EST
< 2019-01-01 22:42:59.240 EST >HINT: This probably means that some data is corrupted and you will have to use the last backup for recovery.
< 2019-01-01 22:42:59.241 EST >LOG: database system was not properly shut down; automatic recovery in progress
< 2019-01-01 22:42:59.333 EST >PANIC: unexpected pageaddr 26EA/46000000 in log segment 00000001000026EA00000017,offset 0
< 2019-01-01 22:42:59.333 EST >LOG: startup process (PID 88586) was terminated by signal 6: Aborted
< 2019-01-01 22:42:59.333 EST >LOG: aborting startup due to startup process failure

修復方法:

切換到bin目錄下:

cd /usr/pgsql-9.3/bin

使用pg_resetxlog命令修復日誌:(/var/lib/pgsql/9.3/data為pg_data的目錄)

pg_resetxlog -f /var/lib/pgsql/9.3/data

重啟資料庫:

pg_ctl start

補充:PostgreSQL 資料庫服務無法啟動的解決方法

因為客戶那邊的磁碟一般是FAT32的檔案系統,所以我們程式安裝時,採用手動安裝PostgreSQL的形式安裝資料庫,但初始化資料庫群成功並且成功註冊了系統服務後,

發現PostgreSQL的服務總是啟動不了,提示服務啟動又停止了,然後在系統時間檢視器裡發現報的錯誤是:Could not create inherited socket,錯誤編碼為10022

解決方法:

執行 netsh winsock reset,重啟電腦,OK!

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。