Utilizzo di un database SQL compatibile con My come destinazione per AWS Database Migration Service - AWS Servizio di migrazione del Database

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di un database SQL compatibile con My come destinazione per AWS Database Migration Service

Puoi migrare i dati verso qualsiasi database SQL compatibile con My utilizzando AWS DMS, da uno qualsiasi dei motori di dati di origine che supporta. AWS DMS Se stai migrando a un database locale SQL compatibile con My, è AWS DMS necessario che il motore di origine risieda all'interno dell'ecosistema. AWS Il motore può essere su un servizio AWS gestito come AmazonRDS, Amazon Aurora o Amazon S3. Oppure il motore può trovarsi su un database autogestito su AmazonEC2.

Puoi utilizzarlo SSL per crittografare le connessioni tra l'endpoint SQL compatibile con My e l'istanza di replica. Per ulteriori informazioni sull'utilizzo SSL con un endpoint compatibile con My, SQL consulta. Utilizzo con SSL AWS Database Migration Service

Per informazioni sulle versioni di My SQL AWS DMS supportate come destinazione, consulta. Obiettivi per AWS DMS

È possibile utilizzare i seguenti database SQL compatibili con My come destinazioni per AWS DMS:

  • My SQL Community Edition

  • La mia edizione SQL standard

  • La mia edizione SQL Enterprise

  • La mia edizione SQL Cluster Carrier Grade

  • MariaDB Community Edition

  • MariaDB Enterprise Edition

  • MariaDB Column Store

  • Amazon Aurora My SQL

Nota

Indipendentemente dal motore di archiviazione di origine (My ISAM e così via), AWS DMS crea una tabella di destinazione SQL compatibile con My come tabella InnoDB per impostazione predefinita. MEMORY

Se hai bisogno di una tabella in un motore di archiviazione diverso da InnoDB, puoi creare manualmente la tabella sulla destinazione My SQL -compatible e migrare la tabella utilizzando l'opzione Do nothing. Per ulteriori informazioni, consulta Impostazioni delle attività di caricamento completo.

Per ulteriori dettagli sull'utilizzo di un database SQL compatibile con My come destinazione per AWS DMS, consultate le seguenti sezioni.

Utilizzo di qualsiasi database SQL compatibile con My come destinazione per AWS Database Migration Service

Prima di iniziare a utilizzare un database SQL compatibile con My come destinazione per AWS DMS, assicurati di aver completato i seguenti prerequisiti:

  • Fornisci un account utente con AWS DMS privilegi di lettura/scrittura per il database compatibile con My. SQL Per creare i privilegi necessari, esegui i seguenti comandi.

    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 la fase di migrazione del caricamento completo, devi disabilitare le chiavi esterne sulle tabelle di destinazione. Per disabilitare i controlli delle chiavi esterne su un database SQL compatibile con My durante un caricamento completo, puoi aggiungere il seguente comando alla sezione Extra connection attributes della AWS DMS console per l'endpoint di destinazione.

    Initstmt=SET FOREIGN_KEY_CHECKS=0;
  • Imposta il parametro del database local_infile = 1 per consentire a AWS DMS di caricare i dati nel database di destinazione.

  • Concedi i seguenti privilegi se utilizzi le valutazioni di premigrazione specifiche SQL di My.

    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

Limitazioni all'utilizzo di un database SQL compatibile con My come destinazione per AWS Database Migration Service

Quando si utilizza un SQL database My come destinazione, AWS DMS non supporta quanto segue:

  • Le istruzioni del linguaggio di definizione dei dati (DDL) TRUNCATE PARTITION DROPTABLE, e RENAMETABLE.

  • L'utilizzo di un'istruzione ALTER TABLE table_name ADD COLUMN column_name per aggiungere colonne all'inizio o al centro di una tabella.

  • Quando si caricano dati su una destinazione SQL compatibile con My in un'attività a caricamento completo, AWS DMS non riporta gli errori causati da vincoli nei registri delle attività, che possono causare errori di chiave duplicati o mancate corrispondenze con il numero di record. Ciò è causato dal modo in cui My SQL gestisce i dati locali con il comando. LOAD DATA Effettua le seguenti operazioni durante la fase di pieno carico:

    • Disabilita le limitazioni.

    • Usa AWS DMS la convalida per assicurarti che i dati siano coerenti.

  • Quando aggiorni il valore di una colonna al valore esistente, i database My SQL -compatible restituiscono un 0 rows affected avviso. Sebbene questo comportamento non sia tecnicamente un errore, la situazione è gestita diversamente in altri motori di database. Ad esempio, Oracle esegue un aggiornamento di una riga. Per i database SQL compatibili con My, AWS DMS genera una voce nella tabella di controllo awsdms_apply_exceptions e registra il seguente avviso.

    Some changes from the source database had no impact when applied to the target database. See awsdms_apply_exceptions table for details.
  • Aurora Serverless è disponibile come destinazione per Amazon Aurora versione 2, compatibile con la mia versione 5.7. SQL (Seleziona Aurora My SQL versione 2.07.1 per poter utilizzare Aurora Serverless con compatibilità My 5.7.) SQL Per ulteriori informazioni su Aurora Serverless, consulta Using Aurora Serverless v2 nella Amazon Aurora User Guide.

  • AWS DMS non supporta l'utilizzo di un endpoint reader per Aurora o RDS Amazon, a meno che le istanze non siano in modalità scrivibile, read_only ovvero i parametri innodb_read_only and non siano impostati su o. 0 OFF Per ulteriori informazioni sull'utilizzo di Amazon RDS e Aurora come destinazioni, consulta quanto segue:

Impostazioni degli endpoint quando si utilizza un database SQL compatibile con My come destinazione per AWS DMS

È possibile utilizzare le impostazioni degli endpoint per configurare il database di destinazione SQL compatibile con My in modo simile all'utilizzo di attributi di connessione aggiuntivi. Le impostazioni vengono specificate quando si crea l'endpoint di destinazione utilizzando la AWS DMS console o utilizzando il create-endpoint comando contenuto in AWS CLI, con la sintassi. --my-sql-settings '{"EndpointSetting": "value", ...}' JSON

La tabella seguente mostra le impostazioni dell'endpoint che è possibile utilizzare con My SQL come destinazione.

Nome Descrizione

TargetDbType

Specifica la posizione in cui migrare le tabelle di origine sulla destinazione, su un singolo database o su più database. Se si specificaSPECIFIC_DATABASE, è necessario specificare il nome del database, quando si utilizza il AWS CLI o il AWS Management Console.

Valore predefinito: MULTIPLE_DATABASES

Valori validi: {SPECIFIC_DATABASE, MULTIPLE_DATABASES}

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

ParallelLoadThreads

Migliora le prestazioni durante il caricamento dei dati nel database SQL di destinazione compatibile con My. Speciifica il numero di thread da utilizzare per caricare i dati nel database di destinazione compatibile SQL con My. L'impostazione di un numero elevato di thread può avere ripercussioni negative sulle prestazioni del database, perché è necessaria una connessione separata per ciascun thread.

Valore predefinito: 1

Valori validi: 1-5

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

AfterConnectScript

Specifica uno script da eseguire immediatamente dopo la connessione di AWS DMS all'endpoint.

Ad esempio, è possibile specificare che il target My SQL -compatible debba tradurre le istruzioni ricevute nel set di caratteri latin1, che è il set di caratteri compilato predefinito del database. Questo parametro in genere migliora le prestazioni durante la conversione da client. UTF8

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

MaxFileSize

Speciifica la dimensione massima (in KB) di qualsiasi file con estensione csv utilizzato per trasferire dati a un database compatibile con My. SQL

Valore predefinito: 32.768 KB (32 MB)

Valori validi: 1-1.048.576

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

Puoi anche utilizzare attributi di connessione aggiuntivi per configurare il tuo database di destinazione compatibile con MySQL.

La tabella seguente mostra gli attributi di connessione aggiuntivi che è possibile utilizzare con My SQL come destinazione.

Nome Descrizione

Initstmt=SET FOREIGN_KEY_CHECKS=0;

Disabilita i controlli delle chiavi esterne.

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

Initstmt=SET time_zone

Speciifica il fuso orario per il database di destinazione SQL compatibile con My.

Valore predefinito: UTC

Valori validi: i nomi dei fusi orari disponibili nel database My SQL di destinazione.

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

In alternativa, è possibile utilizzare il parametro AfterConnectScript del comando --my-sql-settings per disabilitare i controlli delle chiavi esterne e specificare il fuso orario del database.

Tipi di dati di destinazione per My SQL

La tabella seguente mostra i tipi di dati di destinazione My SQL database supportati durante l'utilizzo AWS DMS e la mappatura predefinita AWS DMS dei tipi di dati.

Per ulteriori informazioni sui tipi di AWS DMS dati, vedereTipi di dati per AWS Database Migration Service.

AWS DMS tipi di dati

I miei tipi di SQL dati

BOOLEAN

BOOLEAN

BYTES

Se la lunghezza è compresa tra 1 e 65.535, usa VARBINARY (length).

Se la lunghezza è compresa tra 65.536 e 2.147.483.647, usa. LONGLOB

DATE

DATE

TIME

TIME

TIMESTAMP

«Se la scala è => 0 e =< 6, allora: (Scala) DATETIME

Se la scala è => 7 e =< 9, allora: VARCHAR (37)»

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

DECIMAL(p, s)

REAL4

FLOAT

REAL8

DOUBLE PRECISION

STRING

Se la lunghezza è compresa tra 1 e 21.845, usa VARCHAR (length).

Se la lunghezza è compresa tra 21.846 e 2.147.483.647, usa. LONGTEXT

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

Se la lunghezza è compresa tra 1 e 32.767, usa (length). VARCHAR

Se la lunghezza è compresa tra 32.768 e 2.147.483.647, usa. LONGTEXT

BLOB

Se la lunghezza è compresa tra 1 e 65.535, usa. BLOB

Se la lunghezza è compresa tra 65.536 e 2.147.483.647, usa. LONGBLOB

Se la lunghezza è 0, usa (supporto completo). LONGBLOB LOB

NCLOB

Se la lunghezza è compresa tra 1 e 65.535, usa. TEXT

Se la lunghezza è compresa tra 65.536 e 2.147.483.647, usala con ucs2 for. LONGTEXT CHARACTER SET

Se la lunghezza è 0, usa (supporto completo) con ucs2 for. LONGTEXT LOB CHARACTER SET

CLOB

Se la lunghezza è compresa tra 1 e 65.535, allora usa. TEXT

Se la lunghezza è compresa tra 65.536 e 2147483647, usa. LONGTEXT

Se la lunghezza è 0, usa LONGTEXT (supporto completo). LOB