Postgresql 解決pg掉電後無法重啟的問題
阿新 • • 發佈:2021-01-20
機房斷電後重啟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!
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。