如何使用PostgreSQL将数据迁移到远程服务器?
如何转储数据库模式和数据,使转储数据的用户名、数据库名称和模式名称与部署到的服务器上的这些变量匹配如何使用PostgreSQL将数据迁移到远程服务器?,postgresql,data-migration,Postgresql,Data Migration,如何转储数据库模式和数据,使转储数据的用户名、数据库名称和模式名称与部署到的服务器上的这些变量匹配 我当前的流程需要分两步移动数据。首先,我转储数据库的模式(pg_dump--schema only-C-C),然后使用pg_dump--data only-C转储数据,并使用psql命令在远程服务器上依次恢复这些数据。但必须有比这更好的方法。我们使用以下方法复制数据库 pg_basebackup -x -P -D /var/lib/pgsql/9.2/data -h OTHER_DB_IP_ADD
我当前的流程需要分两步移动数据。首先,我转储数据库的模式(
pg_dump--schema only-C-C
),然后使用pg_dump--data only-C
转储数据,并使用psql
命令在远程服务器上依次恢复这些数据。但必须有比这更好的方法。我们使用以下方法复制数据库
pg_basebackup -x -P -D /var/lib/pgsql/9.2/data -h OTHER_DB_IP_ADDR -U postgres
它要求位于其他_DB_IP_ADDR的“主”服务器运行复制服务,并且pg_hba.conf
必须允许复制连接。为了进行复制,您不必将“从属”服务作为热/热备用运行。与转储/还原相比,此方法的一个缺点是,还原操作可以有效地清空、重新索引和重置所有内容,而复制则不会,因此,如果数据库被大量编辑,则复制可能会占用更多的磁盘空间。另一方面,复制要快得多(在我们的例子中是15分钟而不是3小时),因为不必重建索引
一些有用的参考资料:
我们使用以下方法复制数据库
pg_basebackup -x -P -D /var/lib/pgsql/9.2/data -h OTHER_DB_IP_ADDR -U postgres
它要求位于其他_DB_IP_ADDR的“主”服务器运行复制服务,并且pg_hba.conf
必须允许复制连接。为了进行复制,您不必将“从属”服务作为热/热备用运行。与转储/还原相比,此方法的一个缺点是,还原操作可以有效地清空、重新索引和重置所有内容,而复制则不会,因此,如果数据库被大量编辑,则复制可能会占用更多的磁盘空间。另一方面,复制要快得多(在我们的例子中是15分钟而不是3小时),因为不必重建索引
一些有用的参考资料:
什么版本的PostgreSQL?您考虑过复制而不是转储/恢复吗?@DwayneTowell我从未做过复制。我认为复制用于多服务器设置。我现在只有一台服务器。你能告诉我在哪里可以找到这个主题的资源吗?什么版本的PostgreSQL?你考虑过复制而不是转储/恢复吗?@DwayneTowell我从来没有做过复制。我认为复制用于多服务器设置。我现在只有一台服务器。你能告诉我在哪里可以找到这个主题的资源吗?只想补充一下,可以(至少现在在v11中)将整个conninfo字符串作为一个命令行参数传递:
pg_basebackup-d'host=127.0.0.1 port=25432'-d/postgres/data/path
只想补充一下,可以(至少现在在v11中)要将整个conninfo字符串作为一个命令行参数传递:pg_basebackup-d'host=127.0.0.1 port=25432'-d/postgres/data/path