我需要将数据库从一个 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 集群复制到另一个集群的主要内容,如果未能解决你的问题,请参考以下文章