我正在尝试对在 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
然而它根本不起作用。即使模式已恢复,但数据并未恢复,因为就在恢复过程开始恢复数据之前,它会给出“管道已结束”错误,并且不会继续进行完整的恢复过程。我正在使用“自定义”格式,因为纯 SQL 或 tar 格式会生成巨大的备份文件。
我做错了什么?是否有任何参数需要传递给转储或恢复命令?
最佳答案
可能的解释是文件在文件传输过程中被修改。能否计算一下文件传输前后的校验和,验证是否相同?
如果文件没有改变,那么您可能发现了 PostgreSQL 错误。如果您有可以共享的转储并且出现问题,请将此问题报告给 PostgreSQL。
关于postgresql - 尝试转储在 CentOS 7 机器上运行的 PostgreSQL-10 数据库并将其恢复到 Windows 10 机器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53386248/