将postgres数据库传输到另一台服务器而不使用pg_dump

时间:2014-09-20 17:43:00

标签: postgresql php-pgsql

我正在转储庞大的数据库,而pg_dump正在花费大量时间。我必须将我的数据库传输到新服务器。我在网上搜索了很多,但每个人都建议使用相同的方法来转储数据库,然后传输文件并在新服务器上恢复它。还有另一种方法可以快速完成吗?

我必须将v 8.4.20中的数据传输到v 9.3.5。我可以只传输文件夹/ var / lib / pgsql / data / base ??

我也看了这个: Copying PostgreSQL database to another server

这比通常的方式更快吗?

我的数据库有756,000个表,大小为200 GB。

2 个答案:

答案 0 :(得分:2)

根据the documentation,可以进行文件系统备份。我不希望它工作,如果你改变版本,我不希望文件比pg_dump的输出小得多。您链接的答案是使用pg_dump而不写入文件,而是直接流式传输到目标服务器。如果这个选项取决于您的网络。您也可以将文件复制到新服务器,并行运行两个版本并直接转储到目标计算机上的新版本。哪种选择最好取决于您的硬件,网络连接......

答案 1 :(得分:1)

主要的复杂功能是迁移到新服务器。它需要一段时间才能移动200 GB。转储到磁盘,然后将磁盘传送或发送到新服务器可能会更快。这样可以避免通过网络发送200 GB的数据。

您可以在旧服务器上安装9.3,然后使用pg_upgrade。运行多个版本的PostgreSQL很常见;给每个人一个不同的端口号。完成后 - 在旧服务器旧服务器上运行相同版本的PostgreSQL - 其中一个alternative methods of backup and restore成为可能。