0

我有一个 PostgreSQL 纯格式转储,只需要两三个表的数据。转储为 gz2 格式。

bzcat dump.sql.gz | perl -lne 'print if /^COPY tablename/../^\\\.$/' > something.sql

不工作。也试过

bzip2 -dc dump.sql.gz|perl -lne 'print if /^COPY tablename/../^\\\.$/' > something.sql

转储文件超过 30GB。

4

1 回答 1

0

表名可能需要是模式限定的。

whatever_cat | perl -lne 'print if /^COPY public\.tablename/../^\\\.$/'

这将取决于使用的 pg_dump 版本。该更改实际上是在错误修复版本中开始的,是否是出于安全考虑 (CVE-2018-1058)

于 2020-09-18T10:32:30.207 回答