大數(shù)據(jù)“復(fù)活”記
1174
2025-03-31
隨著技術(shù)的演進,數(shù)據(jù)也發(fā)生了巨大的變化,數(shù)據(jù)規(guī)模越來愈大、數(shù)據(jù)種類呈現(xiàn)多樣性,數(shù)據(jù)處理的時效性要求也越來越高,GaussDB(DWS)實時數(shù)倉當前面臨著巨大的機遇,也面臨著巨大的挑戰(zhàn)。同樣的,強大工具來幫助我們定位各種各樣的問題。
數(shù)據(jù)庫目錄下有多種二進制文件,比如系統(tǒng)表、普通表、索引和日志文件等等,但是數(shù)據(jù)庫運行過程中的問題,我們該如何利用這些文件去定位和分析問題呢? pagehack和pg_xlogdump就是我們解決問題的利器,幫助我們在故障定位中,解析各種文件的頁面頭和xlog日志。
pagehack:
我們先來看看pagehack的各項參數(shù)說明
這里我們列舉出一下幾種非常常用的解析方法:
(1)數(shù)據(jù)庫中的系統(tǒng)表有很多,但是在數(shù)據(jù)庫data目錄下,該如何把系統(tǒng)表和磁盤上的文件一一對應(yīng)呢,我們可以通過pagehack查詢data目錄下的pg_filenode.map
執(zhí)行pagehack -f pg_filenode.map -t filenode_map,我們就可以看到如下結(jié)果,這里的relfilenode就對應(yīng)磁盤上的文件
(2)除了系統(tǒng)表,另外一個常用的數(shù)據(jù)類型就是行存表的文件,通常對于存儲異常、讀取異常等問題,我們都需要通過pagehack查詢行存表的頭文件信息。首先連接DN上,查詢到該行存表對應(yīng)的relfilenode(16502),到對應(yīng)DN的data目錄下,執(zhí)行:pagehack -f 16502 -t heap,結(jié)果如下:
根據(jù)解析出的結(jié)果,page頁面頭結(jié)構(gòu)如下
解析出的頁面中一些常用信息含義如下,關(guān)于page頁面詳細信息,后面會出一篇博文來專門介紹page頁面結(jié)構(gòu)信息
pd_lsn:本頁面最后一次變更所寫入的xlog記錄對應(yīng)的lsn。
pd_special:用在索引頁中,在索引頁中它指向特殊空間的起始位置,在堆表頁面中它指向頁尾。
pd_pagesize_version:頁面大小以及頁面布局的版本號。
t_xmin: 保存插入該元組的事務(wù)的txid(事務(wù)號)
t_xmax:保存刪除或更新此元組的事務(wù)的txid。如果尚未刪除或更新此元組,則t_xmax設(shè)置為0,即無效。
t_infomask:用于標識元組當前的狀態(tài)。
t_infomask2:HOT鏈更新狀態(tài)和當tuple的屬性個數(shù)。
pg_xlogdump:
GaussDB數(shù)據(jù)庫利用日志文件來防止斷電之類的故障導(dǎo)致的數(shù)據(jù)丟失,任何試圖修改數(shù)據(jù)庫的操作都會寫一份日志記錄到磁盤,這個日志稱為XLOG。在數(shù)據(jù)庫定位問題時,就可以使用pg_xlogdump來解析XLOG日志,包括日志類型、對應(yīng)的事務(wù)號、修改的文件等等。
Pg_xlogdump參數(shù)使用說明如下:
在pg_xlog目錄下找到對應(yīng)的日志文件, XLOG文件名稱24個字符,由三部分組成,每一部分的解析如下):
第1部分是TimeLineID,
第2部分是邏輯文件ID,
第3部分是物理文件ID
pg_xlogdump ./000000010000000000000004 -n
LSN:日志編號
prev:對應(yīng)該條記錄的上一條xlog記錄。
xid:事務(wù)的xid
desc:對日志的詳細描述
通過pg_xlogdump可以查看xlog日志記錄的操作的xid和lsn,就可以在數(shù)據(jù)庫崩潰后,使用xid進行恢復(fù)等操作以及定位錯誤等。
pagehack和pg_xlogdump工具在定位分析問題是常用的兩種工具,希望這兩種工具的介紹,能幫助大家再分析解決問題的時候,提高效率。本文章中設(shè)計的頁面結(jié)構(gòu)詳細信息,后期會專門寫一篇文章介紹,加深大家的理解。
Gauss AP 數(shù)據(jù)倉庫服務(wù) GaussDB(DWS)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。