Google釋出開源PostgreSQL頁面驗證(PostgreSQL Page Verification)工具,能幫助企業(yè)偵測PostgreSQL數(shù)據(jù)庫變更程序中,所發(fā)生的數(shù)據(jù)丟失或是損壞的情形。采用Cloud SQL的PostgreSQL用戶,其數(shù)據(jù)庫服務已經(jīng)自動啟用了這項功能,Google提到,由於該工具會影響數(shù)據(jù)庫服務效能,因此建議其他使用者最好在獨立的伺服器中執(zhí)行該工具。
Google指出,數(shù)據(jù)丟失是數(shù)據(jù)庫變更中可能遭遇的最大風險,驗證數(shù)據(jù)庫備份是解決這個風險常見的作法,但是實際上在多數(shù)企業(yè)上并非如此。平時或許沒問題,不過一旦數(shù)據(jù)庫發(fā)生嚴重錯誤,可能導致無法挽回的結(jié)果。PostgreSQL頁面驗證工具的價值,在於盡早發(fā)現(xiàn)出數(shù)據(jù)損壞,并最大程度的減少數(shù)據(jù)丟失,確保數(shù)據(jù)庫災難發(fā)生時,企業(yè)還有完整的數(shù)據(jù)庫備份可以使用。
Google在4月時宣布其云端數(shù)據(jù)庫服務Cloud SQL開始提供PostgreSQL,而與此同時,也在PostgreSQL社群中貢獻耕耘,GCP釋出的這個開源PostgreSQL頁面驗證工具,是一個針對PostgreSQL數(shù)據(jù)庫的命令列工具,只要PostgreSQL版本9.3以上,都能使用數(shù)據(jù)頁面上的總和檢查碼(Checksum)來驗證數(shù)據(jù)完整性。
用戶想要使用這個工具,必須在初始化新PostgreSQL數(shù)據(jù)庫叢集時,就啟用總和檢查碼,這個動作無法在事後才進行。啟用總和檢查碼功能後,頁面驗證工具會自動計算自己的總和檢查碼,并且與Postgres的總和檢查碼相比對,以確保兩者是相同的。當驗證失敗時,工具也會告知使用者,發(fā)生問題的數(shù)據(jù)頁面所在。
無論數(shù)據(jù)庫是線上或是離線狀態(tài),都能使用頁面驗證工具進行驗證,該工具僅對數(shù)據(jù)頁面上的總和檢查碼進行校驗,并不需要把每個頁面都載入到共享緩沖快取中。另外,也支援驗證大於1GB的表格的連續(xù)數(shù)據(jù)段(Subsequent segment),該工具還會自動跳過Free Space Map、Visibility Map以及pg_internal.init檔案,因為這些數(shù)據(jù)都能夠重新產(chǎn)生。
Google提醒,這個數(shù)據(jù)驗證工具會影響效能,因此建議企業(yè)可以將該工具合并至數(shù)據(jù)庫備份程序中,并在獨立的伺服器上執(zhí)行。而PostgreSQL頁面驗證工具已經(jīng)整合在Cloud SQL的PostgreSQL服務中,因此在數(shù)據(jù)庫運作的過程便會自動執(zhí)行,Google大規(guī)模的使用這個工具,驗證用戶在云端上的數(shù)據(jù)備份,而且為避免影響用戶數(shù)據(jù)庫效能,另外啟用了內(nèi)部執(zhí)行個體來執(zhí)行。非GCP用戶則可以在Google Open Source或是GitHub下載該工具。