PostgreSQL 9.0.13正在执行pg_restore,但没有证据表明磁盘空间正在被使用



我正试图从另一台服务器恢复使用此命令获取的pg_dump。

sudo -u postgres pg_dump --verbose --format=custom --file=pg-backup.sql -U postgres salesDB

在我复制了pg-backup.sql文件之后,我正试图用这个命令进行恢复

sudo -u postgres pg_restore --verbose --jobs=`nproc` -f pg-backup.sql

pg-backup.sql文件为13GB。pg恢复已经运行了4个小时,一直在屏幕上滚动数据。没有错误。

但是当我从psql会话执行此语句时

SELECT pg_size_pretty(pg_database_size('salesDB'));

我的尺码是5377 kB。什么?到目前为止,它应该至少是1GB。我完全迷路了。所有这些数据都在我的屏幕上滚动,我无法证明它会去任何地方。没有磁盘使用。

帮助

在pg_restore命令中尝试不使用"-f"标志。此外,您可能希望尝试创建空的salesdb数据库并传入"-d salesdb"。请注意,数据库名称将折叠为小写,除非它是在双引号内创建的。

添加了示例步骤,以显示数据库的大小随着恢复运行而增加

-- sample pg_dump command
pg_dump -f testdb.out -Fc src_test_db
-- create the db to restore into
createdb sometestdb
-- restore with 4 parallel jobs, from the "testdb.out" file, into the db "sometestdb"
time pg_restore --dbname=sometestdb --jobs=4 testdb.out
-- In another window, every few seconds, you can see the db growing
psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))"
 pg_size_pretty 
----------------
 4920 MB
psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))"
 pg_size_pretty 
----------------
 4920 MB
psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))"
 pg_size_pretty 
----------------
 5028 MB
psql -d postgres -c "select pg_size_pretty(pg_database_size('sometestdb'))"
 pg_size_pretty 
----------------
 5371 MB

RESOLVED-语法错误-f输出文件)参数据我所知是无用的。我需要指定pg_restore使用的文件,而不使用任何标志,仅作为命令行中的最后一个元素。需要-d salesdb参数。我有16个cpu,所以我设置了-j 15,这似乎很有帮助。我最后的命令行是

sudo -u postgres pg_restore -d salesdb --jobs=15 backup10.sql

然后我用pg_database_size函数得到了非常快的大小增量。

它正在按应有的方式生长。

在我看来,您似乎一直在告诉pg_restore将转储的内容打印到显示器上,而不是将其恢复到数据库中。您指定了--dbname吗?

就我个人而言,我认为pg_restore的命令行语法不是特别直观,如果我有时间的话,这是我想在Pg.中改进的地方之一

相关内容

  • 没有找到相关文章

最新更新