如何在Windows Server 2003上恢复大型(>4gb)postgres数据库[已关闭]

8mmmxcuj  于 2023-01-21  发布在  Windows
关注(0)|答案(1)|浏览(106)

这个问题似乎与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命令行工具做到这一点?

k10s72fa

k10s72fa1#

在具有64位体系结构的其他计算机上安装PostgreSQL客户端,并从那里恢复转储。

相关问题