在pg_dumpall之后无法在docker中恢复psql DB

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

我有一个包含postgresql数据库的码头工人。

我想尝试从zabbix备份并恢复到新的竞争者。

这两个竞争者具有相同的IP,相同的信息,只是端口在更改。

使用此命令,我创建了我的dumpall:

docker exec number_of_contener1 pg_dumpall -c --username=username > /tmp/dump.sql

并且使用这个,我尝试还原到另一个竞争者(因为它是文本文件,所以没有pg_restore:]

docker exec number_of_contener2 psql --username=username -d name_of_database < /tmp/dump.sql

我没有错误,但是我没有在数据库中使用\ dt看到任何内容。

我的dump.sql不为空,但是我的contener上的/ var / log / postgresql是。

我做错了什么? (我不是Linux专家)。

提前谢谢您

linux postgresql docker backup restore
1个回答
0
投票

您需要使用interactive模式从本地计算机读取文件:

docker exec -i number_of_contener2 psql --username=username -d name_of_database < /tmp/dump.sql

[请注意,使用><会导致Docker向您的主机OS(而不是在容器中运行的OS)读写数据。如果要psql从文件中读取数据(基本上是交互式地),则需要传递-i--interactive标志。

© www.soinside.com 2019 - 2024. All rights reserved.