You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求pg_restore写入日志文件方案:解决-d与-f参数冲突问题

pg_restore -d与-f参数冲突的解决办法

问题原因

pg_restore的-d(指定目标数据库并直接执行恢复)和-f(将恢复SQL输出到文件)是互斥参数,工具不允许同时使用——要么直接执行恢复,要么生成SQL脚本,无法同时进行这两个操作。

解决办法

根据你的需求选择对应的方案:

方案1:直接恢复数据库并记录日志

如果你的目标是直接恢复数据库,同时把恢复过程的日志保存到文件,不要用-f参数,改用系统的输出重定向功能:

pg_restore -d mydb -h myhost --clean --verbose "c:\dba\Manager\tk\Tasks\import-tk-21aug2022\budget-app-sara-21.8_updated_withdata" > "c:\dba\manager\tk\restore-tk-21aug2022.log" 2>&1
  • > 表示把命令的标准输出(包括--verbose的详细信息)写入日志文件
  • 2>&1 表示把错误输出也合并到标准输出中,确保所有日志(包括错误信息)都能被记录

方案2:先生成恢复SQL脚本,再执行并记录日志

如果你的目标是先导出恢复用的SQL脚本,之后再执行,则去掉-d参数,用-f生成脚本:

pg_restore -h myhost --clean --verbose "c:\dba\Manager\tk\Tasks\import-tk-21aug2022\budget-app-sara-21.8_updated_withdata" -f "c:\dba\manager\tk\restore-tk-21aug2022.sql"

之后用psql执行脚本并记录日志:

psql -d mydb -h myhost -f "c:\dba\manager\tk\restore-tk-21aug2022.sql" > "c:\dba\manager\tk\restore-tk-21aug2022.log" 2>&1

内容的提问来源于stack exchange,提问作者meirben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 10:18:18