Greenplum的數據庫年齡檢查處理

概述

Greenplum是基于Postgresql數據庫的分布式數據庫,而PG數據庫在事務及多版本并發控制的實現方式上很特別,采用的是遞增事務id的方法,事務id大的事務,認為比較新,反之事務id小,認為比較舊。

事務id的上限是21億,正常使用時,事務id只增不減,到達一定程度時,就會觸發數據庫告警直至數據庫只讀,無法創建新事務

減少事務id的方法是執行提供的回收命令。

gp一共是21億可以使用,使用超過5億就告警,超過11億就鎖庫

兩個重要參數

postgres=# show xid_warn_limit;xid_warn_limit
----------------500000000
(1 row)postgres=# show xid_stop_limit;xid_stop_limit
----------------1000000000
(1 row)

這個兩個參數是控制事務id剩余值多少時數據庫會告警,或切換為只讀的

注意:事務id的總值是21億

xid_warn_limit 當距離stop的值不足5億時,數據庫會觸發年齡告警
xid_stop_limit 當距離21億總值的剩余值不足10億時,數據庫會切換為只讀

簡單來說,針對默認的設置:

年齡1-5億:無年齡問題
年齡5-11億:會觸發年齡告警,但不影響數據庫使用
年齡11-21億:數據庫為只讀,不能創建新事務

如何檢查數據庫年齡?

1.執行命令時年齡告警

查詢表統計數據是出現異常提示:

WARNNING:database “XXX” must be  vacuumed within 177009986 transactions 
HINT: To avoid a database shutdown,execute a database-wide VACUUM in “XXX”

當數據庫查詢或者日志中出現上面告警時,說明需要對GP事務id進行清理

If these warnings are ignored, the system will shut down and refuse to start any new transactions ince there are fewer than 1 million transactions left until wraparound:
ERROR: database is not accepting commands to avoid wraparound data loss in database “XXXX”

當數據庫查詢或者日志中出現上面告警時,說明GP停止對外提供服務

2.查詢當前數據庫年齡

SELECT gp_segment_id,datname, age(datfrozenxid) FROM gp_dist_random(‘pg_database’) ORDER BY 3 DESC;

例子:
比如這里查詢當前年齡,最上面的值為2億多,說明年齡在2億左右

postgres=# SELECT gp_segment_id,datname, age(datfrozenxid) FROM gp_dist_random('pg_database') ORDER BY 3 DESC;gp_segment_id |                  datname                   |    age
---------------+--------------------------------------------+-----------0 | test01					                    | 2707979230 | test02					                    | 2707979230 | test03			                            | 270797923

如果是11億,告警鎖庫了

3.如何界定年齡是否要處理

如果出現上面1 的告警,說明年齡已經到達警戒值,需要處理。
如果2 年齡超過5億,說明即將告警,也需要處理

超過11億,數據庫就會鎖庫

告警年齡處理

在年齡到達告警值且未到鎖庫值的時候,此時數據庫服務正常,就是命令會有warning輸出

此時需要再master daedb用戶下執行
nohup vacuumdb -F -a >/home/gpadmin/vacuumdb.log &

該命令執行時間可能很長,并且會消耗一定資源,如果過于影響客戶使用,請選擇執行時間,保證執行時間有5+ 小時

數據庫鎖庫處理

還有一種情況,就是數據庫已經到達只讀閾值, 數據庫只讀了,因為vacuumdb的命令也需要創建事務,所以直接運行命令會報錯,無法進行回收

就需要先修改上面的參數閾值,使其能正常運行事務

1.停止數據庫

gpstop -M fast -aps  -ef|grep postgres   關閉確保進程都不在了,再繼續 

2.找到所有數據目錄

在master的daedb用戶下執行:

gpstate -s|grep -E 'Address|Datadir'

該命令會將集群所有的數據目錄及對應的主機名打印出來

另外有兩臺master,一般是在/gpmaster/gpseg-1 里,可以使用gpstate -f 查看

3.修改所有節點數據目錄里配置文件參數

修改配置,找到所有節點的postgresql.conf,為其增加或修改參數

xid_stop_limit=800000000    #改為8億,或者更小

全部修改完成之后,啟動數據庫:gpstart -a
啟動完成以后,此時數據庫就可以正常使用了

4.回收數據庫年齡

此時需要再master 數據庫用戶下執行

nohup vacuumdb -F -a >/home/gpadmin/vacuumdb.log &

5.還原參數

改完還有個事,要將上面加的參數,全部注釋掉 。有個簡便方法,find 出來后替換

find /* -name 'postgresql.conf'|xargs sed -i  's/xid_stop_limit=500000000/#xid_stop_limit=500000000/g'

重啟數據庫生效:

gpstop -M fast -agpstart  -a

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164329.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164329.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

經典的回溯算法題leetcode組合問題整理及思路代碼詳解

目錄 組合問題 leetcode77題.組合 leetcode216題.組合總和III leetcode40題.組合總和II leetcode39題.組合總和 倘若各位不太清楚回溯算法可以去看我上一篇文章。 回溯算法詳解-CSDN博客 組合問題 一般組合和排列類的問題我們都會轉化成一個樹形問題,更便于…

26. 刪除有序數組中的重復項(remove-duplicates-from-sorted-array)

26. 刪除有序數組中的重復項(remove-duplicates-from-sorted-array) 給你一個 非嚴格遞增排列 的數組 nums ,請你** 原地** 刪除重復出現的元素,使每個元素 只出現一次 ,返回刪除后數組的新長度。元素的 相對順序 應該保持 一致 。然后返回 …

批量創建表空間數據文件(DM8:達夢數據庫)

DM8:達夢數據庫 - - 批量創建表空間數據文件 環境介紹1 批量創建表空間SQL2 達夢數據庫學習使用列表 環境介紹 在某些場景(分區表子表)需要批量創建表空間,給不同的表使用,以下代碼是批量創建表空間的SQL語句; 1 批量創建表空間SQL --創建 24個數據表空間,每個表空間有3個數…

強化學習小筆記 —— 如何選擇合適的更新步長

在強化學習中,動作價值函數的更新可以使用增量法,如下所示: Q k 1 k ∑ i 1 k r i 1 k ( r k ∑ i 1 k ? 1 r i ) 1 k ( r k ( k ? 1 ) Q k ? 1 ) 1 k ( r k k Q k ? 1 ? Q k ? 1 ) Q k ? 1 1 k [ r k ? Q k ? 1 ] \beg…

Linux寶塔面板搭建Discuz論壇, 并內網穿透實現公網訪問

Linux寶塔面板搭建Discuz論壇, 并內網穿透實現公網訪問 文章目錄 Linux寶塔面板搭建Discuz論壇, 并內網穿透實現公網訪問前言1.安裝基礎環境2.一鍵部署Discuz3.安裝cpolar工具4.配置域名訪問Discuz5.固定域名公網地址6.配置Discuz論壇 📷 江池…

低代碼平臺推薦:五大低代碼廠商誰的模式更“合適”

隨著數字化時代的到來,低代碼開發平臺作為提高數字生產力的工具正受到越來越多企業的關注,市面上的低代碼產品和廠商更是“亂花漸欲迷人眼”。 各家產品不僅功能各有不同,甚至商機都有區別的情況,如何做好產品選型已然成了采購企…

C語言——指針(一)

📝前言 這篇文章主要帶大家初步認識一下指針,供大家理解參考。 主要歸納與講解: 1,指針與指針變量 2,指針的基本使用(如何定義,初始化,引用) 🎬個人簡介&…

計算方法 期末總結

思維導圖 緒論 算法的性質: 有窮性、確切性、有輸入輸出、可行性 算法的描述方法: 自然語言、偽代碼、流程圖、N-S流程圖 算法設計思想: 化大為小的縮減技術:二分法化難為易的校正技術:開方法化粗為精的松弛技術&a…

無需公網IP,使用內網穿透實現公網訪問本地OpenWRT管理界面

文章目錄 1.openWRT安裝cpolar2.配置遠程訪問地址3.固定公網地址 簡單幾步實現在公網環境下遠程訪問openWRT web 管理界面,使用cpolar內網穿透創建安全隧道映射openWRT web 界面面板443端口,無需公網IP,無需設置路由器。 1.openWRT安裝cpola…

SpringBoot使用ObjectMapper之Long和BigDemical類型的屬性字符串處理,防止前端丟失數值精度

SpringBoot使用ObjectMapper之Long和BigDemical類型的屬性字符串處理,防止前端丟失數值精度! 方式一:注解 使用注解 JsonFormat(shape JsonFormat.Shape.STRING),如下: import com.fasterxml.jackson.annotation.JsonFormat; …

在arm 64 環境下使用halcon算法

背景: halcon,機器視覺領域神一樣得存在,在windows上,應用得特別多, 但是arm環境下使用得很少。那如何在arm下使用halcon呢。按照官方說明,arm下只提供了運行時環境,并且需要使用價值一萬多人民…

設計高手的秘密武器:5款讓平面作品更出彩的軟件

平面設計是一種迷人而多樣化的藝術形式,它結合了顏色、形狀、排版和創造力,通過圖像和文本傳達信息。市場上有各種各樣的平面設計軟件,選擇合適的設計軟件是成為優秀設計師的重要一步。為了降低軟件成本,大多數設計師會優先使用免…

編譯原理之LL(1)語法分析實驗(附完整C/C++代碼與測試)

一、實驗內容與要求 先從鍵盤讀入要分析的文法,由程序自動構造FIRST、FOLLOW 集以及SELECT集合,判斷是否為LL (1)文法。 分析文法為G[E]: (0)E→ TE’ (1)E’→ TE’ (2&#xff…

軟件開發王者搭配:80%低代碼+20%高代碼

數字化領域從來不缺新概念,前兩年市場大談云原生、技術中臺、業務中臺等概念,企業更多聚焦在業務與IT架構的升級。而這兩年,隨著低代碼、生成式AI的盛行,大家則開始挖掘數字化應用的低成本建設模式。 在過去,開發一套系…

Linux 是否被過譽了?

Linux 是否被過譽了? 有些人眼里,電腦這種東西就應該是華麗麗的桌面,手握鼠標戳戳按鈕,鍵盤只為偶爾打打字,仿佛windows式的桌面形式才是理所應當,GUI才是理所應當,x86才是理所應當&#xff0c…

使用 NVProf 檢測 CUDA kernel 的 bank conflict

使用 NVProf 檢測 CUDA kernel 的 bank conflict NVProf 指令 使用 NVProf 可以對 bank conflict 進行檢測: nvprof --events shared_ld_bank_conflict,shared_st_bank_conflict <app> [args...]其中: --events 選項指定的 shared_ld_bank_conflict,shared_st_bank_c…

python -opencv 中值濾波 ,均值濾波,高斯濾波實戰

python -opencv 中值濾波 &#xff0c;均值濾波&#xff0c;高斯濾波實戰 cv2.blur-均值濾波 cv2.medianBlur-中值濾波 cv2.GaussianBlur-高斯濾波 直接看代碼吧&#xff0c;代碼很簡單&#xff1a; import copy import math import matplotlib.pyplot as plt import matp…

c++的更嚴格的類型轉換要求

C有更嚴格的類型轉換要求 C中對類型轉換有嚴格的要求&#xff0c;需要的類型和給的類型不 一致時可能會編譯報錯 例如&#xff1a; C語言中 #include<stdio.h> #include<stdlib.h> //全局變量 //C語言中的函數的形參的類型可以不寫&#xff0c;沒有返回值可以返回&…

聯發科正在改寫全球高端手機芯片市場格局

全球高端手機芯片市場正在重塑。 11 月 21 日&#xff0c;聯發科發布了新一代卓越 5G 生成式 AI 移動芯片天璣 8300。 這款定位于中端機檔位的芯片&#xff0c;無論在技術架構還是在實際性能表現上&#xff0c;都實現了對前代旗艦芯片的趕超&#xff0c;徹底打破了業內長期存…

相機和濾鏡應用程序Nevercenter CameraBag Photo mac軟件特點說明

Nevercenter CameraBag Photo mac是一款相機和濾鏡應用程序&#xff0c;它提供了一系列先進的濾鏡、調整工具和預設&#xff0c;可以幫助用戶快速地優化和編輯照片。 Nevercenter CameraBag Photo mac軟件特點 1. 濾鏡&#xff1a;Nevercenter CameraBag Photo提供了超過200種…