我使用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'"
我收到以下错误。 错误:无法识别COPY文件签名。
这曾经在Postgresql 9.4中正常工作,我错过了什么。
答案 0 :(得分:1)
发现问题。 我有./~psqlrc文件,所以每次psql命令用来运行它时都用来将psqlrc输出预先添加到生成的.dat文件中,因为恢复错误的时候会说。 错误:无法识别COPY文件签名 所以使用-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'"