Quais objetos posso migrar usando uma tarefa do AWS DMS?

Última atualização: 25/07/2022

Eu tenho uma tarefa do AWS Database Migration Service (AWS DMS) que não está migrando todos os objetos do esquema do banco de dados. Quais objetos uma tarefa do AWS DMS migra e como faço para migrar os objetos restantes?

Breve descrição

Se sua tarefa do AWS DMS não estiver migrando um objeto, pode ser porque as tarefas do AWS DMS não migram esse tipo de objeto. O AWS DMS cria vários objetos, como tabelas e chaves primárias, mas não cria objetos que não são necessários para migrar dados da origem. Alguns exemplos de objetos que o AWS DMS não cria incluem índices secundários, padrões de dados e restrições de chave não primária

Para obter mais informações sobre quais objetos o AWS DMS cria, consulte Solução de problemas de tarefas de migração no AWS Database Migration Service.

Para migrar os objetos restantes que não são migrados pelo AWS DMS, use um destes métodos:

  • Para uma migração homogênea (entre dois bancos de dados do mesmo tipo de mecanismo), migre o esquema usando as ferramentas nativas do mecanismo para exportar e importar o esquema em si, sem nenhum dado.
  • Para migrações heterogêneas (entre dois bancos de dados que usam tipos de mecanismo diferentes), use a AWS Schema Conversion Tool (AWS SCT) para gerar um esquema de destino completo.

Resolução

Verifique se um objeto foi migrado por uma tarefa do AWS DMS

Primeiro, use estas diretrizes para verificar se um objeto foi migrado por uma tarefa do AWS DMS:

  • Uma tarefa do AWS DMS cria a tabela no destino, junto com a restrição e o índice da chave primária.
  • Se não existir uma chave primária, a tarefa criará a chave exclusiva (se existir na tabela de origem).
  • Se existirem restrições NOT NULL na tabela de origem, a tarefa do AWS DMS criará as restrições NOT NULL no destino. Isso não inclui colunas de objetos grandes (LOB). Se o AWS DMS criar as tabelas de destino, ele definirá as colunas LOB como anuláveis, por padrão. Para obter mais informações, consulte Migração de objetos binários grandes (LOBs).
  • Se a tabela de origem tiver uma coluna de incremento automático, a propriedade de incremento automático não será migrada.
  • Outras propriedades específicas da tabela, como restrições de chave estrangeira, verificações, padrões de dados e comentários, não são replicadas pela tarefa do AWS DMS.
  • Objetos de banco de dados como índices secundários, visualizações, procedimentos, funções, pacotes e gatilhos não são migrados pela tarefa do AWS DMS. Migre esses objetos separadamente.

Migre objetos usando as ferramentas nativas do seu mecanismo (migração homogênea)

Para uma migração homogênea do banco de dados, use suas ferramentas nativas para fazer uma exportação dos metadados do esquema, sem os dados. Esse despejo somente de metadados é importado para o banco de dados de destino para criar os objetos do banco de dados, sem nenhum dado. Em seguida, execute a tarefa do AWS DMS com a configuração de tarefa TargetTablePrepMode definida como TRUNCATE_BEFORE_LOAD. Isso significa que a tarefa não descarta e recria as tabelas no destino.

Oracle

Para migrar objetos com bancos de dados Oracle, use o utilitário export data pump (expdp) para fazer um despejo somente de metadados. Usando o parâmetro CONTENT=METADATA_ONLY, o utilitário data pump descarrega somente definições de objeto de banco de dados. O utilitário não descarrega nenhum dado de linha da tabela.

1.    Para fazer um despejo somente de metadados, crie um arquivo de parâmetros para exportar o esquema:

$> cat export_sample_user.par 
userid=DMS_USER/password@SOURCE_DB
directory=DATA_PUMP_DIR
logfile=export_dms_sample_user_metadata.log
dumpfile=export_dms_sample_user_metadata_%U.dmp
schemas=DMS_SAMPLE
CONTENT=METADATA_ONLY

2    Execute a exportação usando o utilitário expdp:

expdp parfile=export_sample_user.par

3.    Depois que os arquivos de despejo forem criados no DATA_PUMP_DIR do banco de dados de origem, copie-os para o DATA_PUMP_DIR do banco de dados Oracle de destino. Para criar os objetos no banco de dados Oracle de destino, execute o utilitário import data pump (impdp) para importar os metadados:

impdp admin@TARGET_DB directory=DATA_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_user_metadata_%U.dmp

SQL Server

Para migrar objetos usando o SQL Server, gere um script SQL para o esquema do banco de dados:

  1. Faça login no banco de dados de origem usando o SQL Server Management Studio (SSMS).
  2. Clique com o botão direito do mouse no banco de dados para o qual deseja gerar scripts, escolha Tasks (Tarefas) e, em seguida, escolha Generate Scripts (Gerar scripts).
  3. Em Select specific database objects (Selecionar objetos de banco de dados específicos), selecione as tabelas, os modos de exibição e quaisquer outros objetos que você deseja usar e, em seguida, escolha Next (Avançar).
  4. Selecione o botão Advanced (Avançado) e, em seguida, selecione os tipos de dados nos quais você deseja criar script.
  5. Se você quiser obter o SQL para índices secundários, defina Script indexes (Índices de script) como true. Os índices de script são definidos como false, por padrão.
  6. Escolha como você deseja salvar os scripts. Por exemplo, crie um arquivo SQL no disco, copie o SQL para uma nova janela de consulta ou copie os scripts para a área de transferência.
  7. Escolha Next (Avançar).
  8. EscolhaNext (Avançar) novamente e, em seguida, escolha Finish (Concluir).

Para criar objetos no banco de dados de destino, execute o script SQL gerado após concluir essas etapas.

MySQL

Para migrar objetos com o MySQL, use o utilitário mysqldump para gerar um arquivo de despejo contendo apenas os metadados do esquema. A opção --no-data diz ao mysqldump para não despejar dados da tabela, portanto, os resultados no arquivo de despejo contêm apenas instruções para criar as tabelas. Para um despejo somente de definição, adicione as opções --routines e --events para incluir também definições de rotina e evento armazenadas.

Exemplo:

mysqldump --no-data --routines --events -h SOURCE_DB_SERVER_NAME -u DMS_USER -p SOURCE_DB > path_to_dump_file.sql

Para criar os objetos no banco de dados de destino, execute o script SQL gerado após a execução do comando anterior.

PostgreSQL

Para migrar objetos com bancos de dados PostgreSQL, use o utilitário pg_dump para gerar um arquivo de despejo contendo apenas os metadados do esquema. A opção -s ou --schema-only despeja as definições de objeto (esquema) e não os dados.

Exemplo:

pg_dump --host SOURCE_DB_SERVER_NAME --port 5432 --username DMS_USER --schema-only --verbose SOURCE_DB > path_to_dump_file.sql

Para criar os objetos no banco de dados de destino, execute o script SQL gerado após a execução do comando anterior.

Migrar objetos usando a AWS Schema Conversion Tool (AWS SCT)

Use o AWS SCT para converter e migrar seus esquemas de banco de dados existentes de um mecanismo de banco de dados para outro. Ou use o AWS SCT para copiar um esquema de banco de dados on-premises existente para uma instância de banco de dados Amazon Relational Database Service (Amazon RDS) executando o mesmo mecanismo.

Para converter seu esquema de banco de dados, siga estas etapas:

  1. Crie regras de migração no AWS SCT.
  2. Converta seu esquema usando o AWS SCT.
  3. Salve e aplique seu esquema convertido no AWS SCT.

Para obter mais informações, consulte Conversão de esquemas de banco de dados usando o AWS SCT.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?