Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用生产数据库中的乱序数据自动填充开发或登台环境_Amazon Web Services_Jenkins_Amazon Rds_Snapshot_Scramble - Fatal编程技术网

Amazon web services 使用生产数据库中的乱序数据自动填充开发或登台环境

Amazon web services 使用生产数据库中的乱序数据自动填充开发或登台环境,amazon-web-services,jenkins,amazon-rds,snapshot,scramble,Amazon Web Services,Jenkins,Amazon Rds,Snapshot,Scramble,我使用AWS RDS,有3个环境:开发、暂存和生产(不同的AWS帐户) 我希望能够用生产中的混乱数据填充开发和登台环境。 数据库是加密的,每个数据库都有自己的密钥。 我使用Jenkins(管道)来实现自动化 到目前为止,我所拥有的: 从詹金斯我可以登录到生产AWS 在这里,我使用aws rds descripe db snapshots--query=“reverse(sort_by(DBSnapshots,&SnapshotCreateTime))[0]确定最新自动创建的快照。DBSnaps

我使用AWS RDS,有3个环境:开发、暂存和生产(不同的AWS帐户) 我希望能够用生产中的混乱数据填充开发和登台环境。 数据库是加密的,每个数据库都有自己的密钥。 我使用Jenkins(管道)来实现自动化

到目前为止,我所拥有的:

  • 从詹金斯我可以登录到生产AWS
  • 在这里,我使用aws rds descripe db snapshots--query=“reverse(sort_by(DBSnapshots,&SnapshotCreateTime))[0]确定最新自动创建的快照。DBSnapshotIdentifier
  • 我复制自动创建的快照:
    copy db snapshot--source db snapshot identifier${latestSnapshot}--target db snapshot identifier snapshotToScramble
    (因为无法复制自动创建的快照)
然后,下一步是使用正确的加密密钥将快照共享或复制到另一个AWS帐户,该帐户可以从该快照恢复DB

但我在拷贝工作上有点卡住了:根据AWS的说法:“根据涉及的区域和要拷贝的数据量,跨区域快照拷贝可能需要几个小时才能完成”。如果我手动创建拷贝,它只会在10分钟后显示。因此,我想这不是使用此策略的选项:我不想让作业等待20分钟尤特斯,希望复制完成

我可能会创建一个自动作业,每天晚上创建一个手动副本,这样在我开始作业时就可以使用了,但是它看起来太难看了,而且太过分了,而且我仍然不相信将加密密钥复制到另一个帐户的复制数据库会起作用=/

我宁愿将备份提取为SQL查询,但我看不到这样做的选项


是否有人有过此类设置的经验或知道更好的方法。有没有标准的方法可以做到这一点?

“我不想让工作等待20分钟,希望拷贝完成。“可以在目标帐户中使用descripe db snapshots API调用来轮询并等待复制快照出现在列表中,其状态设置为
available
。这一点很好!但是我们自己在一个有2个构建执行器的Mac mini上主持Jenkins一家。我宁愿不阻止其中一个这么长的时间。另外:这项工作当然是为了使其中一个环境处于清洁状态。在运行sql升级脚本时,我们需要一个干净的状态,这种情况在一行中发生5次并不罕见。如果这可以在3分钟内运行,那就太好了“我宁愿将备份提取为SQL查询,但我看不到这样做的选项。”RDS在该层不为您做任何事情,但您可以自己做这件事,就像您使用除RDS之外的dbms做这件事一样。。。使用逻辑备份(“由SQL语句组成的眼球友好备份”)工具,如mysqldump(MySQL/MariaDB)、pg_dump(Postgres)等。您正在运行哪个数据库引擎?