2017-02-09 115 views
0

我使用PostgreSQL 9.6 COPY BINARY命令來轉儲表錯誤:無法識別COPY文件簽名 - PostgreSQL的9.6

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中正常工作,我錯過了什麼。

回答

1

發現問題。 我有./~psqlrc文件,所以每次psql命令使用它來運行它時,都會使用psqlrc輸出預先生成.dat文件,因爲在恢復錯誤時會生成.dat文件。 錯誤:無法識別COPY文件簽名 所以使用-X選項終於解決了我的問題。

dump命令:

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

restore命令

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