機房斷電后重啟pg數據庫,報如下錯誤:
1
2
3
4
5
6
|
< 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目錄下:
1
|
cd /usr/pgsql-9.3/bin |
使用pg_resetxlog命令修復日志:(/var/lib/pgsql/9.3/data為pg_data的目錄)
1
|
pg_resetxlog -f /var/lib/pgsql/9.3/data |
重啟數據庫:
1
|
pg_ctl start |
補充:PostgreSQL 數據庫服務無法啟動的解決方法
因為客戶那邊的磁盤一般是FAT32的文件系統,所以我們程序安裝時,采用手動安裝PostgreSQL的形式安裝數據庫,但初始化數據庫群成功并且成功注冊了系統服務后,
發現PostgreSQL的服務總是啟動不了,提示服務啟動又停止了,然后在系統時間查看器里發現報的錯誤是:Could not create inherited socket, 錯誤編碼為10022
解決方法:
運行 netsh winsock reset,重啟電腦,OK!
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。
原文鏈接:https://blog.csdn.net/NextAction/article/details/85606530