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à.
È possibile migrare i dati su qualsiasi database compatibile con MySQL utilizzando AWS DMS, da uno qualsiasi dei motori di dati di origine che supporta. AWS DMS Se si esegue la migrazione a un database locale compatibile con MySQL, è AWS DMS necessario che il motore di origine risieda all'interno dell'ecosistema. AWS Il motore può essere su un servizio AWS gestito come Amazon RDS, Amazon Aurora o Amazon S3. Oppure il motore può trovarsi su un database autogestito su Amazon EC2.
Puoi utilizzare il protocollo SSL per crittografare le connessioni tra l'endpoint compatibile con MySQL e l'istanza di replica. Per ulteriori informazioni sull'utilizzo di SSL con un endpoint compatibile con MySQL, consulta Utilizzo di SSL con AWS Database Migration Service.
Per informazioni sulle versioni di MySQL supportate come AWS DMS destinazione, vedere. Obiettivi per AWS DMS
È possibile utilizzare i seguenti database compatibili con MySQL come destinazioni per: AWS DMS
-
MySQL Community Edition
-
MySQL Standard Edition
-
MySQL Enterprise Edition
-
MySQL Cluster Carrier Grade Edition
-
MariaDB Community Edition
-
MariaDB Enterprise Edition
-
MariaDB Column Store
-
Amazon Aurora MySQL
Nota
Indipendentemente dal motore di storage di origine (MyISAM, MEMORY e così via), AWS DMS crea una tabella di destinazione compatibile con MySQL come tabella InnoDB per impostazione predefinita.
Se ti occorre una tabella che utilizza un motore di storage diverso da InnoDB, puoi creare manualmente la tabella sulla destinazione compatibile con MySQL e migrare la tabella utilizzando l'opzione Nessuna azione. Per ulteriori informazioni, consulta Impostazioni delle attività di caricamento completo.
Per ulteriori dettagli sull'utilizzo di un database compatibile con MySQL come destinazione per AWS DMS, consulta le sezioni seguenti.
Argomenti
Utilizzo di qualsiasi database compatibile con MySQL come destinazione per AWS Database Migration Service
Prima di iniziare a utilizzare un database compatibile con MySQL come destinazione per AWS DMS, accertati di aver soddisfatto i seguenti prerequisiti:
-
Fornisci un account utente con AWS DMS privilegi di lettura/scrittura per il database compatibile con MySQL. 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 compatibile con MySQL durante un caricamento completo, puoi aggiungere il seguente comando alla sezione Attributi di connessione aggiuntivi 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 valutazioni di premigrazione specifiche per MySQL.
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 compatibile con MySQL come destinazione per AWS Database Migration Service
Quando si utilizza un database MySQL come destinazione AWS DMS , non supporta quanto segue:
-
Le istruzioni DDL (Data Definition Language) TRUNCATE PARTITION, DROP TABLE e RENAME TABLE.
-
L'utilizzo di un'istruzione
ALTER TABLE
per aggiungere colonne all'inizio o al centro di una tabella.table_name
ADD COLUMNcolumn_name
-
Quando si caricano dati su una destinazione compatibile con MySQL 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. Questo comportamento è riconducibile al modo in cui MySQL gestisce i dati locali con il comando
LOAD DATA
. Effettua le seguenti operazioni durante la fase di pieno carico:Disabilita le limitazioni.
Utilizza AWS DMS la convalida per assicurarti che i dati siano coerenti.
-
Quando si aggiorna il valore di una colonna al valore esistente, i database compatibili con MySQL restituiscono un avviso
0 rows affected
. 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 compatibili con MySQL, 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 MySQL versione 5.7. Seleziona Aurora MySQL versione 2.07.1 per utilizzare Aurora serverless compatibile con MySQL 5.7. 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 Amazon RDS, a meno che le istanze non siano in modalità scrivibile,
read_only
ovvero i parametriinnodb_read_only
and non siano impostati su o.0
OFF
Per ulteriori informazioni sull'utilizzo di Amazon RDS e Aurora come destinazioni, consulta gli argomenti seguenti:
Impostazioni degli endpoint quando si utilizza un database compatibile con MySQL come destinazione per AWS DMS
È possibile utilizzare le impostazioni degli endpoint per configurare il database di destinazione compatibile con MySQL in modo simile a come si usano gli attributi aggiuntivi di connessione. Le impostazioni vengono specificate quando si crea l'endpoint di destinazione utilizzando la AWS DMS console o utilizzando il create-endpoint
comando in, con la sintassi JSON. AWS CLI--my-sql-settings '{"
EndpointSetting"
:
"value"
, ...
}'
La tabella riportata di seguito mostra le impostazioni degli endpoint che è possibile utilizzare con MySQL come destinazione.
Nome | Descrizione |
---|---|
|
Specifica la posizione in cui migrare le tabelle di origine sulla destinazione, su un singolo database o su più database. Se si specifica Valore predefinito: Valori validi: { Esempio: |
|
Migliora le prestazioni durante il caricamento dei dati nel database di destinazione compatibile con MySQL. Specifica il numero di thread da utilizzare per caricare i dati nel database di destinazione compatibile con MySQL. 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: |
|
Specifica uno script da eseguire immediatamente dopo la connessione di AWS DMS all'endpoint. Ad esempio, puoi specificare che la destinazione compatibile con MySQL deve convertire le istruzioni ricevute nel set di caratteri latin1, ovvero il set di caratteri compilato predefinito del database. Questo parametro in genere migliora le prestazioni durante la conversione da UTF8 client. Esempio: |
|
Specifica le dimensioni massime (in KB) di qualsiasi file .csv utilizzato per il trasferimento dei dati su database compatibile con MySQL. Valore predefinito: 32.768 KB (32 MB) Valori validi: 1-1.048.576
|
Puoi anche utilizzare gli attributi aggiuntivi di connessione per configurare il database di destinazione compatibile con MySQL.
Nella seguente tabella vengono indicati gli attributi aggiuntivi di connessione utilizzabili con MySQL come destinazione.
Nome | Descrizione |
---|---|
|
Disabilita i controlli delle chiavi esterne. Esempio: |
|
Specifica il fuso orario per il database di destinazione compatibile con MySQL. Valore predefinito: UTC Valori validi: i nomi dei fusi orari disponibili nel database MySQL di destinazione. Esempio: |
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 MySQL
La tabella seguente mostra i tipi di dati di destinazione del database MySQL supportati durante l' AWS DMS utilizzo e la AWS DMS mappatura predefinita dei tipi di dati.
Per ulteriori informazioni sui tipi di AWS DMS dati, vedere. Tipi di dati per AWS Database Migration Service
AWS DMS tipi di dati |
Tipi di dati MySQL |
---|---|
BOOLEAN |
BOOLEAN |
BYTES |
Se la lunghezza è compresa tra 1 e 65.535, utilizzare VARBINARY (lunghezza). Se la lunghezza è compresa tra 65.536 e 2.147.483.647, utilizzare LONGLOB. |
DATE |
DATE |
TIME |
TIME |
TIMESTAMP |
"Se il dimensionamento è => 0 e =< 6, DATETIME (dimensionamento) Se il dimensionamento è => 7 e =< 9, 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, utilizzare VARCHAR (lunghezza). Se la lunghezza è compresa tra 21.846 e 2.147.483.647, utilizzare LONGTEXT. |
UINT1 |
UNSIGNED TINYINT |
UINT2 |
UNSIGNED SMALLINT |
UINT4 |
UNSIGNED INTEGER |
UINT8 |
UNSIGNED BIGINT |
WSTRING |
Se la lunghezza è compresa tra 1 e 32.767, utilizzare VARCHAR (lunghezza). Se la lunghezza è compresa tra 32.768 e 2.147.483.647, utilizzare LONGTEXT. |
BLOB |
Se la lunghezza è compresa tra 1 e 65.535, utilizzare BLOB. Se la lunghezza è compresa tra 65.536 e 2.147.483.647, utilizzare LONGBLOB. Se la lunghezza è 0, utilizzare LONGBLOB (supporto LOB completo). |
NCLOB |
Se la lunghezza è compresa tra 1 e 65.535, utilizzare TEXT. Se la lunghezza è compresa tra 65.536 a 2.147.483.647, utilizzare LONGTEXT con ucs2 per CHARACTER SET. Se la lunghezza è 0, utilizzare LONGTEXT (supporto LOB completo) con ucs2 per CHARACTER SET. |
CLOB |
Se la lunghezza è compresa tra 1 e 65.535, utilizzare TEXT. Se la lunghezza è compresa tra 65.536 e 2147483647, utilizzare LONGTEXT. Se la lunghezza è 0, utilizzare LONGTEXT (supporto LOB completo). |