PG 資料庫遭遇 pg_clog file missing 故障.
今天業務系統遭遇了一起資料庫故障.
資料庫端報了一些錯誤.[code]
2017-07-24 00:16:25.514 CST,"pcauto","pcauto",24404,"192.168.11.60:49721",5974c895.5f54,1,"SELECT",2017-07-24 00:02:29 CST,4/149911010,0,ERROR,58P01,"could not access status of transaction 909258544","Could not open file ""pg_clog/0363"": No such file or directory.",,,,,
[/code]
資料庫端報了一些錯誤.[code]
2017-07-24 00:16:25.514 CST,"pcauto","pcauto",24404,"192.168.11.60:49721",5974c895.5f54,1,"SELECT",2017-07-24 00:02:29 CST,4/149911010,0,ERROR,58P01,"could not access status of transaction 909258544","Could not open file ""pg_clog/0363"": No such file or directory.",,,,,
[/code]
從報錯日誌上看 好像是事務日誌缺失了. 好大件事.
然後發現對這個表的全部掃描也失敗了.因為繞不過跟這個事務相關的幾十行記錄.
然後發現這個事務涉及的sql 在從庫上是可以執行.
為了不阻塞業務, 於是啟動了ha 切換.
然後回來處理這個問題. 發現這個問題很棘手. 目前還沒有成熟快速的套路.
借鑑 了同行們的幾個方案均失敗. 會跳過這個事務報錯. 但是會報另一個錯誤. block head 損壞.
最終還是無法解決.
終極的解決方法. truncate table 或者drop table 然後從備份集中 恢復資料回去.
我們保留了現場: 然後進行了各種演練. 最終都是無解.
參考方案:
根據 BRUCE 大神 在郵件列表中的一個回覆:
根據我們主從之間是sync 同步的.
我們初步認為 .這是一個資料庫中行資料的物理損壞, 對應於oracle 的資料塊的物理損壞.
oracle 中會有一個比較完善的報錯,診斷機制. 會報 block 損壞.
pg 這裡的這個報錯.我麼猜測是 資料的物理損壞導致 min max 的事務狀態的記錄溢位 .
因為報錯中請求的 應該存在於去年的clog 目錄下面才對.
我們最小的clog 檔案 03D1 是2017年一月9號的. 這其中已經過了 8個多月了. 對一個頻繁訪問的業務表.
去年丟的某個日誌, 不應該到現在才報錯. 然後同步的從庫是沒有問題. 從庫也沒有0363 這個檔案,但是卻可以訪問這些記錄.
這業驗證了.這個錯誤可能是資料記錄 物理損壞了.如果是邏輯出錯的話,應該會透過事務日誌傳遞到從庫.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-2142485/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【PG資料庫】PG資料庫的安裝及連線方法資料庫
- PG 資料庫 從阿里雲pg rds 同步資料。資料庫阿里
- pg_resetwal pg_resetxlog 重整 pg資料庫 wal 與pg_controldata 。 資料庫恢復。資料庫LDA
- PG資料庫初始化資料庫
- PostgreSQL10.0preview變化-pg_xlog,pg_clog,pg_log目錄更名為pg_wal,pg_xact,logSQLView
- 基於知識圖譜與異常檢測的PG資料庫故障定位資料庫
- PG 資料庫恢復實戰資料庫
- C++ 連線pg資料庫C++資料庫
- 關於資料庫故障資料庫
- 【PG管理】postgresql資料庫管理相關SQL資料庫
- 基於PMEM的PG資料庫Memhive資料庫Hive
- PG資料庫為什麼要用autovacuum資料庫
- PG資料庫IO最佳化技巧資料庫
- 資料庫伺服器故障資料庫伺服器
- MySQL資料庫故障恢復MySql資料庫
- 【PG結構】Postgresql資料庫資料目錄說明SQL資料庫
- 【postgresl】PG資料庫sql特性簡單解析資料庫SQL
- PG資料庫更新刪除卡死現象資料庫
- PG資料庫SQL最佳化小技巧資料庫SQL
- pg_dump 備份,恢復資料庫資料庫
- openJPA 遭遇PG 之 like 語法問題
- 資料庫監聽夯故障分析資料庫
- 資料庫資料恢復-ORACLE資料庫的常見故障&各種故障下的資料恢復可能性資料庫資料恢復Oracle
- Oracle資料庫故障恢復資料庫系統故障恢復效能優化指南大全Oracle資料庫優化
- PG 資料庫只讀使用者的建立。資料庫
- 資料庫週刊18│4月資料庫排行;PG是最好的資料庫;TiDB 4.0新特性資料庫TiDB
- PG 資料庫庫監聽佇列的長度問題資料庫佇列
- MySQL資料庫故障分析-鎖等待(一)MySql資料庫
- 資料庫不同故障的恢復方式資料庫
- 資料庫映象和故障轉移群集資料庫
- Oracle資料庫Redo故障的恢復Oracle資料庫
- 用DUL恢復故障的資料庫資料庫
- 資料庫上雲實踐:使用Ora2pg進行資料庫遷移資料庫
- 聊聊PG資料庫的防誤刪除問題資料庫
- PG資料庫記憶體告警了怎麼分析資料庫記憶體
- pg14資料庫引數修改方式小結資料庫
- postgresql 使用pg_rman恢復還原資料庫SQL資料庫
- 檢視PG資料庫的許可權情況資料庫