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

标签 database postgresql mirror

我在我的项目中使用 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

希望有帮助;)

关于database - 如何在postgresql中镜像整个数据库集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51726918/

相关文章:

php - SQL 延迟加载 - 选择一个范围但丢弃之前选择的条目

postgresql - 如何为创建表或选择到创建事件触发器

sql - PostgreSQL插入多个表,在第二次插入中使用第一次插入的外键

sql - 用两个日期之间的随机日期时间更新每一行

git - 如何从 refs/remotes 克隆一个包含所有分支和标签的 git repo?

sql - 最后一个预期列 CSV 之后的 Postgres 额外数据

c# - 从 C# Winforms 更新表不工作

javascript - 在 WebStorm 中镜像文字数组

database - MS Access 数据库 - reshape 流程挖掘表

linux - 镜像字符串