我需要使用 pg_dump 创建 Postgres 数据库转储。数据库位于 Kubernetes pod 中。我正在尝试以目录格式获取转储,而不仅仅是单个 .sql 文件。但我不明白如何指定目录。
当我尝试这个命令时:
kubectl exec patroni-0 -- bash -c "pg_dump -U username db_name --format=d" > db_dump_folder
我收到一个错误:
pg_dump: [directory archiver] no output directory specified
command terminated with exit code 1
提前致谢!
当使用
pg_dump
目录格式创建数据库转储时,需要指定pg_dump
可直接写入的输出目录。您使用的命令尝试将 stdout 重定向到目录,这不是pg_dump
目录格式的工作方式。-f
相反,您需要使用命令或--file
直接在命令中的选项来指定目录pg_dump
。但是,由于转储需要在 Kubernetes pod 内完成,因此本地计算机上要存储转储的目录必须可供 pod 访问,或者您可以将其存储在 pod 中并复制到本地。
对于第二个选项,您可以这样进行:
pg_dump
在 pod 内执行,指定 pod 上用于转储的临时目录:希望这可以帮助。