- 已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
这个问题似乎与help center中定义的范围内的编程无关。
17小时前关门了。
Improve this question
当我尝试在32位Windows Server 2003机器上恢复10GB的postgres数据库时,我遇到了一个问题。我无法将数据库转储文件复制到机器上,因为它超过了文件系统允许的最大文件大小。有没有办法在Windows上拆分并随后恢复postgres数据库转储文件,而无需安装第三方工具(如Cygwin)?我在可以访问第三方工具的环境中创建和拆分转储,但在还原数据库的环境中无法使用第三方工具。
根据文档(https://www.postgresql.org/docs/9.4/backup-dump.html),可以使用unix split
命令将转储文件拆分为多个文件,然后使用cat
命令进行恢复,如下所示:
pg_dump dbname | split -b 100m - filename
cat filename* | psql dbname
由于我在Windows世界中,我使用7Zip通过以下命令拆分转储文件:7z a -v100m "db.part" "*.backup"
这似乎工作,我结束了一堆100Mb的文件。
尝试从拆分文件恢复数据库时出现问题。我尝试搜索unix cat
命令的Windows等效命令,可以找到type
命令。我尝试通过以下命令恢复数据库:type db.part.* | psql -d dbname
上述命令给出以下错误:
ERROR: invalid byte sequence for encoding "UTF8": 0xbc
The process tried to write to a nonexistent pipe.
我不能使用第三方工具,如cygwin进行还原。有没有办法用标准的windows命令行工具做到这一点?
1条答案
按热度按时间k10s72fa1#
在具有64位体系结构的其他计算机上安装PostgreSQL客户端,并从那里恢复转储。