如何在docker容器中使用pg_checksums?

问题描述 投票:0回答:1

我正在 docker 上运行 PostgreSQL 服务器,并且我正在尝试设置 pg_checksums 进行有效性检查。

但是,为了执行此操作,服务器应该处于关闭状态,但是如果我尝试停止 postgres 服务器,docker 容器本身已关闭。 是的,这是一个自然的结果,因为 docker 容器本身就是这个过程。

那么,如何在 docker 容器上使用

pg_checksums
呢?容器上不可用吗?

postgresql docker
1个回答
0
投票

我必须这样做几次,并且忘记了我采取的步骤,所以我希望将来能回到这里记住我所做的事情。

首先,停止 postgres 容器,然后运行:(您可能应该更改版本以匹配您的版本,并添加您需要的任何其他标志,例如

--user

docker run -it -v your-postgres-data:/var/lib/postgresql/data postgres:14 bash
pg_checksums --enable -D /var/lib/postgresql/data

这将输出类似的内容:

Checksum operation completed
Files scanned:  931
Blocks scanned: 3222
pg_checksums: syncing data directory
pg_checksums: updating control file
Checksums enabled in cluster

您可以通过以下方式检查完整性:

pg_checksums -D /var/lib/postgresql/data

Checksum operation completed
Files scanned:  931
Blocks scanned: 3222
Bad checksums:  0
Data checksum version: 1
© www.soinside.com 2019 - 2024. All rights reserved.