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關於GDK字符集問題SQL
- 遷移ORACLE資料到MogDB/openGauss時的字符集問題Oracle
- MOGDB/openGauss與PostgreSQL關於GBK字符集問題SQL
- MogDB openGauss故障排查流程
- openGauss/MOGDB與PG等待事件事件
- MogDB openGauss常用查詢彙總
- MogDB/openGauss如何實現事務的rollback
- MogDB/openGauss中merge的語法解析
- MogDB/openGauss誤刪未歸檔的xlog日誌如何解決
- openGauss/MOGDB Copy支援容錯機制
- MogDB-openGauss default privileges 使用方法
- MogDB-opengauss中的聚集與分組操作
- MogDB/openGauss如何實現自增主鍵
- 解決「問題」,不要解決問題
- MogDB/openGauss的三種函式穩定性關鍵字函式
- MogDB openGauss資料庫擴縮容的幾種方式資料庫
- MogDB/openGauss學習筆記-獲取物件DDL筆記物件
- openGauss/MogDB-3.0.0 dcf測試(非om安裝)
- 根據openGauss/MogDB的lwtid檢視執行緒堆疊執行緒
- 解決問題
- 發現問題,解決問題
- 【問題解決】單機搭建dataguard的問題
- 黑蘋果的問題解決蘋果
- 遇到問題的解決方法
- display:flex解決的問題Flex
- 解決bigdecime的問題
- oracle 鎖問題的解決Oracle
- vpd碰到的問題解決
- 驢解決不了的問題
- 解決github訪問慢的問題Github
- 解決 github 訪問不了的問題Github
- openGauss資料庫分析問題資料庫
- yum問題解決
- sqlitedabaseislocked問題解決SQLite
- dump 解決問題
- 解決Redmine建立&更新問題時很慢的問題
- 解決問題的方法和途徑-問題管理