openGauss/MogDB的uncommitted xmin問題解決
一、問題現象
在測試openGauss/MogDB的時候,發現主庫查詢snapshot.tables_snap_timestamp這個表的時候,一select *,資料庫就當機,而備庫是正常的。因為是測試環境不存在資料量太多的情況。所以最開始初步懷疑有資料頁損壞了。
在分析的時候,因為是測試環境使用了vacuum full去測試(
正常使用vacuun freeze應該就可以)。
報錯為
ERROR: uncommitted xmin 21506 from before xid cutoff 51237 needs to be frozen
透過返回結果猜測資料庫在已經不允許執行事務的情況下被回滾的, 所以顯示為
uncommitted xid。
根據vacuum full提示,它跳過了pg_type表,並且建議我們用
maintenance模式去vavuum full處理它。
此外我們根據提示的xmin可以找到對應的是pg_type以及兩個索引。
二、問題解決
maintenance模式類似於PostgreSQL的單使用者模式。但是比較好的一點是,MogDB/openGauss的maintenance模式不需要PostgreSQL那樣需要停掉PostgreSQL資料庫再去使用。關於PostgreSQL的單使用者模式可以參考我這一篇
1.使用maintenance模式連線資料庫
以下兩種方法均可。
方式一
gsql -d postgres -p 26000-r -m
方式二
gsql -d postgres -p 26000 -r 連線成功後,執行如下命令: set xc_maintenance_mode=on;
2.使用vacuum freeze/vacuum full處理該系統表
正常使用vacuun freeze應該就可以。
再使用正常方式登入,去查詢這個表。問題得以解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2927704/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MogDB/openGauss 生態工具-MTK對glibc版本的解決
- MOGDB/openGauss與PostgreSQL關於GBK字符集問題SQL
- MOGDB/openGauss與PostgreSQL關於GDK字符集問題SQL
- 遷移ORACLE資料到MogDB/openGauss時的字符集問題Oracle
- openGauss/MogDB的TPCH測試
- MogDB openGauss故障排查流程
- openGauss/MOGDB與PG等待事件事件
- MogDB/openGauss中merge的語法解析
- MogDB/openGauss誤刪未歸檔的xlog日誌如何解決
- MogDB openGauss常用查詢彙總
- MogDB/openGauss如何實現事務的rollback
- MogDB-opengauss中的聚集與分組操作
- openGauss/MogDB列存表的delta表測試
- MogDB-openGauss default privileges 使用方法
- openGauss/MOGDB Copy支援容錯機制
- MogDB/openGauss如何實現自增主鍵
- MOGDB/openGauss索引推薦及虛擬索引索引
- MogDB openGauss資料庫擴縮容的幾種方式資料庫
- MogDB/openGauss的三種函式穩定性關鍵字函式
- MogDB/openGauss學習筆記-獲取物件DDL筆記物件
- openGauss/MogDB列存表vacuum DELTAMERGE過程申請的鎖
- 根據openGauss/MogDB的lwtid檢視執行緒堆疊執行緒
- 解決 Unexpectedlexicaldeclarationincaseblock的問題BloC
- openGauss/MogDB-3.0.0 dcf測試(非om安裝)
- 解決 github 訪問不了的問題Github
- 解決github訪問慢的問題Github
- openGauss資料庫分析問題資料庫
- display:flex解決的問題Flex
- 遇到問題的解決方法
- MOGDB/openGauss的txid_snapshot 資料型別和相關函式資料型別函式
- 解決JS跨域訪問的問題JS跨域
- but no encoding declared;問題的解決方法Encoding
- 01揹包問題的解決
- 黑蘋果的問題解決蘋果
- 提升解決問題能力的思考
- JAR衝突問題的解決JAR
- 提問題比解決問題更重要
- 解決跨域問題跨域