带有 blob oid 的特定表的 postgres 备份

Spi*_*ike 6 postgresql blob postgresql-9.1 pg-dump

我有一个表,它有一个 oid 列。当我备份这个表时,它需要完整的 oids(完整的 blob/oids 备份)。但是我的表只有 10 个条目(在 pg_largeobject 表中大约有 30 个条目)。我阅读了以下链接并将-o-b添加到备份参数中。

https://www.postgresql.org/docs/9.1/static/app-pgdump.html

我正在使用以下命令进行备份。

 pg_dump -i -h myhost -p 5432 -U myuser -F c -v -t schema.my_table -o -b -f mytablebkp.backup "mydb"
Run Code Online (Sandbox Code Playgroud)

该命令有什么问题吗?我怎样才能只备份特定的表,只备份属于它的那些 blob?

更新:

我从文档(https://www.postgresql.org/docs/9.5/static/app-pgrestore.html)中阅读了以下内容,

pg_restore 不能有选择地恢复大对象;例如,只有特定表的那些。如果存档包含大对象,则将还原所有大对象,如果通过 -L、-t 或其他选项排除它们,则不还原任何大对象

由于 pg_restore 不能进行选择性还原,是否没有办法/可能性使用 blob / oid 进行选择性表备份?

小智 1

oid列在所有表中都可用,我相信这不是问题。

要创建该表的逻辑转储,您只需添加一个选项-b(或--blobspg_dump参数中,例如:

pg_dump \
  -U user\
  -t table_name \
  --blobs \
  -f dump_file_name \
  database_name
Run Code Online (Sandbox Code Playgroud)

另一个有用的选项是-F c(或--format=custom) 将默认格式从 更改plaincustom

请查看文档以了解更多详细信息: https://www.postgresql.org/docs/current/static/app-pgdump.html