Postgresql 重啓失敗及刪除數據庫失敗

問題1:重啓postgrsql服務器失敗

原因:因爲其他項目程序程序在訪問數據庫,所以重啓數據庫會失敗。

答案:

1把其他項目全部先關閉掉:#sudo /etc/init.d/lighttpd stop

2重新啓動postgresql服務器:#sudo /etc/init.d/postgresql  start


問題2:刪除數據庫失敗:

原因:ERROR:  database "cfb_s2" is being accessed by other users
描述:  There are 246 other session(s) using the database.

答案:

1切換到數據庫擁有者的用戶 # su postgres

2進入psql    #psql

3查看進程   #select procpid from pg_stat_activity where datname = '數據庫名字'   and waiting='t';

4殺死查詢到的死鎖的進程  # kill   進程號 

5執行刪除數據庫的操作   #drop database  dataname(要刪除的數據庫名稱)



其他的一些查詢命令:

1查看所有的死鎖進程數 : #select * from pg_locks ;

2查詢所有數據庫的所有進程: #select  * from pg_stat_activity;     (其中顯示的字段中 prdcpid是進程號 ,waiting是否死鎖的狀態,如果顯示爲t  則是死鎖的進程)

3--數據庫處於恢復模式    退回到 -bash-3.2$   # ps -ef | grep post 

注意事項:不要使用kill -9 殺 Postgresq 用戶進程  容易出現問題,我這麼操作後,結果導致 Postgresql 重啓失敗,解決方法見問題1。或者是其他情況,請看一下這篇文章有沒有幫助,鏈接

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章