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



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

对于生产环境,我想使用名称略有不同的数据库集群的精确副本/镜像。

我知道我可以备份并以不同的集群名称还原它,但是是否有类似于通过 psql 客户端或 pgAdmin (v.4( 的镜像函数来镜像我的所有架构和表并将其放在新的集群名称中?

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

CREATE DATABASE newdb WITH TEMPLATE someDbName OWNER dbuser;

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

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

希望对;)有所帮助

最新更新