添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

postgresql。恢复数据库备份的速度非常慢,使用的资源明显不足

0 人关注

我正试图恢复我个人电脑上的postgresql数据库的备份。我的操作系统是Ubuntu 18,我使用14版本的postgresql。.sql文件的容量是52G,但在等待6个小时后,目标数据库的容量只增加到120MB。然后我改变了我默认的postgres.conf的一些参数。

work_mem = 32MB
shared_buffers = 4GB
maintenance_work_mem = 2GB
full_page_writes = off
autovacuum = off
wal_buffers = -1

但速度基本保持不变。 在INSERTs期间的资源利用情况如下。

  • CPU < 7% (ps -aux)
  • 内存< 0.5 %(ps -aux)。
  • 磁盘写入速度<1000K/S(iotop,dd达到80MB/s以上)。
  • 先谢谢你了。 这里使用的命令是sudo -u postgres psql lom < psql_long_small_dump

    2 个评论
    你提到了INSERTs,你在做 pg_dump 时是否使用了 --inserts --column-inserts ?如果是这样的话,它肯定会减慢恢复的速度。
    我没有创建这个备份,但如果有必要,我可以询问其创建者。但现在不是了,下面的答案似乎能极大地提高性能。
    database
    postgresql
    backup
    postgresql-14
    SwipeZ
    SwipeZ
    发布于 2022-04-15
    1 个回答
    Laurenz Albe
    Laurenz Albe
    发布于 2022-04-15
    已采纳
    0 人赞同

    psql 会在单线程中恢复转储(主要是 CREATE INDEX 可以被并行化),所以你不会用这种方式耗尽你的资源。你可以使用自定义格式的转储 pg_dump -F c ),你可以用 pg_restore -j 4 或更多的线程来恢复。

    你改变的参数似乎是随机的。为了尽可能地加快你当前的恢复过程,请设置以下内容。