如何在postgresql中镜像整个数据库集群

how to mirror a whole database cluster in postgresql

我在目前处于开发阶段的项目中使用 postgresql (9.6) 数据库。

对于生产,我想使用名称略有不同的数据库集群的确切 copy/mirror。

我知道我可以在不同的集群名称下进行备份和恢复,但是是否有类似通过 psql 客户端或 pgAdmin (v.4) 的镜像功能来镜像我的所有内容架构和表并将其放入新的集群名称中?

在 PostgreSQL 中,当您想要使用该内容创建新数据库时,您可以使用服务器上的任何现有数据库(需要闲置才能使其工作)作为模板。您可以使用以下 SQL 语句:

CREATE DATABASE newdb WITH TEMPLATE someDbName OWNER dbuser;

但您需要确保当前没有用户连接或使用该数据库 - 否则您将收到以下错误。

ERROR:  source database "someDbName" is being accessed by other users

希望对您有所帮助 ;)