首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Postgres数据库在不同数据库上的转储和恢复

Postgres数据库在不同数据库上的转储和恢复
EN

Database Administration用户
提问于 2014-05-28 10:26:39
回答 1查看 925关注 0票数 1

我在同一台服务器上有两个Postgres数据库,它们具有相同的模式。目标是让DB1作为产品,DB2作为接收从MySQL db迁移过来的所有数据的数据库,然后使用DB2迁移后创建的转储来恢复DB1。换句话说,转储DB2并使用此转储对DB1执行还原。

这将允许生产DB1“始终可用”,即使迁移过程是在DB2上进行的。

我的问题是,是否可以使用DB2转储来恢复DB1?还是应该使用一种不同的策略--比如重命名数据库?谢谢

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-05-29 04:52:20

听起来,您正在尝试刷新一个数据库,这是另一个DB的快照,并且这样做不会中断对第一个DB的读取访问。

如果是这样的话,最简单的方法实际上是在快照DB中实时执行。只需开始一个事务,truncate所有表,然后用新数据填充它们,然后提交。并发事务将在提交之前查看旧数据,然后查看新数据。

如果由于某些原因无法做到这一点,则可能希望脱机填充一个DB,然后使用ALTER DATABASE ... RENAME交换它们。这样做需要一段很短的时间,所有连接都被迫脱机,并且当前正在运行的事务被中止,这就是为什么我建议使用上面的第一种方法。

如果您的所有表都位于主DB中的一个模式中,则可以填充模式的一个副本,然后使用ALTER SCHEMA ... RENAME来交换它们。这不需要断开连接。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/66053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档