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

时间:2018-08-07 12:33:45

标签: database postgresql mirror

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

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

我知道我可以使用不同的群集名称进行备份和还原的事实,但是通过psql客户端或pgAdmin(v.4)是否存在类似于镜像功能的镜像,该镜像可以镜像我的所有架构和表并将其放在新的集群名称中?

1 个答案:

答案 0 :(得分:2)

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

CREATE DATABASE newdb WITH TEMPLATE someDbName OWNER dbuser;

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

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

希望有所帮助;)