我有一个包含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专家)。
提前谢谢您
您需要使用interactive
模式从本地计算机读取文件:
docker exec -i number_of_contener2 psql --username=username -d name_of_database < /tmp/dump.sql
[请注意,使用>
和<
会导致Docker向您的主机OS(而不是在容器中运行的OS)读写数据。如果要psql
从文件中读取数据(基本上是交互式地),则需要传递-i
或--interactive
标志。