1

我正在使用 Postgresql 9.6 COPY BINARY 命令转储表

psql -h  $HOSTNAME -U $USERNAME -d $DBNAME  -qAt -c "COPY ( SELECT  co1,col2,col3   FROM tableName) TO STDOUT WITH BINARY" > fileName.dat

并使用以下命令恢复

psql  -U $USERNAME  -d $DBNAME  -qAt -c "COPY BINARY tableName(col1,col2,col3) FROM 'fileName.dat'"

我收到以下错误。错误:无法识别复制文件签名。

这曾经在 Postgresql 9.4 中工作正常,我错过了什么。

4

1 回答 1

0

发现了问题。我有 ./~psqlrc 文件,因此每次使用 psql 命令运行它时,都会将 psqlrc 输出添加到生成的 .dat 文件中,因此在恢复错误时会说。 错误:无法识别复制文件签名 所以使用 -X 选项终于解决了我的问题。

转储命令:

psql -h  $HOSTNAME -U $USERNAME -d $DBNAME  -XqAt -c "COPY ( SELECT  co1,col2,col3   FROM tableName) TO STDOUT WITH BINARY" > fileName.dat

恢复命令

  psql  -U $USERNAME  -d $DBNAME  -qAt -c "COPY BINARY tableName(col1,col2,col3) FROM 'fileName.dat'"
于 2017-02-09T08:27:26.480 回答