gpt4 book ai didi

mysql - 将实时数据库复制到开发服务器

转载 作者:行者123 更新时间:2023-11-29 23:28:57 25 4
gpt4 key购买 nike

我们有一个高效的 MySQL 数据库,其中包含私有(private)用户数据(密码哈希、ips、电子邮件等)。当开发人员在其开发人员虚拟机上的 jenkins 中运行构建作业时,我们希望包含实时数据库的副本,以便他获得一个与我们的生产环境非常相似的环境。但是我们必须在将生产数据库复制到开发服务器之前清理它,原因有两个:

  • 开发者不应获得我们所有用户数据的副本,例如哈希密码或电子邮件
  • 数据库很大,所以我们要删除一些内容,开发人员有一些真实的数据集用于测试,但不能> 100k,这没有任何好处,并且会增加转储所需的时间<

我考虑过这个问题并尝试了一些方法,但我发现没有快速且可以完成这项工作的方法。我的第一个想法是通过 mysqldump 转储所有数据,将其导入到开发机器上,并发送一些 MySQL 查询来设置占位符而不是私有(private)数据

UPDATE user_data SET email = "dev@example.com" [...]

一方面,这很慢,因为它必须复制巨大的数据库并执行查询。我不喜欢我们所有的用户数据都在开发机器上,即使是很短的一段时间。我希望数据首先被清理然后导出到开发机器。这可以通过将数据库复制到生产系统上的临时数据库中,然后清理数据,将其导出并删除生产系统上复制的数据库来实现。但这也造成了大量的开销。

什么是执行此操作的好且快速的方法?我考虑过使用 mysqldump 之类的方法来替换数据,这样就不会产生任何开销。但我找不到任何可以做到这一点的工具。

最佳答案

生产服务器上有足够的空间容纳两个数据库吗?如果是这样,请在同一服务器(或任何服务器,实际上)上创建一个开发人员数据库,这是生产的夜间转储,减去所有敏感信息和批量信息。

开发人员只能从生产服务器访问此“开发人员”数据库,您知道该数据库已删除任何敏感内容。作为奖励,他们可以直接连接到它,并且可能永远不需要下载它。

关于mysql - 将实时数据库复制到开发服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26726107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com