本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Oracle Database@ 与 Amazon Redshift AWS 的集成
要在您的 Oracle 数据库和 Amazon Redshift 之间设置零 ETL 集成,请完成以下步骤:
-
在您的 ODB 网络上启用零 ETL。
-
配置 Oracle 数据库先决条件。
-
设置 S AWS ecrets Manager 和 AWS 密钥管理服务。
-
配置 IAM 权限。
-
设置 Amazon Redshift 资源政策。
-
创建零 ETL 集成。
-
在 Amazon Redshift 中创建目标数据库。
第 1 步:为您的 ODB 网络启用零 ETL
您可以为与源虚拟机集群关联的 ODB 网络启用零 ETL 集成。默认情况下,此集成处于禁用状态。
启用零 ETL 集成
-
打开 Oracle Database@AWS 控制台,网址为。https://console.aws.amazon.com/odb/
-
在导航窗格中,选择 ODB 网络。
-
选择要为其启用零 ETL 集成的 ODB 网络。
-
选择 Modify(修改)。
-
选择零 ETL。
-
选择 “继续”,然后选择 “修改”。
要启用零 ETL 集成,请使用带参数的update-odb-network命令:--zero-etl-access
aws odb update-odb-network \ --odb-network-idodb-network-id\ --zero-etl-access ENABLED
要为与源虚拟机集群关联的 ODB 网络启用零 ETL 集成,请使用命令。update-odb-network此命令配置零 ETL 集成所需的网络基础架构。
aws odb update-odb-network \ --odb-network-idyour-odb-network-id\ --zero-etl-access ENABLED
步骤 2:配置您的 Oracle 数据库
按照先决条件中所述完成 Oracle 数据库配置:
创建复制用户并授予必要的权限。
启用已存档的重做日志。
配置 SSL(仅限 Oracle Exadata)。
如果适用,请设置 ASM 用户(仅限 Oracle Exadata)。
第 3 步:设置 S AWS ecrets Manager 和 AWS 密钥管理服务
创建客户托管密钥 (CMK) 并存储您的数据库凭据。
-
使用
create-key命令在 AWS 密钥管理服务中创建 CMK。aws kms create-key \ --description "ODB Zero-ETL Integration Key" \ --key-usage ENCRYPT_DECRYPT \ --key-spec SYMMETRIC_DEFAULT -
将您的数据库凭据存储在 S AWS ecrets Manager 中。
aws secretsmanager create-secret \ --name "ODBZeroETLCredentials" \ --description "Credentials for Oracle Database@AWS Zero-ETL integration" \ --kms-key-idyour-cmk-key-arn\ --secret-string file://secret-content.json -
为密钥附加资源策略以允许 Oracle Database@ 访问AWS 。
aws secretsmanager put-resource-policy \ --secret-id "ODBZeroETLCredentials" \ --resource-policy file://secret-resource-policy.json在前面的命令中,
secret-resource-policy.json包含以下 JSON。 -
将资源策略附加到 CMK。CMK 资源策略必须包括 Oracle Database@AWS 服务主体和 Amazon Redshift 服务主体的权限,才能支持加密的零 ETL 集成。
aws kms put-key-policy \ --key-idyour-cmk-key-arn\ --policy-name default \ --policy file://cmk-resource-policy.json该
cmk-resource-policy.json文件应包含以下政策声明。第一条语句允许 Oracle Database@AWS 服务访问,第二条语句允许 Amazon Redshift 为 KMS 密钥创建用于加密数据操作的授权。
步骤 4:配置 IAM 权限
创建并附加允许零 ETL 集成操作的 IAM 策略。
aws iam create-policy \ --policy-name "ODBZeroETLIntegrationPolicy" \ --policy-document file://odb-zetl-iam-policy.json aws iam attach-user-policy \ --user-nameyour-iam-username\ --policy-arnpolicy-arn
以下策略授予必要的权限。
第 5 步:配置 Amazon Redshift 资源策略
在您的 Amazon Redshift 集群上设置资源策略以授权入站集成。
aws redshift put-resource-policy \ --no-verify-ssl \ --resource-arn "your-redshift-cluster-arn" \ --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "redshift:AuthorizeInboundIntegration" ], "Condition": { "StringEquals": { "aws:SourceArn": "your-vm-cluster-arn" } } }, { "Effect": "Allow", "Principal": { "AWS": "your-account-id" }, "Action": [ "redshift:CreateInboundIntegration" ] } ] }' \ --region us-west-2
提示
或者,你可以使用 AWS 控制台中的 “为我修复” 选项。此选项可自动配置所需的 Amazon Redshift 策略,而无需您手动配置。
步骤 6:使用创建零 ETL 集成 AWS Glue
使用命令创建零 ETL 集成。 AWS Glue create-integration在此命令中,您可以指定源虚拟机集群和目标 Amazon Redshift 命名空间。
以下示例创建了与 Exadata 虚拟机群集中pdb1运行的名为 PDB 的集成。您也可以通过在源 ARN cloud-autonomous-vm-cluster 中cloud-vm-cluster替换为来创建自治虚拟机集群。指定 KMS 密钥是可选的。如果您指定密钥,则该密钥可能与您在中创建的密钥不同第 3 步:设置 S AWS ecrets Manager 和 AWS 密钥管理服务。
aws glue create-integration \ --integration-name "MyODBZeroETLIntegration" \ --source-arn "arn:aws:odb:region:account:cloud-vm-cluster/cluster-id" \ --target-arn "arn:aws:redshift:region:account:namespace/namespace-id" \ --data-filter "include:pdb1.*.*" \ --integration-config '{ "RefreshInterval": "10", "IntegrationMode": "DEFAULT", "SourcePropertiesMap": { "secret-arn": "arn:aws:secretsmanager:region:account:secret:secret-name" } }' \ --description "Zero-ETL integration for Oracle to Amazon Redshift" \ --kms-key-id "arn:aws:kms:region:account:key/key-id"
该命令返回集成 ARN 并将状态设置为。creating您可以使用describe-integrations命令监控集成状态。
aws glue describe-integrations \ --integration-identifierintegration-id
重要
每个集成仅支持一个 PDB。例如,数据筛选器必须指定单个 PDB。include: pdb1.*.*来源必须位于创建集成的相同 AWS 区域和账户中。
第 7 步:在 Amazon Redshift 中创建目标数据库
集成激活后,在您的 Amazon Redshift 集群中创建目标数据库。
-- Connect to your Amazon Redshift cluster psql -hyour-redshift-endpoint-Uusername-ddatabase-- Create database from integration CREATE DATABASEtarget_database_nameFROM INTEGRATION 'integration-id' DATABASE "source_pdb_name";
创建目标数据库后,您可以查询复制的数据。
-- List databases to verify creation \l -- Connect to the new database \ctarget_database_name-- List tables to see replicated data \dt
验证零 ETL 集成
通过在中查询集成状态 AWS Glue 并确保您的 Oracle 更改已复制到 Amazon Redshift 来验证集成是否正常运行。
验证您的零 ETL 集成是否正常运行
-
检查集成状态。
aws glue describe-integrations \ --integration-identifierintegration-id状态应为
ACTIVE或REPLICATING。 -
通过在您的 Oracle 数据库中进行更改并检查更改是否显示在 Amazon Redshift 中,来验证数据复制。
-
监控 Amazon 中的复制指标 CloudWatch (如果有)。