我试图对运行在CentOS 7计算机上的PostgreSQL-10数据库执行备份,然后在运行Windows 10的开发计算机上还原,但在还原过程中出现错误:
pg_restore: [custom archiver] WARNING: ftell mismatch with expected position -- ftell used
我已确保在dump和restore中传递的命令参数相同:
pg_dump --format=c --compress=9 --encoding=UTF-8 -n public --verbose --username=postgres databaseName -W -f /usr/local/production-dump.backup
但是它根本不起作用。即使架构已还原,数据也不会,因为在还原进程要开始还原数据之前,它会出现“pipe has ended”错误,并且不会继续执行完整的还原进程。我使用“自定义”格式,因为普通的SQL或tar格式会生成大量备份文件。
我做错什么了?是否有任何参数需要传递给dump或restore命令?
最佳答案
可能的解释是文件在文件传输期间被修改了。你能在传输前后计算文件的校验和并验证它是否相同吗?
如果文件没有更改,那么您可能发现了一个PostgreSQL错误。如果您有一个可以共享的转储,并且显示出问题,请将此问题报告给PostgreSQL。
关于postgresql - 尝试转储在CentOS 7计算机上运行的PostgreSQL-10数据库并将其还原到Windows 10计算机上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53386248/