我需要将数据库从一个 Redshift 集群复制到另一个集群

Posted

技术标签:

【中文标题】我需要将数据库从一个 Redshift 集群复制到另一个集群【英文标题】:I need to copy a database from one Redshift Cluster to another cluster 【发布时间】:2017-10-20 15:38:45 【问题描述】:

在将数据库从一个 Redshift 集群移动到另一个 Redshift 集群时,我需要帮助。在这里,我不是在复制表格。我想复制一个数据库。有人可以帮我解决这个问题吗?

【问题讨论】:

目标是否已经存在?所以你要向现有的目标集群添加一个新数据库? 当您说“复制数据库”时,您指的是 PostgreSQL“数据库”实体(一个集群可以通过CREATE DATABASE 命令创建多个数据库),还是指Redshift 集群的完整内容?随时编辑您的问题以提供更多详细信息(例如您的情况以及您希望这样做的原因)。 no @JohnRotenstein.. 我想将特定数据库从一个集群移动到另一个集群,而不是所有内容。 “移动数据库,但不是所有内容”是什么意思。您的意思是“将集群中的一个特定数据库(通过CREATE DATABASE 创建)移动到另一个集群,而不是该集群中in 的其他数据库”?我问是因为很多人对“数据库”的定义感到困惑。 将集群中的一个特定数据库(通过 CREATE DATABASE 创建)移动到另一个集群 【参考方案1】:

使用 s3 作为临时存储

如果两个集群都在同一个区域,那么 从集群 1 卸载到 s3 然后 从 S3 复制到集群 2。

使用集群快照。

创建源集群的快照,然后将快照恢复为目标集群。 如果我做了一个错误的假设,请发表评论,我会重新调整我的答案。

【讨论】:

【参考方案2】:

您可以拍摄当前数据库的快照。并在创建新数据库后恢复它。

【讨论】:

【参考方案3】:

你有两个选择:

选项 1:拍摄快照并通过还原快照创建新集群并删除不需要的数据库。如果需要,您可以有一个跨区域。

选项2:将表数据从当前数据库卸载到S3,新建数据库后将数据复制到新数据库,这里需要手动创建用户、组、访问等所有依赖项。

【讨论】:

以上是关于我需要将数据库从一个 Redshift 集群复制到另一个集群的主要内容,如果未能解决你的问题,请参考以下文章

将文件从 s3 复制到 redshift 花费的时间太长

定期将数据从 S3 存储桶流式传输到红移

在 aws redshift 中自动化跨区域复制表

将文件(带有特定后缀)从 S3 复制到 Redshift

Redshift:如何将连接表的副本复制到集群中的每个切片上?

Redshift - 跨账户集群同步