PHP实战中知识总结 / PgSQL - pg_checksums(bin目录文件)
一、pg_checksums
pg_checksums在PostgreSQL集簇中检查、启用或禁用数据校验和。运行pg_checksums之前,必须彻底关闭服务器。验证校验和时,如果没有校验和错误,则退出状态为零,如果检测到至少一个校验和失败,则退出状态为非零。启用或禁用校验和时,如果操作失败,则退出状态为非零。
验证校验和时,集簇中的每个文件都要被扫描。启用校验和时,集簇中的每个文件都会被原地重写。禁用校验和时,仅更新pg_control文件
PostgreSQL允许用户开启block checksum功能,使用pg_checksums工具(12.0版本之前为pg_verify_checkums),可以对整个数据库或指定的数据文件进行checksum校验,确保数据文件逻辑上一致。
使用注意:
(1)对于大型的数据库操作可能需要比较长的时间, 系统需要在关闭的状态下进行
(2)对于正在复制的系统,不要轻易启动或者关闭这个参数,如果要关闭,需要将所有的复制的机器全部关闭,否则会造成在切换的过程中,数据损坏导致整体数据库无法在使用.
二、命令格式
pg_checksums [OPTION]... [DATADIR]
option
参数 | 说明 |
---|---|
[-D, --pgdata=]DATADIR | 指定数据目录 |
-c, --check | 检查校验和,默认参数 |
-d, --disable | 禁止校验和 |
-e, --enable | 启用校验和 |
-f, --filenode=FILENODE | 仅验证文件节点为*filenode*的关系中的校验和 |
-N, --no-sync | 默认情况下,pg_checksums会等待所有文件安全地写到磁盘上,该选项使得pg_checksums不等待就返回,这样更快,但意味着后续如果操作系统崩溃会让更新的数据目录损坏。一般地,该选项对测试有用,但不应用在生产安装上。当使用--check时,该选项无效 |
-P, --progress | 启用进度报告。在检查或启用校验和时,打开该选项,会提供进度报告 |
-v, --verbose | 启用详细输出。列出所有检查的文件 |
-V, --version | 打印pg_checksums版本并退出 |
-?, --help | 显示关于pg_checksums命令行参数的帮助并退出。 |
[postgres@izwz91quxhnlkan8kjak5hz bin]$ pg_checksums -e -D /www/server/data/postgres
Checksum operation completed
Files scanned: 1246
Blocks scanned: 72383
pg_checksums: syncing data directory
pg_checksums: updating control file
Data checksum version: 1
Checksums enabled in cluster