【问题标题】:PostgreSQL database size is less after backup/load on Heroku在 Heroku 上备份/加载后,PostgreSQL 数据库大小变小了
【发布时间】:2012-11-10 10:38:31
【问题描述】:

最近我为生产创建了一个新的 Heroku 应用程序,并使用从临时数据库中获取的备份填充它的数据库。

问题是两个数据库的数据库大小不同,如 Heroku 的 Postgres 网页所示!

我从中进行备份的第一个数据库是 360 MB,而填充的新数据库只有 290 MB。

在备份/加载过程中没有出现错误。并从两个数据库进行备份会产生相同的备份文件大小(大约 40 MB)。

项目运行良好,两个应用看起来一模一样,但我担心我可能会丢失一些数据,这会在未来造成麻烦。

更多信息:我在两个应用上使用相同的生产数据库计划。

另外,第一个数据库没有附加到第一个实例(因为它是从 Postgres 管理页面添加的,而不是从应用程序的资源页面添加的)并且新数据库附加到新应用程序。

提前致谢

【问题讨论】:

    标签: database postgresql heroku


    【解决方案1】:

    看看这是否有帮助:PostgreSQL database size increasing

    还尝试单独测量每个表的大小,对于您发现差异的那些表,比较记录数:postgresql total database size not matching sum of individual table sizes

    【讨论】:

      【解决方案2】:

      postgresql DB在使用时消耗更多空间是可以的。

      这是因为它的 MVCC 系统。每次您UPDATE 数据库中的任何记录时,它都会创建该记录的另一个“版本”,而不是重写以前的记录。这些“过时”的记录将被VACUUM 进程删除,当它们不需要时。

      因此,当您从备份中恢复数据库时,它没有任何“死”记录,而且它的大小更小。

      这里有详细信息http://www.postgresql.org/docs/current/static/mvcc.htmlhttp://www.postgresql.org/docs/current/static/sql-vacuum.html

      附:您无需担心。 Postgresql 会自动处理VACUUM

      【讨论】:

        猜你喜欢
        • 2018-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-22
        相关资源
        最近更新 更多