流復製備端錯誤40001

2021-08-28 07:12:04 字數 1314 閱讀 1441

目錄

環境症狀

問題原因

解決方案

相關文件

報錯編碼

環境系統平台:n/a

版本:4.1.1

症狀hgdb流復製備端多次報錯如下:

2017-10-12 08:52:02.898 cst,"partyeducation","party_build_education",8639,"10.243.32.23:35889

",59deb5bc.21bf,2,"select",2017-10-12 08:22:20 cst,33/645609,0,錯誤,40001,"由於與恢復操作衝突,正在取消語句命令","使用者查詢可能需要看到而必須被刪除的行版本號",,,,,"select statistics0_.item_id as col_0_0_, statistics0_.user_id as col_1_0_, sum(statistics0_.statistics_value) as col_2_0_ from tf_f_statistics statistics0_ where (statistics0_.user_id in ($1 , $2 , $3 , $4 , $5 , $6 , $7 , $8 , $9 , $10 , $11 , $12)) and (statistics0_.item_id in ($13 , $14)) and statistics0_.del_flag='0' group by statistics0_.user_id , statistics0_.item_id",,,"postgresql jdbc driver"

當出現該報錯資訊時流復製備機查詢業務無法訪問(每次約3-5秒無法訪問)。

問題原因

流復製備端在讀取某業務表時,主端將該部分資料刪除,進而導致備端查詢報錯。

vacuum_defer_cleanup_age (integer)

指定vacuum和hot更新在清除死亡行版本之前,應該推遲多久(以事務數量計)。預設值是零個事務,表示死亡行版本將被盡可能快地清除,即當它們不再對任何開啟的事務可見時盡快清除。在乙個支援熱後備伺服器的主伺服器上,你可能希望把這個引數設定為乙個非零值,如第 26.5 節中所述。這允許後備機上的查詢有更多時間來完成而不會由於先前的行清除產生衝突。但是,由於該值是用在主伺服器上發生的寫事務的數目衡量的,很難**對後備機查詢可用的附加時間到底是多少。這個引數只能在postgresql.conf檔案中或在伺服器命令列上設定。

你也可以考慮設定後備伺服器上的hot_standby_feedback作為使用這個引數的一種替代方案。

這無法阻止已經達到old_snapshot_threshold 所指定年齡的死亡行被清除。

詳細解決方案請登入【瀚高技術支援平台】檢視

流復製備庫斷檔

目錄 環境症狀 問題原因 解決方案 相關文件 報錯編碼 環境系統平台 linux x86 64 red hat enterprise linux 6 版本 4.3.4 症狀流複製架構,主庫新建的表未能同步到備庫,發現流複製已經斷開。問題原因 1 檢視錯誤日誌,報錯 2019 07 19 14 43 ...

複製備份表

1.複製表結構及其資料 create table table name new as select from table name old 2.只複製表結構 create table table name new as select from table name old where 1 2 或者 ...

mysql 如何複製 備份表資料

大家需要記住生產上運算元據一定需要小心小心再小心。所以當你需要更新生產上表資料的時候,需要先備份表資料。驗證沒有問題後再刪掉備份。直接使用如下sql create table new table name select field1,field2.from old table name 有時候運維會...