gpt4 book ai didi

postgresql - 不同大小的 postgres 数据库。将数据库从 server1 移动到 server2

转载 作者:行者123 更新时间:2023-11-29 12:05:19 25 4
gpt4 key购买 nike

我正在尝试将数据库从 server1 移动到 server2。我读了docummentation postgres,我认为一切正常,除了在我从服务器 1 转储数据库后将其移动并在服务器 2 上恢复后大小不同。

服务器1

 SELECT pg_size_pretty(pg_database_size('db_name'));                                                                                                   
pg_size_pretty
----------------
118 MB
(1 row)

服务器2

 select pg_size_pretty(pg_database_size('db_name'));
pg_size_pretty
----------------
81 MB
(1 row)

我已经使用 -a -Fc -Z9 标志进行转储并使用 pg_restore -U user -c -d db_name dump_file.dump 恢复

我的问题是:

  • 为什么尺寸不同?
  • 如果访问数据库的应用程序是 Rails 应用程序,那么像这样移动数据库的正确方法是什么? (我的意思是,我想要一个不影响 future Rails 迁移的恢复)
  • 您还有其他想法吗?我可以阅读的其他文档?

感谢您阅读本文。

最佳答案

这很好,很正常。

转储和重新加载会生成一个更紧凑的数据库,因为表中没有死空间,并且 b 树索引是新重新索引的,因此它们被打包并得到很好的平衡。如果您执行以下操作,您会发现大小相同或更接近:

VACUUM FULL;
REINDEX DATABASE mydb;

在主数据库上。

不过,我强烈建议使用 -1 选项恢复 pg_restore 除非您需要并行恢复。这样你要么得到一个空的数据库,要么得到一个完整的恢复。当然,您还应该经常检查 pg_dumppg_restore 的返回码。

Rails 部分不做评论,我不知道你指的是什么。请不要做这样的多题,他们很难明确地回答,你会在不同的部分得到不同的“正确”答案。为新问题发布新的 SO 问题。

关于postgresql - 不同大小的 postgres 数据库。将数据库从 server1 移动到 server2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25114217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com