如何转储数据库架构和数据,使转储数据的用户名、数据库名称和架构名称与我部署到的服务器上的这些变量相匹配?
我当前的流程需要分两步移动数据。首先,我转储数据库的架构 (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
它要求位于 OTHER_DB_IP_ADDR 的“主”服务器运行复制服务,并且 pg_hba.conf
必须允许复制连接。您不必将“从属”服务作为热/温备用运行来进行复制。与转储/恢复相比,此方法的一个缺点是,恢复操作会有效地清理、重新索引并重置所有内容,而复制则不会,因此如果您的数据库已被大量编辑,则复制可能会使用更多的磁盘空间。另一方面,复制速度要快得多(在我们的例子中为 15 分钟 vs 3 小时),因为不必重建索引。
一些有用的引用:
http://opensourcedbms.com/dbms/setup-replication-with-postgres-9-2-on-centos-6redhat-el6fedora/
http://www.postgresql.org/docs/9.2/static/high-availability.html
http://www.rassoc.com/gregr/weblog/2013/02/16/zero-to-postgresql-streaming-replication-in-10-mins/
关于postgresql - 如何使用PostgreSQL将数据迁移到远程服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24589197/