我计划将一个~100GB 的 Postgres 数据库转移到一个新的服务器上。将数据目录复制到新服务器并在那里启动数据库是否可以保存,还是我需要在第一台服务器上进行转储然后在第二台服务器上进行恢复?
第一个服务器的数据库分区大约是 120GB,第二个是 1TB。两台服务器都在 debian 上运行相同版本的 postgres,并通过 1GB 以太网连接。两种传输数据库的方法有什么区别吗?将数据传输到新服务器的最快(最少停机时间)方法是什么?
我计划将一个~100GB 的 Postgres 数据库转移到一个新的服务器上。将数据目录复制到新服务器并在那里启动数据库是否可以保存,还是我需要在第一台服务器上进行转储然后在第二台服务器上进行恢复?
第一个服务器的数据库分区大约是 120GB,第二个是 1TB。两台服务器都在 debian 上运行相同版本的 postgres,并通过 1GB 以太网连接。两种传输数据库的方法有什么区别吗?将数据传输到新服务器的最快(最少停机时间)方法是什么?
只要它们是相同的架构,那么您应该可以关闭然后重新同步文件。
您也可以考虑转储和导入数据库。您可以将转储定位到新分区(可能通过 NFS 挂载)。
否则,@Matt 的解决方案很好。
这种迁移可能已经完成,但我想我可能会插话。
准备和设置需要更长的时间,但您可以通过设置两台服务器之间的复制来传输数据。您可以使用 bucardo、londiste 或 slony。与 rsync 相比,这将最大限度地减少停机时间。根据我的经验,一旦要 rsync 的文件大小超过 10GB,rsync 可能需要几分钟来比较源主机和目标主机之间的磁盘块。