跳转到内容
首页PT · EN · ES · JA · ZH

跨账号

当数据库在一个账号、数据湖在另一个账号时,导出会 在源账号中 执行,并直接写入 Data Pump 的存储桶。原始数据不会传输两次,快照也无需共享或复制。

这带来一个很实际的好处:集群不需要使用自定义 KMS 密钥。用 RDS 默认密钥 (aws/rds)加密的快照同样可用——如果方案要求共享快照,这一点是做不到的。

只创建导出所需的最少资源:

  • 一个 RDS 事件订阅,用于在快照就绪时发出通知
  • 两个最小权限的 IAM 角色:一个用于导出,一个用于事件

该账号中不会留存任何数据,Data Pump 也不会获得除导出快照之外的任何访问权限。

两个账号之间相互引用,因此安装分为三步。

终端窗口
sh install-datapump.sh

创建存储桶和导出密钥,并输出第 2 步所需的各个 ARN。

使用托管该集群的账号的凭证执行:

终端窗口
VERSION=v1.0.0 \
DATAPUMP_ACCOUNT=111122223333 \
DATAPUMP_TOPIC_ARN=arn:...:datapump-rds-snapshot-export-to-s3-prd \
DATAPUMP_BUCKET_ARN=arn:aws:s3:::datapump-datalake-prd \
DATAPUMP_EXPORT_KMS_KEY_ARN=arn:aws:kms:...:key/... \
SOURCE_CLUSTER_IDENTIFIER=meu-cluster \
sh install-source-account.sh

这四个 ARN 来自第 1 步的输出。

终端窗口
sh source-accounts.sh add 444455556666

授权第 2 步创建的角色写入存储桶并使用该密钥。缺少这一步,导出会因权限错误而失败。

对每个账号重复第 2 步和第 3 步。source-accounts.sh 会维护这份清单并重新应用全部授权 ——添加新账号不会移除已有的账号。

查看当前清单:

终端窗口
sh source-accounts.sh list

其余步骤与单账号场景完全一致:在 Origens(数据来源)中勾选集群,在 Bancos(数据库)中勾选数据库。请参阅 配置数据接入

在控制台中,数据来源会带账号标识显示,以免混淆不同账号中同名的集群。