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

pg_dump --no-owner参数失效,pg_restore执行ALTER TABLE OWNER TO报错

PostgreSQL迁移时彻底忽略对象所有者的解决方法

问题根源

你遇到的--no-owner参数失效问题,是因为自定义格式(-Fc)备份下,仅在pg_dump阶段加参数还不够,pg_restore默认仍会尝试处理所有者相关语句;同时备份时未排除ACL(权限)语句,部分所有者变更逻辑可能藏在ACL配置里。

修正后的备份命令

备份时同时加上--no-owner和--no-acl,彻底剥离所有者与权限相关的语句:

pg_dump -Fc --no-owner --no-acl --encoding=UTF8 -h 127.0.0.1 -U postgres [[dbname]] -n [[schemaname]] > upload.bak

修正后的恢复命令

恢复阶段也必须显式添加--no-owner参数,确保pg_restore不会尝试设置原所有者:

pg_restore -h 127.0.0.1 -U [[username]] -d [[dbname]] -n [[schemaname]] --no-owner upload.bak

额外说明

  • 用postgres用户执行pg_dump是正确的,可避免权限不足导致参数不生效
  • 自定义格式备份(-Fc)的参数逻辑和文本格式不同,必须在备份和恢复两端都明确指定忽略所有者的规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:22:38