Configurando AWS integrações do Oracle Database@ com o Amazon Redshift - Oracle Database@AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurando AWS integrações do Oracle Database@ com o Amazon Redshift

Para configurar a integração sem ETL entre seu banco de dados Oracle e o Amazon Redshift, conclua as seguintes etapas:

  1. Ative o Zero-ETL na sua rede ODB.

  2. Configure os pré-requisitos do banco de dados Oracle.

  3. Configure o AWS Secrets Manager e o AWS Key Management Service.

  4. Configurar permissões do IAM

  5. Configure as políticas de recursos do Amazon Redshift.

  6. Crie a integração Zero-ETL.

  7. Crie o banco de dados de destino no Amazon Redshift.

Etapa 1: Habilitar Zero-ETL para sua rede ODB

Você pode ativar a integração Zero-ETL para a rede ODB associada ao seu cluster de VM de origem. Por padrão, essa integração está desativada.

Para habilitar a integração Zero-ETL
  1. Abra o AWS console Oracle Database@ em. https://console.aws.amazon.com/odb/

  2. No painel de navegação, escolha Redes ODB.

  3. Selecione a rede ODB para a qual você deseja habilitar a integração Zero-ETL.

  4. Escolha Modificar.

  5. Selecione Zero-ETL.

  6. Escolha Continuar e, em seguida, Modificar.

Para habilitar a integração Zero-ETL, use o update-odb-network comando com o parâmetro: --zero-etl-access

aws odb update-odb-network \ --odb-network-id odb-network-id \ --zero-etl-access ENABLED

Para habilitar a integração Zero-ETL para a rede ODB associada ao seu cluster de VM de origem, use o comando. update-odb-network Esse comando configura a infraestrutura de rede necessária para a integração Zero-ETL.

aws odb update-odb-network \ --odb-network-id your-odb-network-id \ --zero-etl-access ENABLED

Etapa 2: Configurar seu banco de dados Oracle

Conclua a configuração do banco de dados Oracle conforme descrito nos Pré-requisitos:

  • Crie usuários de replicação e conceda as permissões necessárias.

  • Ative os redo logs arquivados.

  • Configure o SSL (somente Oracle Exadata).

  • Configure usuários do ASM, se aplicável (somente Oracle Exadata).

Etapa 3: Configurar o AWS Secrets Manager e o AWS Key Management Service

Crie uma Chave Gerenciada pelo Cliente (CMK) e armazene suas credenciais de banco de dados.

  1. Crie uma CMK no AWS Key Management Service usando o create-key comando.

    aws kms create-key \ --description "ODB Zero-ETL Integration Key" \ --key-usage ENCRYPT_DECRYPT \ --key-spec SYMMETRIC_DEFAULT
  2. Armazene suas credenciais de banco de dados no AWS Secrets Manager.

    aws secretsmanager create-secret \ --name "ODBZeroETLCredentials" \ --description "Credentials for Oracle Database@AWS Zero-ETL integration" \ --kms-key-id your-cmk-key-arn \ --secret-string file://secret-content.json
  3. Anexe uma política de recursos ao segredo para permitir o acesso ao Oracle Database@AWS .

    aws secretsmanager put-resource-policy \ --secret-id "ODBZeroETLCredentials" \ --resource-policy file://secret-resource-policy.json

    No comando anterior, secret-resource-policy.json contém o seguinte JSON.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "zetl.odb.amazonaws.com" }, "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "*" } ] }
  4. Anexe uma política de recursos à CMK. A política de recursos da CMK deve incluir permissões para o responsável pelo serviço principal do Oracle Database@ e pelo responsável pelo AWS serviço principal do Amazon Redshift para oferecer suporte à integração criptografada de zero ETL.

    aws kms put-key-policy \ --key-id your-cmk-key-arn \ --policy-name default \ --policy file://cmk-resource-policy.json

    O cmk-resource-policy.json arquivo deve incluir as seguintes declarações de política. A primeira instrução permite o acesso ao AWS serviço Oracle Database@ e a segunda permite que o Amazon Redshift crie concessões na chave KMS para operações de dados criptografados.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "Allow ODB service access", "Effect": "Allow", "Principal": { "Service": "zetl.odb.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant" ], "Resource": "*" }, { "Sid": "Allows the Redshift service principal to add a grant to a KMS key", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}": "{context-value}" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } } ] }

Etapa 4: configurar as permissões do IAM

Crie e anexe políticas do IAM que permitam operações de integração sem ETL.

aws iam create-policy \ --policy-name "ODBZeroETLIntegrationPolicy" \ --policy-document file://odb-zetl-iam-policy.json aws iam attach-user-policy \ --user-name your-iam-username \ --policy-arn policy-arn

A política a seguir concede as permissões necessárias.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ODBGlueIntegrationAccess", "Effect": "Allow", "Action": [ "glue:CreateIntegration", "glue:ModifyIntegration", "glue:DeleteIntegration", "glue:DescribeIntegrations", "glue:DescribeInboundIntegrations" ], "Resource": "*" }, { "Sid": "ODBZetlOperations", "Effect": "Allow", "Action": "odb:CreateOutboundIntegration", "Resource": "*" }, { "Sid": "ODBRedshiftFullAccess", "Effect": "Allow", "Action": [ "redshift:*", "redshift-serverless:*", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "sns:CreateTopic", "sns:Get*", "sns:List*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "cloudwatch:PutMetricAlarm", "cloudwatch:EnableAlarmActions", "cloudwatch:DisableAlarmActions", "tag:GetResources", "tag:UntagResources", "tag:GetTagValues", "tag:GetTagKeys", "tag:TagResources" ], "Resource": "*" }, { "Sid": "ODBRedshiftDataAPI", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:CancelStatement", "redshift-data:ListStatements", "redshift-data:GetStatementResult", "redshift-data:DescribeStatement", "redshift-data:ListDatabases", "redshift-data:ListSchemas", "redshift-data:ListTables", "redshift-data:DescribeTable" ], "Resource": "*" }, { "Sid": "ODBKMSAccess", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:ListKeys", "kms:CreateAlias", "kms:ListAliases" ], "Resource": "*" }, { "Sid": "ODBSecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "secretsmanager:ValidateResourcePolicy" ], "Resource": "*" } ] }

Etapa 5: Configurar as políticas de recursos do Amazon Redshift

Configure políticas de recursos em seu cluster do Amazon Redshift para autorizar integrações de entrada.

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
dica

Como alternativa, você pode usar a opção Corrigir para mim no AWS console. Essa opção configura automaticamente as políticas necessárias do Amazon Redshift sem que você precise fazer isso manualmente.

Etapa 6: Crie a integração Zero-ETL usando AWS Glue

Crie a integração Zero-ETL usando o comando. AWS Glue create-integration Nesse comando, você especifica o cluster de VM de origem e o namespace Amazon Redshift de destino.

O exemplo a seguir cria uma integração com um PDB chamado em pdb1 execução em um cluster de VM do Exadata. Você também pode criar um cluster de VM autônomo cloud-vm-cluster substituindo-o por cloud-autonomous-vm-cluster no ARN de origem. Especificar uma chave KMS é opcional. Se você especificar uma chave, ela poderá ser diferente daquela que você criou emEtapa 3: Configurar o AWS Secrets Manager e o AWS Key Management Service.

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"

O comando retorna um ARN de integração e define o status como. creating Você pode monitorar o status da integração usando o describe-integrations comando.

aws glue describe-integrations \ --integration-identifier integration-id
Importante

Somente um PDB por integração é suportado. O filtro de dados deve especificar um único PDB, por exemplo,include: pdb1.*.*. A origem deve estar na mesma AWS região e conta em que a integração está sendo criada.

Etapa 7: Criar um banco de dados de destino no Amazon Redshift

Depois que a integração estiver ativa, crie um banco de dados de destino em seu cluster do Amazon Redshift.

-- Connect to your Amazon Redshift cluster psql -h your-redshift-endpoint -U username -d database -- Create database from integration CREATE DATABASE target_database_name FROM INTEGRATION 'integration-id' DATABASE "source_pdb_name";

Depois de criar o banco de dados de destino, você pode consultar os dados replicados.

-- List databases to verify creation \l -- Connect to the new database \c target_database_name -- List tables to see replicated data \dt

Verifique a integração Zero-ETL

Verifique se a integração funciona consultando o status da integração AWS Glue e certificando-se de que suas alterações no Oracle estejam sendo replicadas para o Amazon Redshift.

Para verificar se sua integração com Zero-ETL está funcionando corretamente
  1. Verifique o status da integração.

    aws glue describe-integrations \ --integration-identifier integration-id

    O status deve ser ACTIVE ouREPLICATING.

  2. Verifique a replicação de dados fazendo alterações em seu banco de dados Oracle e verificando se elas aparecem no Amazon Redshift.

  3. Monitore as métricas de replicação na Amazon CloudWatch (se disponível).