pg 資料庫日誌檔案誤刪除後的應對方案

babyyellow發表於2015-08-13

PG  資料庫出問題了, 當你匆匆忙忙去  看日誌檔案時怎麼回事的時候, 

到了日誌目錄一看,  傻眼皮了, 日誌檔案被某人 刪除了。 

怎麼辦??


有幾個方案: 


1.  pg 是 syslogger程式 負責寫日誌,會一直持有這個檔案控制程式碼 。

   去到  日誌目錄  lsof  |grep  postgres-xxx.x.xx.log    就可以找到持有這個檔案控制程式碼的程式了,然後去 /proc/pid/fd 下面 找到對應檔案就可以看日誌了。 




2.  方案二其實就是方案一的一個進化了。  

    pg  是有logger process  負責全部日誌的寫操作的, 這個時候 最簡單的方案就是

     ps  -ef  |grep  postgres   |grep   logger process   找到對應的logger process 的程式號 


    然後直接去/proc/pid/fd 下面找就好了。 


3.  方案3  這個也是linux 系統下資料庫檔案誤刪除的一個恢復策略。

          當資料庫開啟的時候,資料檔案不物理刪除了,可以用lsof |grep  刪除的檔案   找到對應的 程式號。

            然後停止一切對資料庫的讀寫操作, 應用關閉, 

           千萬不能關閉資料庫,

           執行checkpoint  , 切換歸檔日誌 。

           到/proc/pid/fd  下面 把對應的檔案copy 出來。 然後關閉資料庫, 把檔案恢復到原來的位置,然後啟動資料庫 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-1770402/,如需轉載,請註明出處,否則將追究法律責任。

相關文章