PostgreSQL 完整性校驗(yàn),數(shù)據(jù)超可靠!
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
pg_checksums 介紹PostgreSQL 11 引入了一個(gè) pg_checksums 工具。PostgreSQL 12 為其新增了多項(xiàng)功能。 現(xiàn)在,我們可以對(duì)離線實(shí)例啟用和禁用校驗(yàn)和了。 對(duì)于離線實(shí)例,現(xiàn)在 pg_checksums 可以支持更多運(yùn)行模式:
當(dāng)運(yùn)行 其工作原理如下。該工具現(xiàn)在總共有三種模式:
使用示例對(duì)于一個(gè)已禁用數(shù)據(jù)校驗(yàn)和的實(shí)例,可以按以下方式啟用校驗(yàn)和。首先,需要切換的實(shí)例必須被干凈地關(guān)閉:
然后,運(yùn)行以下命令即可啟用數(shù)據(jù)校驗(yàn)和,所做的更改會(huì)反映到控制文件中:
重復(fù)相同的操作會(huì)導(dǎo)致失敗,在已禁用數(shù)據(jù)校驗(yàn)和的情況下再次禁用,也會(huì)出現(xiàn)同樣的情況:
然后,可以按以下方式禁用校驗(yàn)和:
最后,需要注意的是,該工具能夠妥善處理操作過(guò)程中的失敗或中斷情況。例如,如果在啟用數(shù)據(jù)校驗(yàn)和的過(guò)程中主機(jī)斷電,由于控制文件的更新是最后一步,數(shù)據(jù)文件夾將保持校驗(yàn)和禁用的狀態(tài)。因此,可以從頭重試該操作。 此外,pg_checksums 還添加了一個(gè)選項(xiàng) 與 pg_rewind 和 pg_basebackup 類似,進(jìn)度報(bào)告中顯示的信息,包括當(dāng)前已處理的數(shù)據(jù)量和待處理的總數(shù)據(jù)量。 請(qǐng)注意,進(jìn)度選項(xiàng)僅適用于
這需要額外掃描數(shù)據(jù)文件夾,以便預(yù)先了解所有可校驗(yàn)項(xiàng)的總大小,這會(huì)額外消耗一些資源,但當(dāng)在大型實(shí)例上執(zhí)行操作需要很長(zhǎng)時(shí)間時(shí),進(jìn)度報(bào)告非常有用。 升級(jí)啟用校驗(yàn)和在備份驗(yàn)證方面,pg_checksums 已經(jīng)是一個(gè)相當(dāng)強(qiáng)大的工具,但在升級(jí) PostgreSQL 老版本實(shí)例后,啟用校驗(yàn)和時(shí)仍然會(huì)存在障礙。在 PostgreSQL 中,可以通過(guò)邏輯復(fù)制將數(shù)據(jù)復(fù)制到一個(gè)使用 initdb 初始化且已啟用數(shù)據(jù)校驗(yàn)和的新實(shí)例,但初始數(shù)據(jù)復(fù)制可能需要很長(zhǎng)時(shí)間和大量資源。請(qǐng)注意,如果實(shí)例依賴于對(duì)關(guān)系數(shù)據(jù)塊進(jìn)行物理復(fù)制的備份工具(如 pg_rewind),可能會(huì)出現(xiàn)這樣的情況:實(shí)例已啟用校驗(yàn)和,但某些頁(yè)面可能已損壞,因?yàn)檫@些頁(yè)面來(lái)自未啟用校驗(yàn)和的實(shí)例。因此,在一組 PostgreSQL 節(jié)點(diǎn)中切換校驗(yàn)和時(shí),應(yīng)注意在所有節(jié)點(diǎn)上同時(shí)一致地啟用校驗(yàn)和。 現(xiàn)在,由于數(shù)據(jù)校驗(yàn)和僅在后臺(tái)將頁(yè)面刷新到磁盤或共享緩沖區(qū)被換出時(shí)才會(huì)計(jì)算,并且即使進(jìn)行全頁(yè)寫(xiě)入,WAL 日志也不需要計(jì)算校驗(yàn)和,因此依靠物理復(fù)制(WAL 流)可以更輕松地以最小的停機(jī)時(shí)間啟用校驗(yàn)和。例如,假設(shè)有兩個(gè)節(jié)點(diǎn)(一個(gè)主節(jié)點(diǎn)和一個(gè)備用節(jié)點(diǎn)),且沒(méi)有在多個(gè)節(jié)點(diǎn)之間對(duì)關(guān)系數(shù)據(jù)塊進(jìn)行物理復(fù)制,可以按以下步驟來(lái)操作: 假設(shè)主節(jié)點(diǎn)和備用節(jié)點(diǎn)都已禁用數(shù)據(jù)校驗(yàn)和,然后我們來(lái)啟用數(shù)據(jù)校驗(yàn)和。
閱讀原文:原文鏈接 該文章在 2025/8/8 13:09:08 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |