gpt4 book ai didi

postgresql - 转储 postgres 数据库、时间和 .sql 文件权重

转载 作者:行者123 更新时间:2023-11-29 12:32:55 24 4
gpt4 key购买 nike

我有一个大数据库(nominatim 数据库,用于地址地理编码反向),大约 408gb。

现在,为了向客户提供估算,我想知道导出/重新导入过程需要多长时间以及 .sql 转储文件有多大。我的 postgresql 版本是 9.4,安装在 centOS 6.7 虚拟机上,有 16gb RAM 和 500gb 磁盘空间。

你能帮帮我吗?

谢谢大家的回答,无论如何要恢复转储的数据库我不使用命令 pg_restorepsql -d newdb -f dump.sql (我在官方文档中阅读了这种方式)。这是因为我必须在另一台机器上设置这个数据库以避免 nominatim 数据库索引过程!我不知道是否有人知道 nominatim(是一个 openstreetmap 开源产品)但是欧洲 map (15.8 gb)的数据库索引过程,在 CentOS 6.7 机器上用 16gb ram 花了我 32 天......另一个可能的问题应该是:pg_restore 等于 psql -d -f?哪个更快?

再次感谢

最佳答案

作为@a_horse_with_no_name说,没有人能够为您的环境提供准确的答案。但这是我用来获得一些估计的过程。

我通常发现我的数据的压缩备份只有实时数据库大小的 1/10 或更少。您通常也可以从备份大小中减去索引的磁盘大小。 Examine the size of things in-database得到一个更好的主意。您还可以尝试形成您拥有的数据库的一个子集,该子集要小得多,并将实时大小与压缩备份进行比较;这可能会给你一个应该在大概范围内的比率。 SQL 文件是 gassy 并且压缩得很好;不过,Postgres 使用的磁盘表示似乎更加笨重。可能是性能价格。

估计时间的最佳方法就是进行一些探索性运行。根据我的经验,这通常比您预期的要长。我有一个 ~1 TB 的数据库,我相当确定它需要大约一个月的时间才能恢复,但它也被积极地索引。我有几个大约 20 GB 的数据库,可以在大约 15 分钟内备份/恢复。所以它非常多变,但索引会增加时间。如果你能架设一个类似的服务器,你可以试试备份还原程序,看看需要多长时间。无论如何,我建议您这样做,只是为了在您扣动扳机之前建立信心并解决所有挥之不去的问题。

我还建议您试试 pg_dump's "custom format" (pg_dump -Fc) 这使得压缩文件很容易用于 pg_restore使用。

关于postgresql - 转储 postgres 数据库、时间和 .sql 文件权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34292591/

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