首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Postgresql中的生产数据更新暂存数据

用Postgresql中的生产数据更新暂存数据
EN

Database Administration用户
提问于 2015-06-21 17:42:10
回答 2查看 4.1K关注 0票数 5

我在我的服务器上使用PostgreSQL (Version9.3),我想用生产实例数据库中的数据更新我的暂存实例数据库中的数据。每个数据库都由不同的角色控制,我希望在传输中将它们的权限保持独立。

我尝试遵循文献资料并使用独立的用户运行这些命令(这些用户可以访问相应的PostgreSQL角色):

代码语言:javascript
运行
复制
staging-user: pg_dump production_db > prod_db_file
production-user: psql --single-transaction staging_db < prod_db_file

但我有几个错误:must be owner of extension plpgsqlsyntax error at or near。再说,我也不确定这会不会做我想做的事。在pg_dump和psql命令中有很多可选的标志,我不知道应该使用哪一个。(我尝试过多种组合的旗子,但到目前为止没有什么效果。)

注意:当我尝试上述命令时,我的暂存数据库已经存在了。

如何将生产数据移动到暂存数据库?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2015-06-22 14:36:03

更新2015年10月30日:这个答案比我以前的答案更简单、更准确,为了简洁起见,我删除了这个答案。要查看旧的答案,请查看编辑历史。

  1. 作为生产用户:pg_dump -Fc my_prod_db > prod_dump.db
  2. 删除和创建暂存数据库
  3. 作为暂存用户:pg_restore --no-owner --dbname my_staging_db path/to/prod_dump.db
票数 2
EN

Database Administration用户

发布于 2020-11-29 20:11:37

除了基本的转储/还原之外,要具有自动健壮的刷新过程,您可以使用Postgres.ai https://postgres.ai/docs/https://gitlab.com/postgres-ai/database-lab的数据库实验室引擎。它以某种方式从源获取数据(除了“逻辑”复制、转储/还原之外,您还可以使用pg_basebackup或任何其他方式物理地复制数据目录,或者从备份工具(如WAL-G或pgBackRest)创建的档案中恢复数据目录),然后您可以开始使用“瘦克隆”来“免费”获取许多独立的数据库副本(无需额外的成本或额外的等待时间),这要归功于ZFS或LVM (您选择)提供的复制-on-写(CoW)。在“物理”配置的情况下,也可以配置“连续刷新”选项:数据不断从源更新,您可以根据不同的时间点使用瘦克隆。

在许多情况下,当我们决定将生产数据复制到非生产环境中时,我们可能希望或需要混淆这些数据。这也是可能的,例如,使用诸如postgresql_anonymizer https://postgresql-anonymizer.readthedocs.io/en/stable/https://gitlab.com/dalibo/postgresql_无名氏等工具。它也可以与数据库实验室引擎一起使用。

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

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

复制
相关文章

相似问题

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