0Pricing
AWS Solutions Architect · Aula

Database Migration Service (DMS) e Schema Conversion Tool

Migre bancos de dados homogêneos e heterogêneos com o DMS usando carga completa ou CDC e converta dialetos de esquema com o Schema Conversion Tool.

Database Migration Service (DMS) e Schema Conversion Tool é uma aula grátis de AWS Solutions Architect no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AWS Solutions Architect, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AWS Solutions Architect inclui 4 aulas no total.

O que é o AWS DMS?

O AWS Database Migration Service (DMS) migra bancos de dados para a AWS com tempo de inatividade mínimo. Ele oferece suporte a migrações homogêneas (por exemplo, Oracle para Oracle, MySQL para MySQL) e heterogêneas (por exemplo, Oracle para Aurora PostgreSQL, SQL Server para MySQL). O DMS usa uma instância de replicação que lê da origem, transforma os dados opcionalmente e grava no destino. Você paga apenas pelo tempo de execução da instância de replicação.

Componentes do DMS: Endpoints e Instância de Replicação

O DMS tem três componentes principais. Os Endpoints de Origem definem a conexão com o banco de dados de origem (URL JDBC, credenciais, TLS). Os Endpoints de Destino definem o banco de dados de destino. A Instância de Replicação é um servidor gerenciado baseado no EC2 que o DMS provisiona na sua VPC para executar a carga de trabalho de migração. Escolha o tamanho da instância de replicação com base na quantidade de dados que precisa ser migrada e em se deseja usar multi-AZ para a própria instância de replicação.

# Create a DMS replication instance
aws dms create-replication-instance \
  --replication-instance-identifier my-dms-instance \
  --replication-instance-class dms.t3.medium \
  --allocated-storage 50 \
  --vpc-security-group-ids sg-abc123 \
  --replication-subnet-group-identifier my-dms-subnet-group \
  --multi-az false \
  --publicly-accessible false

Migração Full Load versus CDC

O DMS oferece suporte a dois modos de migração. O Full Load copia todos os dados existentes da origem para o destino — é adequado quando você pode aceitar um período de inatividade ou quando a origem permanece somente para leitura durante a migração. O Change Data Capture (CDC) captura as alterações contínuas do registro de transações da origem após a conclusão do carregamento completo, mantendo a origem e o destino sincronizados. Uma migração combinada de Full Load + CDC minimiza o tempo de inatividade: migre os dados enquanto a origem permanece ativa e faça a mudança quando o destino estiver atualizado.

# Create a DMS replication task with Full Load + CDC
aws dms create-replication-task \
  --replication-task-identifier sales-migration \
  --source-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:SOURCE \
  --target-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:TARGET \
  --replication-instance-arn arn:aws:dms:us-east-1:123:rep:my-dms-instance \
  --migration-type full-load-and-cdc \
  --table-mappings '{"rules": [{"rule-type": "selection", "rule-id": "1", "rule-name": "all", "object-locator": {"schema-name": "%", "table-name": "%"}, "rule-action": "include"}]}'

Schema Conversion Tool (SCT)

O AWS Schema Conversion Tool (SCT) é uma aplicação gratuita para download que converte automaticamente o esquema do banco de dados de origem (DDL) para um formato compatível com o mecanismo do banco de dados de destino. Ele processa definições de tabelas, exibições, procedimentos armazenados, funções e gatilhos. Em migrações heterogêneas (por exemplo, Oracle para PostgreSQL), o SCT converte automaticamente a maioria dos objetos e sinaliza os itens que exigem revisão manual devido a diferenças de sintaxe não compatíveis.

# SCT is a GUI desktop tool, but here is the workflow:
# 1. Connect SCT to source Oracle database
# 2. Connect SCT to target Aurora PostgreSQL database
# 3. Run schema assessment: SCT rates conversion complexity per object
# 4. Convert schema automatically (SCT generates PostgreSQL DDL)
# 5. Apply converted DDL to target (SCT executes or exports SQL script)
# 6. Review and manually fix flagged items (e.g., PL/SQL procedures with Oracle-specific syntax)

Migração Homogênea versus Heterogênea

Em migrações homogêneas (mesmo mecanismo, por exemplo, MySQL local para RDS for MySQL), normalmente não é necessário usar o SCT — o esquema é diretamente compatível. O DMS pode executar Full Load + CDC imediatamente. Em migrações heterogêneas (mecanismos diferentes), o SCT deve converter primeiro o esquema, o DMS cuida da migração dos dados e talvez seja necessário reescrever manualmente procedimentos armazenados e gatilhos que não tenham equivalente no mecanismo de destino.

# Example heterogeneous migration workflow:
# On-premises Oracle -> Amazon Aurora PostgreSQL
#
# Step 1: SCT converts Oracle DDL to PostgreSQL DDL
# Step 2: Apply PostgreSQL DDL to Aurora target
# Step 3: DMS Full Load + CDC copies Oracle table data to Aurora
# Step 4: Validate row counts and checksums
# Step 5: Cut over application connections to Aurora endpoint
# Step 6: Terminate DMS task and replication instance

Bancos de Dados de Origem e Destino Compatíveis

O DMS oferece suporte a uma ampla variedade de origens: Oracle, SQL Server, MySQL, MariaDB, PostgreSQL, SAP ASE, MongoDB, IBM Db2 e S3. Os destinos compatíveis incluem todos os anteriores, além de Amazon Redshift, DynamoDB, Kinesis Data Streams e Kafka. Isso torna o DMS útil não apenas para migrações relacionais, mas também para transmitir eventos de alteração relacionais para um lago de dados ou uma arquitetura orientada a eventos usando CDC para o Kinesis.

Regras de Mapeamento de Tabelas do DMS

O DMS usa regras de mapeamento de tabelas (JSON) para controlar quais esquemas e tabelas devem ser incluídos ou excluídos e para aplicar transformações aos dados. Você pode renomear esquemas ou tabelas, converter valores de colunas (por exemplo, converter todas as strings para maiúsculas), adicionar colunas derivadas ou filtrar linhas. Isso é útil ao migrar para um destino com convenções de nomenclatura diferentes ou quando você quer migrar apenas um subconjunto de tabelas.

# Table mapping: include only the 'orders' table, rename schema
{
  'rules': [
    {
      'rule-type': 'selection',
      'rule-id': '1',
      'rule-name': 'select-orders',
      'object-locator': {'schema-name': 'prod_db', 'table-name': 'orders'},
      'rule-action': 'include'
    },
    {
      'rule-type': 'transformation',
      'rule-id': '2',
      'rule-name': 'rename-schema',
      'rule-action': 'convert-uppercase',
      'rule-target': 'schema',
      'object-locator': {'schema-name': 'prod_db'}
    }
  ]
}

Monitoramento do Progresso da Migração do DMS

O DMS publica métricas no CloudWatch: FullLoadThroughputRowsSource (linhas carregadas por segundo), CDCLatencySource (atraso entre o registro de transações da origem e a leitura feita pelo DMS) e CDCLatencyTarget (atraso entre a leitura feita pelo DMS e a gravação no destino). Monitore atentamente CDCLatencyTarget durante a fase de sincronização — quando seu valor cair para quase zero, o destino terá alcançado a origem e você estará pronto para a mudança.

# Monitor CDC latency via CloudWatch CLI
aws cloudwatch get-metric-statistics \
  --namespace AWS/DMS \
  --metric-name CDCLatencyTarget \
  --dimensions Name=ReplicationInstanceIdentifier,Value=my-dms-instance \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z \
  --period 60 \
  --statistics Average

DMS Serverless

O DMS Serverless provisiona e dimensiona automaticamente a capacidade de replicação com base na carga de trabalho da migração, eliminando a necessidade de escolher e gerenciar o tamanho de uma instância de replicação. Você especifica unidades de capacidade mínimas e máximas do DMS (DCUs), e o DMS ajusta automaticamente a escala dentro desse intervalo. Essa opção é ideal para migrações com carga variável ou quando você quer evitar o risco de dimensionar insuficientemente a instância de replicação durante o pico da carga de migração.

# Create a DMS Serverless replication
aws dms create-replication \
  --replication-config-identifier my-serverless-migration \
  --replication-type full-load-and-cdc \
  --source-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:SOURCE \
  --target-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:TARGET \
  --compute-config '{
    "MinCapacityUnits": 2,
    "MaxCapacityUnits": 64,
    "MultiAZ": false,
    "ReplicationSubnetGroupId": "my-subnet-group",
    "VpcSecurityGroupIds": ["sg-abc123"]
  }'

Validação da Integridade da Migração

Após a migração, valide a integridade dos dados usando a Validação de Dados do DMS. Ative-a nas configurações da tarefa, e o DMS comparará as contagens de linhas e as somas de verificação entre as tabelas de origem e destino, relatando divergências em uma tabela de validação separada. Em migrações heterogêneas, execute também testes básicos no nível da aplicação. Nunca faça a mudança até que a validação mostre zero discrepâncias — reconciliar dados após uma mudança malsucedida é muito mais custoso do que dedicar tempo adicional à validação.

# Enable validation in DMS task settings (JSON)
{
  'TargetMetadata': {'SupportLobs': true, 'FullLobMode': false},
  'ValidationSettings': {
    'EnableValidation': true,
    'ValidationMode': 'ROW_LEVEL',
    'ValidationOnly': false,
    'FailureMaxCount': 10000
  }
}

Cenários Comuns do DMS em Provas

Na prova SAA-C03, o DMS aparece em cenários que exigem migração de bancos de dados com tempo de inatividade mínimo. Principais indicações: “migrar um banco de dados com replicação contínua” → DMS Full Load + CDC. “alterar o mecanismo do banco de dados” → SCT primeiro e depois DMS. “replicar alterações quase em tempo real para um lago de dados” → CDC do DMS para Kinesis ou S3. “consolidar vários bancos de dados de origem em um único destino” → várias tarefas do DMS para um endpoint de destino. O DMS é especificamente destinado à migração de bancos de dados — para migração de servidores, use MGN; para transferência de dados em massa, use DataSync ou Snowball.

Verificação Rápida

Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) desta lição.

Recapitulação da Lição

Nesta lição, você aprendeu que: o DMS oferece suporte a migrações de bancos de dados homogêneas e heterogêneas usando os modos Full Load e CDC; o SCT automatiza a conversão do esquema em migrações com alteração de mecanismo e sinaliza itens para revisão manual; e o DMS Serverless ajusta automaticamente a escala da capacidade de replicação, eliminando decisões sobre o dimensionamento da instância. A seguir, exploraremos o Amazon EventBridge para roteamento orientado a eventos e arquitetura de barramento.

Perguntas Frequentes

A aula “Database Migration Service (DMS) e Schema Conversion Tool” é grátis?

Sim — o texto completo de “Database Migration Service (DMS) e Schema Conversion Tool” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AWS Solutions Architect, atualize para CoddyKit PRO. O curso de AWS Solutions Architect inclui 4 aulas no total.

O que vou aprender em “Database Migration Service (DMS) e Schema Conversion Tool”?

Migre bancos de dados homogêneos e heterogêneos com o DMS usando carga completa ou CDC e converta dialetos de esquema com o Schema Conversion Tool. Você pratica AWS Solutions Architect com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AWS Solutions Architect?

Nenhuma experiência prévia é necessária. AWS Solutions Architect no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Database Migration Service (DMS) e Schema Conversion Tool”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AWS Solutions Architect?

Sim. Cada aula de AWS Solutions Architect inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Os 7 Rs da estratégia de migração
  2. AWS Migration Hub e Application Discovery Service
  3. Application Migration Service (MGN)
  4. Database Migration Service (DMS) e Schema Conversion Tool
← Voltar para AWS Solutions Architect