![](http://www.ctiforum.com/uploadfile/2018/0713/20180713035225488.jpg)
Google释出开源PostgreSQL页面验证(PostgreSQL Page Verification)工具,能帮助企业侦测PostgreSQL数据库变更程序中,所发生的数据丢失或是损坏的情形。采用Cloud SQL的PostgreSQL用户,其数据库服务已经自动启用了这项功能,Google提到,由於该工具会影响数据库服务效能,因此建议其他使用者最好在独立的伺服器中执行该工具。
Google指出,数据丢失是数据库变更中可能遭遇的最大风险,验证数据库备份是解决这个风险常见的作法,但是实际上在多数企业上并非如此。平时或许没问题,不过一旦数据库发生严重错误,可能导致无法挽回的结果。PostgreSQL页面验证工具的价值,在於尽早发现出数据损坏,并最大程度的减少数据丢失,确保数据库灾难发生时,企业还有完整的数据库备份可以使用。
Google在4月时宣布其云端数据库服务Cloud SQL开始提供PostgreSQL,而与此同时,也在PostgreSQL社群中贡献耕耘,GCP释出的这个开源PostgreSQL页面验证工具,是一个针对PostgreSQL数据库的命令列工具,只要PostgreSQL版本9.3以上,都能使用数据页面上的总和检查码(Checksum)来验证数据完整性。
用户想要使用这个工具,必须在初始化新PostgreSQL数据库丛集时,就启用总和检查码,这个动作无法在事後才进行。启用总和检查码功能後,页面验证工具会自动计算自己的总和检查码,并且与Postgres的总和检查码相比对,以确保两者是相同的。当验证失败时,工具也会告知使用者,发生问题的数据页面所在。
无论数据库是线上或是离线状态,都能使用页面验证工具进行验证,该工具仅对数据页面上的总和检查码进行校验,并不需要把每个页面都载入到共享缓冲快取中。另外,也支援验证大於1GB的表格的连续数据段(Subsequent segment),该工具还会自动跳过Free Space Map、Visibility Map以及pg_internal.init档案,因为这些数据都能够重新产生。
Google提醒,这个数据验证工具会影响效能,因此建议企业可以将该工具合并至数据库备份程序中,并在独立的伺服器上执行。而PostgreSQL页面验证工具已经整合在Cloud SQL的PostgreSQL服务中,因此在数据库运作的过程便会自动执行,Google大规模的使用这个工具,验证用户在云端上的数据备份,而且为避免影响用户数据库效能,另外启用了内部执行个体来执行。非GCP用户则可以在Google Open Source或是GitHub下载该工具。