使用时
pg_dump
要以目录格式创建数据库转储,需要指定一个输出目录
pg_泵
可以直接写入。您使用的命令试图将stdout重定向到一个目录,但不是这样
pg_泵
以目录格式工作。相反,您需要使用
-f
选项或
--file
直接在您的
pg_泵
命令
但是,由于转储需要在Kubernetes pod中完成,因此您希望存储转储的本地机器上的目录必须可供pod访问,或者您可以将其存储在pod中并复制到本地。
对于第二种选择,您可以这样做:
-
处决
pg_泵
在吊舱内
,在pod上为转储指定一个临时目录:
kubectl exec patroni-0 -- bash -c "mkdir /tmp/db_dump"
kubectl exec patroni-0 -- bash -c "pg_dump -U username -d db_name --format=d -f /tmp/db_dump"
-
将转储从pod复制到本地机器
:
kubectl cp patroni-0:/tmp/db_dump ./db_dump_folder
-
然后你可以清理pod中的临时目录
:
kubectl exec patroni-0 -- bash -c "rm -rf /tmp/db_dump"
希望这能有所帮助。