postgreSQL 已关闭,但 pg_checksums 仍然表示必须关闭集群
postgreSQL is shut down but pg_checksums still says clusters must be shut down
我的 postgreSQL 数据库已损坏,因此我正在尝试使用 pg_checksum
修复它。
我正在使用 docker
和 docker-compose
,
docker-compose.yml
如下所示。
services:
db:
image: postgres
volumes:
- /home/AAA/BBB/data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=AAAA
- POSTGRES_USER=BBBB
- POSTGRES_PASSWORD=CCCC
- POSTGRES_INITDB_ARGS=--encoding=UTF-8
而 postgresql 版本是:
root@2c0d76d14318:/# postgres --version
postgres (PostgreSQL) 13.1 (Debian 13.1-1.pgdg100+1)
但是当我在 docker 容器中尝试命令 pg_checksums -D /var/lib/postgresql/data --enable --progress --verbose
- 显示在 https://postgreshelp.com/postgresql-checksum/ 中时,它会发出如下错误:
root@2c0d76d14318:/# pg_checksums -D /var/lib/postgresql/data --enable --progress --verbose
pg_checksums: error: cluster must be shut down
因此,我尝试通过 service postgresql stop
关闭 postgres 服务器,但它也出现以下错误:
root@2c0d76d14318:/# service postgresql stop
[warn] No PostgreSQL clusters exist; see "man pg_createcluster" ... (warning).
如果我再次尝试 pg_checksums
也是一样。
我真的很着急解决这个问题,但我不知道。
有人可以帮忙解决这个问题吗?
P.S。欢迎修复一些语法问题。抱歉,我不会说英语,所以有些短语可能很奇怪。提前谢谢你。
您在损坏之前启用 pg_checksums
,而不是之后。
它需要彻底关闭集群,显然没有。它无法区分 运行 服务器和崩溃(不正常关闭)的服务器。您可以修复此问题,只需启动集群,让其自动恢复,然后干净地关闭它。但如果它已经损坏,这可能行不通。无论您需要做什么,pg_checksums 都可能不是完成它的工具。
我的 postgreSQL 数据库已损坏,因此我正在尝试使用 pg_checksum
修复它。
我正在使用 docker
和 docker-compose
,
docker-compose.yml
如下所示。
services:
db:
image: postgres
volumes:
- /home/AAA/BBB/data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=AAAA
- POSTGRES_USER=BBBB
- POSTGRES_PASSWORD=CCCC
- POSTGRES_INITDB_ARGS=--encoding=UTF-8
而 postgresql 版本是:
root@2c0d76d14318:/# postgres --version
postgres (PostgreSQL) 13.1 (Debian 13.1-1.pgdg100+1)
但是当我在 docker 容器中尝试命令 pg_checksums -D /var/lib/postgresql/data --enable --progress --verbose
- 显示在 https://postgreshelp.com/postgresql-checksum/ 中时,它会发出如下错误:
root@2c0d76d14318:/# pg_checksums -D /var/lib/postgresql/data --enable --progress --verbose
pg_checksums: error: cluster must be shut down
因此,我尝试通过 service postgresql stop
关闭 postgres 服务器,但它也出现以下错误:
root@2c0d76d14318:/# service postgresql stop
[warn] No PostgreSQL clusters exist; see "man pg_createcluster" ... (warning).
如果我再次尝试 pg_checksums
也是一样。
我真的很着急解决这个问题,但我不知道。
有人可以帮忙解决这个问题吗?
P.S。欢迎修复一些语法问题。抱歉,我不会说英语,所以有些短语可能很奇怪。提前谢谢你。
您在损坏之前启用 pg_checksums
,而不是之后。
它需要彻底关闭集群,显然没有。它无法区分 运行 服务器和崩溃(不正常关闭)的服务器。您可以修复此问题,只需启动集群,让其自动恢复,然后干净地关闭它。但如果它已经损坏,这可能行不通。无论您需要做什么,pg_checksums 都可能不是完成它的工具。