Usando um banco SQL de dados compatível com My como destino para AWS Database Migration Service - AWS Database Migration Service

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á.

Usando um banco SQL de dados compatível com My como destino para AWS Database Migration Service

Você pode migrar dados para qualquer banco de dados SQL compatível com My usando AWS DMS, de qualquer um dos mecanismos de dados de origem compatíveis AWS DMS . Se você estiver migrando para um banco de dados local SQL compatível com My, é AWS DMS necessário que seu mecanismo de origem resida no ecossistema. AWS O mecanismo pode estar em um serviço AWS gerenciado, como AmazonRDS, Amazon Aurora ou Amazon S3. Ou o mecanismo pode estar em um banco de dados autogerenciado na AmazonEC2.

Você pode usar SSL para criptografar conexões entre seu endpoint SQL compatível com My e a instância de replicação. Para obter mais informações sobre como usar SSL com um endpoint SQL compatível com My, consulte. Usando SSL com AWS Database Migration Service

Para obter informações sobre as versões do My SQL que oferecem AWS DMS suporte como destino, consulteMetas para AWS DMS.

Você pode usar os seguintes bancos de dados SQL compatíveis com My como destinos para AWS DMS:

  • Edição My SQL Community

  • Minha edição SQL padrão

  • Edição My SQL Enterprise

  • Edição My SQL Cluster Carrier Grade

  • MariaDB Community Edition

  • MariaDB Enterprise Edition

  • MariaDB Column Store

  • Amazon Aurora My SQL

nota

Independentemente do mecanismo de armazenamento de origem (MyISAM,MEMORY, etc.), AWS DMS cria uma tabela SQL de destino compatível com My como uma tabela InnoDB por padrão.

Se precisar de uma tabela em um mecanismo de armazenamento diferente do InnoDB, você pode criar manualmente a tabela no destino SQL compatível com My e migrar a tabela usando a opção Não fazer nada. Para obter mais informações, consulte Configurações de tarefa de carregamento completo.

Para obter detalhes adicionais sobre como trabalhar com um banco SQL de dados compatível com My como destino AWS DMS, consulte as seções a seguir.

Usando qualquer banco SQL de dados compatível com My como destino para AWS Database Migration Service

Antes de começar a trabalhar com um banco SQL de dados compatível com My como destino para AWS DMS, certifique-se de ter preenchido os seguintes pré-requisitos:

  • Forneça uma conta de usuário AWS DMS que tenha privilégios de leitura/gravação no banco de dados compatível com MySQL. Para criar os privilégios necessários, execute os seguintes comandos.

    CREATE USER '<user acct>'@'%' IDENTIFIED BY '<user password>'; GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON <schema>.* TO '<user acct>'@'%'; GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
  • Durante a fase de migração de carga máxima, você precisa desativar as chaves externas nas suas tabelas de destino. Para desativar as verificações de chave estrangeira em um banco SQL de dados compatível com My durante um carregamento completo, você pode adicionar o seguinte comando à seção Atributos de conexão extra do AWS DMS console do seu endpoint de destino.

    Initstmt=SET FOREIGN_KEY_CHECKS=0;
  • Defina o parâmetro local_infile = 1 do banco de dados para permitir que o AWS DMS carregue dados no banco de dados de destino.

  • Conceda os seguintes privilégios se você usar minhas avaliações SQL de pré-migração específicas.

    grant select on mysql.user to <dms_user>; grant select on mysql.db to <dms_user>; grant select on mysql.tables_priv to <dms_user>; grant select on mysql.role_edges to <dms_user> #only for MySQL version 8.0.11 and higher

Limitações no uso de um banco SQL de dados compatível com My como destino para AWS Database Migration Service

Ao usar Meu SQL banco de dados como destino, AWS DMS não oferece suporte ao seguinte:

  • As instruções da linguagem de definição de dados (DDL) TRUNCATE PARTITION DROPTABLE, RENAME TABLE e.

  • Uso de uma declaração ALTER TABLE table_name ADD COLUMN column_name para adicionar colunas ao início ou meio de uma tabela.

  • Ao carregar dados em um destino SQL compatível com My em uma tarefa de carregamento total, AWS DMS não relata erros causados por restrições nos registros de tarefas, o que pode causar erros de chave duplicados ou incompatibilidades com o número de registros. Isso é causado pela forma como My SQL manipula dados locais com o LOAD DATA comando. Faça o seguinte durante a fase de carga máxima:

    • Desativar restrições

    • Use a AWS DMS validação para garantir que os dados sejam consistentes.

  • Quando você atualiza o valor de uma coluna para o valor existente, os bancos de dados SQL compatíveis com My retornam um 0 rows affected aviso. Embora esse comportamento não seja tecnicamente um erro, ele é diferente de como a situação é controlada por outros mecanismos de banco de dados. Por exemplo, o Oracle executa uma atualização de uma linha. Para bancos de dados SQL compatíveis com My, AWS DMS gera uma entrada na tabela de controle awsdms_apply_exceptions e registra o seguinte aviso.

    Some changes from the source database had no impact when applied to the target database. See awsdms_apply_exceptions table for details.
  • O Aurora Serverless está disponível como destino para o Amazon Aurora versão 2, compatível com o My versão 5.7. SQL (Selecione Aurora My SQL versão 2.07.1 para poder usar o Aurora Serverless com compatibilidade com o My 5.7.) SQL Para obter mais informações sobre o Aurora Serverless, consulte Como usar o Aurora Serverless v2 no Guia do usuário do Amazon Aurora.

  • AWS DMS não suporta o uso de um endpoint de leitura para Aurora ou RDS Amazon, a menos que as instâncias estejam no modo gravável, ou seja, read_only os parâmetros innodb_read_only e estejam definidos como ou. 0 OFF Para obter mais informações sobre o uso da Amazon RDS e da Aurora como destinos, consulte o seguinte:

Configurações de endpoint ao usar um banco de dados SQL compatível com My como destino para AWS DMS

Você pode usar as configurações do endpoint para configurar seu banco de dados SQL de destino compatível com My, de forma semelhante ao uso de atributos de conexão extras. Você especifica as configurações ao criar o endpoint de destino usando o AWS DMS console ou usando o create-endpoint comando no AWS CLI, com a --my-sql-settings '{"EndpointSetting": "value", ...}' JSON sintaxe.

A tabela a seguir mostra as configurações de endpoint que você pode usar com My SQL como destino.

Nome Descrição

TargetDbType

Especifica o destino para onde devem migrar as tabelas de origem, seja para um único banco de dados ou vários. Se você especificarSPECIFIC_DATABASE, precisará especificar o nome do banco de dados, AWS CLI seja ao usar AWS Management Console o.

Valor padrão: MULTIPLE_DATABASES

Valores válidos: {SPECIFIC_DATABASE, MULTIPLE_DATABASES}

Exemplo: --my-sql-settings '{"TargetDbType": "MULTIPLE_DATABASES"}'

ParallelLoadThreads

Melhora o desempenho ao carregar dados no banco de dados SQL de destino compatível com My. Especifica quantos segmentos usar para carregar os dados no banco de dados de destino SQL compatível com My. Configurar um grande número de threads pode ter um efeito adverso no desempenho do banco de dados, pois cada thread requer uma conexão separada.

Valor padrão: 1

Valores válidos: 1 a 5

Exemplo: --my-sql-settings '{"ParallelLoadThreads": 1}'

AfterConnectScript

Especifica um script para ser executado imediatamente após a conexão do AWS DMS com o endpoint.

Por exemplo, você pode especificar que o destino SQL compatível com My traduza as instruções recebidas no conjunto de caracteres latin1, que é o conjunto de caracteres padrão compilado do banco de dados. Esse parâmetro normalmente melhora o desempenho na conversão de UTF8 clientes.

Exemplo: --my-sql-settings '{"AfterConnectScript": "SET character_set_connection='latin1'"}'

MaxFileSize

Especifica o tamanho máximo (em KB) de qualquer arquivo.csv usado para transferir dados para um banco de dados compatível com MySQL.

Valor padrão: 32768 KB (32 MB)

Valores válidos: 1 a 1.048.576

--my-sql-settings '{"MaxFileSize": 512}'

Você também pode usar atributos de conexão extras para configurar seu banco de dados SQL de destino compatível com My.

A tabela a seguir mostra os atributos extras de conexão que você pode usar com My SQL como destino.

Nome Descrição

Initstmt=SET FOREIGN_KEY_CHECKS=0;

Desabilita as verificações de chaves estrangeiras.

Exemplo: --extra-connection-attributes "Initstmt=SET FOREIGN_KEY_CHECKS=0;"

Initstmt=SET time_zone

Especifica o fuso horário do banco de dados SQL compatível com My de destino.

Valor padrão: UTC

Valores válidos: os nomes de fuso horário disponíveis no Meu SQL banco de dados de destino.

Exemplo: --extra-connection-attributes "Initstmt=SET time_zone=US/Pacific;"

Como alternativa, é possível utilizar o parâmetro AfterConnectScript do comando --my-sql-settings para desativar as verificações de chave estrangeira e especificar o fuso horário do banco de dados.

Tipos de dados de destino para My SQL

A tabela a seguir mostra os tipos SQL de dados de destino do Meu banco de dados que são suportados durante o uso AWS DMS e o mapeamento padrão dos tipos de AWS DMS dados.

Para obter informações adicionais sobre AWS DMS os tipos de dados, consulteTipos de dados do AWS Database Migration Service.

AWS DMS tipos de dados

Meus tipos SQL de dados

BOOLEAN

BOOLEAN

BYTES

Se o comprimento for de 1 a 65.535, use VARBINARY (comprimento).

Se o comprimento for de 65.536 a 2.147.483.647, use. LONGLOB

DATE

DATE

TIME

TIME

TIMESTAMP

“Se a escala for => 0 e =< 6, então: DATETIME (Escala)

Se a escala for => 7 e =< 9, então: VARCHAR (37)”

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

DECIMAL(ps, s)

REAL4

FLOAT

REAL8

DOUBLE PRECISION

STRING

Se o comprimento for de 1 a 21.845, use VARCHAR (comprimento).

Se o comprimento for de 21.846 a 2.147.483.647, use. LONGTEXT

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

Se o comprimento for de 1 a 32.767, use VARCHAR (comprimento).

Se o comprimento for de 32.768 a 2.147.483.647, use. LONGTEXT

BLOB

Se o comprimento for de 1 a 65.535, use. BLOB

Se o comprimento for de 65.536 a 2.147.483.647, use. LONGBLOB

Se o comprimento for 0, use LONGBLOB (LOBsuporte total).

NCLOB

Se o comprimento for de 1 a 65.535, use. TEXT

Se o comprimento for de 65.536 a 2.147.483.647, use com ucs2 for. LONGTEXT CHARACTER SET

Se o comprimento for 0, use LONGTEXT (LOBsuporte total) com ucs2 for. CHARACTER SET

CLOB

Se o comprimento for de 1 a 65.535, use. TEXT

Se o comprimento for de 65.536 a 2147483647, use. LONGTEXT

Se o comprimento for 0, use LONGTEXT (LOBsuporte total).