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 fonte per AWS DMS
Puoi migrare i dati da qualsiasi database SQL compatibile con My (My, SQL MariaDB o Amazon Aurora My) SQL utilizzando Database Migration Service. AWS
Per informazioni sulle versioni di My SQL AWS DMS supportate come fonte, consulta. Fonti per AWS DMS
È possibile 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 di SSL con AWS Database Migration Service
Nelle sezioni seguenti, il termine «gestione automatica» si applica a qualsiasi database installato in locale o su Amazon. EC2 Il termine "AWS-managed» si applica a qualsiasi database su AmazonRDS, Amazon Aurora o Amazon S3.
Per ulteriori dettagli sull'utilizzo di database SQL compatibili con My e AWS DMS, consulta le seguenti sezioni.
Argomenti
- Migrazione da My SQL a My utilizzando SQL AWS DMS
- Utilizzo di qualsiasi database compatibile con My come origine per SQL AWS DMS
- Utilizzo di un database autogestito compatibile con My come SQL origine per AWS DMS
- Utilizzo AWS di un database SQL compatibile con My gestito come fonte per AWS DMS
- Limitazioni all'utilizzo di un database My come fonte SQL per AWS DMS
- Supporto per transazione XA
- Impostazioni degli endpoint quando si utilizza My come fonte per SQL AWS DMS
- Tipi di dati di origine per My SQL
Migrazione da My SQL a My utilizzando SQL AWS DMS
Per una migrazione eterogenea, in cui si esegue la migrazione da un motore di database diverso da My SQL a un SQL database, AWS DMS è quasi sempre lo strumento di migrazione migliore da utilizzare. Tuttavia, per una migrazione omogenea, in cui si esegue la migrazione da un database My a un SQL database My, si consiglia di utilizzare un progetto di migrazione dei dati omogeneo. Le migrazioni di dati omogenee utilizzano strumenti di database nativi per fornire prestazioni e precisione di migrazione dei dati migliori rispetto a. SQL AWS DMS
Utilizzo di qualsiasi database compatibile con My come origine per SQL AWS DMS
Prima di iniziare a utilizzare un SQL database My come fonte per AWS DMS, assicurati di disporre dei seguenti prerequisiti. Questi prerequisiti si applicano sia alle fonti autogestite che a quelle gestite AWS.
È necessario disporre di un account con il ruolo di AWS DMS amministratore di replica. Il ruolo richiede i seguenti privilegi:
-
REPLICATIONCLIENT— Questo privilegio è richiesto solo per le CDC attività. In altre parole, le full-load-only attività non richiedono questo privilegio.
-
REPLICATIONSLAVE— Questo privilegio è richiesto solo per le CDC attività. In altre parole, le full-load-only attività non richiedono questo privilegio.
-
SUPER— Questo privilegio è richiesto solo nelle mie SQL versioni precedenti alla 5.6.6.
L' AWS DMS utente deve inoltre disporre dei SELECT privilegi per le tabelle di origine destinate alla replica.
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
Utilizzo di un database autogestito compatibile con My come SQL origine per AWS DMS
È possibile utilizzare i seguenti database autogestiti SQL compatibili con My come fonti per: AWS DMS
-
My Community Edition SQL
-
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
Per utilizzarloCDC, assicurati di abilitare la registrazione binaria. Per abilitare la registrazione binaria, è necessario configurare i seguenti parametri nel file My SQL my.ini
(Windows) o my.cnf
(UNIX).
Parametro |
Valore |
---|---|
|
Imposta questo parametro su un valore uguale o maggiore di 1. |
|
Imposta il percorso del file di log binario, ad esempio |
|
Imposta questo parametro su |
|
Imposta questo parametro su un valore uguale o maggiore di 1. Per prevenire un utilizzo eccessivo di spazio su disco, si consiglia di non utilizzare il valore predefinito di 0. |
|
Imposta questo parametro sulla DMS versione 3.4.7 o precedente. |
|
Imposta questo parametro su |
|
Imposta questo parametro su |
Se si utilizza una replica di lettura My SQL o MariaDB come origine per DMS un'attività di migrazione utilizzando la modalità Migra dati esistenti e replica le modifiche in corso, esiste la possibilità di perdita di dati. DMSnon scriverà una transazione durante il pieno caricamento o nelle seguenti condizioni: CDC
La transazione era stata salvata nell'istanza principale prima dell'inizio dell'DMSattività.
La transazione era stata salvata nella replica solo dopo l'avvio dell'DMSattività, a causa del ritardo tra l'istanza principale e la replica.
Maggiore è il ritardo tra l'istanza principale e la replica, maggiore è il rischio di perdita di dati.
Se l'origine utilizza il motore di database NDB (in cluster), è necessario configurare i seguenti parametri per l'attivazione CDC nelle tabelle che utilizzano tale motore di archiviazione. Aggiungi queste modifiche nel file My SQL my.ini
(Windows) o my.cnf
(UNIX).
Parametro |
Valore |
---|---|
|
Imposta questo parametro su |
|
Imposta questo parametro su |
|
Imposta questo parametro su |
Utilizzo AWS di un database SQL compatibile con My gestito come fonte per AWS DMS
È possibile utilizzare i seguenti database SQL compatibili con My AWS gestiti come fonti per: AWS DMS
-
My Community Edition SQL
-
MariaDB Community Edition
-
Edizione compatibile con Amazon Aurora My SQL
Quando utilizzi un database SQL compatibile con My AWS gestito come origine per AWS DMS, assicurati di avere i seguenti prerequisiti per: CDC
-
Per abilitare i log binari per My SQL e RDS RDS per MariaDB, abilita i backup automatici a livello di istanza. Per abilitare i log binari per un cluster Aurora SQL My, modifica la
binlog_format
variabile nel gruppo di parametri.Per ulteriori informazioni sulla configurazione dei backup automatici, consulta Working with automatic backup nella Amazon RDS User Guide.
Per ulteriori informazioni sulla configurazione della registrazione binaria per un SQL database Amazon RDS for My, consulta Impostazione del formato di registrazione binaria nella Amazon RDS User Guide.
Per ulteriori informazioni sulla configurazione della registrazione binaria per un cluster Aurora SQL My, vedi Come si attiva la registrazione binaria per il mio cluster Amazon Aurora
My? SQL . -
Se prevedi di utilizzarloCDC, attiva la registrazione binaria. Per ulteriori informazioni sulla configurazione della registrazione binaria per un SQL database Amazon RDS for My, consulta Impostazione del formato di registrazione binaria nella Amazon RDS User Guide.
-
Assicurati che i log binari siano disponibili per. AWS DMS Poiché i database SQL compatibili con AWS-managed My eliminano i log binari il prima possibile, è necessario aumentare il periodo di tempo in cui i log rimangono disponibili. Ad esempio, per aumentare il periodo di conservazione dei log binari a 24 ore, esegui il comando seguente.
call mysql.rds_set_configuration('binlog retention hours', 24);
-
Imposta il parametro
binlog_format
su"ROW"
.Nota
Su My SQL o MariaDB
binlog_format
, è un parametro dinamico, quindi non è necessario riavviare il computer per rendere effettivo il nuovo valore. Tuttavia, il nuovo valore verrà applicato solo alle nuove sessioni. Se si passabinlog_format
suROW
per scopi di replica, il database può comunque creare log binari successivi utilizzando il formatoMIXED
, se tali sessioni sono iniziate prima della modifica del valore. Ciò potrebbe AWS DMS impedire la corretta acquisizione di tutte le modifiche sul database di origine. Quando modifichi l'binlog_format
impostazione su un database MariadB o SQL My, assicurati di riavviare il database per chiudere tutte le sessioni esistenti o riavvia qualsiasi applicazione che DML esegue operazioni (Data Manipulation Language). Forzando il database a riavviare tutte le sessioni dopo aver modificato ilbinlog_format
parametroROW
si assicurerà che il database scriva tutte le successive modifiche al database di origine utilizzando il formato corretto, in modo che sia AWS DMS possibile acquisire correttamente tali modifiche. -
Imposta il parametro
binlog_row_image
su"Full"
. -
Imposta il
binlog_checksum
parametro sulla DMS versione 3.4.7 o precedente."NONE"
Per ulteriori informazioni sull'impostazione dei parametri in Amazon RDS MySQL, consulta Working with automatic backup nella Amazon RDS User Guide. -
Se utilizzi una replica di lettura Amazon RDS My SQL o Amazon RDS MariaDB come origine, abilita i backup sulla replica di lettura e assicurati che il parametro sia impostato su.
log_slave_updates
TRUE
Limitazioni all'utilizzo di un database My come fonte SQL per AWS DMS
Quando utilizzate un SQL database My come fonte, tenete presente quanto segue:
-
Change Data Capture (CDC) non è supportato per Amazon RDS My SQL 5.5 o versioni precedenti. Per Amazon RDS MySQL, devi utilizzare la versione 5.6, 5.7 o 8.0 per abilitarlo. CDC CDCè supportato per le sorgenti My 5.5 autogestite. SQL
-
PerCDC,
CREATE TABLE
ADD COLUMN
, e per laDROP COLUMN
modifica del tipo di dati della colonna, erenaming a column
sono supportati. TuttaviaDROP TABLE
,RENAME TABLE
e gli aggiornamenti apportati ad altri attributi, come il valore predefinito della colonna, la nullabilità delle colonne, il set di caratteri e così via, non sono supportati. -
Per le tabelle partizionate sull'origine, quando imposti la modalità di preparazione della tabella di Target su Drop tables on target, AWS DMS crea una tabella semplice senza partizioni sulla destinazione My. SQL Per migrare le tabelle partizionate in una tabella partizionata sulla destinazione, precrea le tabelle partizionate sul database My di destinazione. SQL
-
L'utilizzo di un'
ALTER TABLE
istruzione per aggiungere colonne all'inizio (FIRST) o al centro di una tabella () non è supportato. AFTER Le colonne vengono sempre aggiunte alla fine della tabella.table_name
ADD COLUMNcolumn_name
-
CDCnon è supportato quando il nome di una tabella contiene caratteri maiuscoli e minuscoli e il motore di origine è ospitato su un sistema operativo con nomi di file senza distinzione tra maiuscole e minuscole. Un esempio è Microsoft Windows o OS X che utilizzano HFS +.
-
Puoi usare Aurora My SQL -Compatible Edition Serverless v1 a pieno carico, ma non puoi usarlo per. CDC Questo perché non puoi abilitare i prerequisiti per My. SQL Per ulteriori informazioni, consulta Parameter groups and Aurora Serverless v1.
Supporta Aurora My SQL -Compatible Edition Serverless v2. CDC
-
L'INCREMENTattributo AUTO _ su una colonna non viene migrato in una colonna del database di destinazione.
-
L'acquisizione delle modifiche quando i log binari non sono archiviati su uno storage a blocchi standard non è supportata. Ad esempio, CDC non funziona quando i log binari sono archiviati su Amazon S3.
-
AWS DMS crea tabelle di destinazione con il motore di archiviazione InnoDB per impostazione predefinita. Se è necessario utilizzare un motore di storage diverso da InnoDB, occorre creare manualmente la tabella ed eseguirvi la migrazione utilizzando la modalità nessuna azione.
-
Non è possibile utilizzare Aurora My SQL replicas come origine a AWS DMS meno che la modalità attività di DMS migrazione non sia Migrazione dei dati esistenti, solo a pieno carico.
-
Se l'origine SQL compatibile con My viene interrotta durante il caricamento completo, l' AWS DMS attività non si interrompe con un errore. L'attività termina correttamente, ma la destinazione potrebbe non essere sincronizzata con l'origine. In questo caso, riavvia l'attività o ricarica le tabelle interessate.
-
Gli indici creati su una parte di un valore di colonna non vengono migrati. Ad esempio, l'indice CREATE INDEX first_ten_chars ON customer (name (10)) non viene creato sulla destinazione.
-
In alcuni casi, l'attività è configurata per non essere replicata LOBs (» SupportLobs "è false nelle impostazioni dell'attività oppure l'opzione Non includere LOB colonne è stata scelta nella console attività). In questi casi, AWS DMS non migra alcuna LONGTEXT colonnaMEDIUMBLOB, LONGBLOBMEDIUMTEXT, e verso la destinazione.
BLOB, TINYBLOBTEXT, e TINYTEXT le colonne non sono interessate e vengono migrate verso la destinazione.
-
Le tabelle di dati temporali o le tabelle con versioni di sistema non sono supportate nei database di origine e di destinazione di MariaDB.
-
In caso di migrazione tra due cluster Amazon RDS Aurora My, l'endpoint Aurora SQL SQL My source deve essere un'RDSistanza di lettura/scrittura, non un'istanza di replica.
-
AWS DMS attualmente non supporta la migrazione delle visualizzazioni per MariadB.
-
AWS DMS non supporta le DDL modifiche alle tabelle partizionate per My. SQL Per saltare la sospensione della tabella per le DDL modifiche alle partizioni duranteCDC, imposta su.
skipTableSuspensionForPartitionDdl
true
-
AWS DMS supporta solo transazioni XA nella versione 3.5.0 e successive. Le versioni precedenti non supportano le transazioni XA. AWS DMS non supporta le transazioni XA nella versione 10.6 di MariadB. Per ulteriori informazioni, consulta la sezione seguente: Supporto per transazione XA.
-
AWS DMS non viene utilizzato GTIDs per la replica, anche se i dati di origine li contengono.
-
AWS DMS non supporta il log binario SQL avanzato di Aurora My.
-
AWS DMS non supporta la compressione delle transazioni di log binario.
-
AWS DMS non propaga UPDATE CASCADE gli eventi ON DELETE CASCADE e ON per i miei SQL database utilizzando il motore di archiviazione InnoDB. Per questi eventi, My SQL non genera eventi binlog per riflettere le operazioni a cascata sulle tabelle secondarie. Di conseguenza, non è AWS DMS possibile replicare le modifiche corrispondenti alle tabelle secondarie. Per ulteriori informazioni, consulta Indici, chiavi esterne o aggiornamenti o eliminazioni a cascata non migrati.
-
AWS DMS non acquisisce le modifiche alle colonne calcolate (
VIRTUAL
eGENERATED ALWAYS
). Per ovviare a questa limitazione, esegui queste operazioni:Crea in anticipo la tabella di destinazione nel database di destinazione e crea l'attività AWS DMS con l'impostazione dell'attività di pieno carico
DO_NOTHING
oTRUNCATE_BEFORE_LOAD
.Aggiungi una regola di trasformazione per rimuovere la colonna calcolata dall'ambito dell'attività. Per informazioni sulle regole di trasformazione, consulta Operazioni e regole di trasformazione.
Supporto per transazione XA
Una transazione Extended Architecture (XA) è una transazione che può essere utilizzata per raggruppare una serie di operazioni da più risorse transazionali in un'unica transazione globale affidabile. Una transazione XA utilizza un protocollo di commit in due fasi. In generale, l'acquisizione delle modifiche mentre sono presenti transazioni XA aperte potrebbe portare alla perdita di dati. Se il database non utilizza transazioni XA, puoi ignorare questa autorizzazione e la configurazione IgnoreOpenXaTransactionsCheck
utilizzando il valore predefinito TRUE
. Per iniziare la replica da un'origine che contiene transazioni XA, effettua le seguenti operazioni:
Assicurati che l'utente dell' AWS DMS endpoint disponga delle seguenti autorizzazioni:
grant XA_RECOVER_ADMIN on *.* to 'userName'@'%';
Configura l'impostazione dell'endpoint
IgnoreOpenXaTransactionsCheck
sufalse
.
Nota
AWS DMS non supporta le transazioni XA su MariaDB Source DB versione 10.6.
Impostazioni degli endpoint quando si utilizza My come fonte per SQL AWS DMS
È possibile utilizzare le impostazioni degli endpoint per configurare il database My SQL source in modo simile all'utilizzo di attributi di connessione aggiuntivi. Le impostazioni vengono specificate quando si crea l'endpoint di origine utilizzando la AWS DMS console o utilizzando il create-endpoint
comando contenuto in AWS CLI, con la --my-sql-settings '{"
JSON sintassi.EndpointSetting"
:
"value"
, ...
}'
La tabella seguente mostra le impostazioni dell'endpoint che è possibile utilizzare con My SQL come sorgente.
Nome | Descrizione |
---|---|
EventsPollInterval |
Specifica la frequenza di controllo del log binario per nuove modifiche/eventi quando il database è inattivo. Valore predefinito: 5 Valori validi: 1-60 Esempio: Nell'esempio, AWS DMS verifica le modifiche nei log binari ogni cinque secondi. |
ExecuteTimeout |
Per AWS DMS le versioni 3.4.7 e successive, imposta il timeout dell'istruzione client per un endpoint My SQL source, in secondi. Valore predefinito: 60 Esempio: |
ServerTimezone |
Speciifica il fuso orario per il database My di origine. SQL Esempio: |
AfterConnectScript |
Speciifica uno script da eseguire immediatamente dopo la AWS DMS connessione all'endpoint. L'attività di migrazione continua a essere eseguita indipendentemente dal fatto che l'SQListruzione abbia esito positivo o negativo. Valori validi: una o più SQL istruzioni valide, contrassegnate da un punto e virgola. Esempio: |
CleanSrcMetadataOnMismatch
|
Esegue la pulizia e crea nuovamente le informazioni dei metadati delle tabelle sull'istanza di replica se si verifica una mancata corrispondenza. Ad esempio, in una situazione in cui l'esecuzione di un alter DDL sulla tabella potrebbe generare informazioni diverse sulla tabella memorizzata nella cache dell'istanza di replica. booleano. Valore predefinito: Esempio: |
skipTableSuspensionForPartitionDdl
|
AWS DMS non supporta le DDL modifiche per le tabelle partizionate per My. SQL Per AWS DMS le versioni 3.4.6 e successive, impostandola in modo da Valore predefinito: Esempio: |
IgnoreOpenXaTransactionsCheck
|
Per AWS DMS le versioni 3.5.0 e successive, specifica se le attività devono ignorare le transazioni XA aperte all'avvio. Imposta su Valore predefinito: Esempio: |
Tipi di dati di origine per My SQL
La tabella seguente mostra i tipi di dati di origine del SQL database My supportati durante l'utilizzo AWS DMS e la mappatura predefinita dei tipi di AWS DMS dati.
Per informazioni su come visualizzare il tipo di dati mappato nella destinazione, consulta la sezione relativa all'endpoint di destinazione che stai utilizzando.
Per ulteriori informazioni sui tipi di AWS DMS dati, vedereTipi di dati per AWS Database Migration Service.
I miei tipi di SQL dati |
AWS DMS tipi di dati |
---|---|
INT |
INT4 |
BIGINT |
INT8 |
MEDIUMINT |
INT4 |
TINYINT |
INT1 |
SMALLINT |
INT2 |
UNSIGNED TINYINT |
UINT1 |
UNSIGNED SMALLINT |
UINT2 |
UNSIGNED MEDIUMINT |
UINT4 |
UNSIGNED INT |
UINT4 |
UNSIGNED BIGINT |
UINT8 |
DECIMAL(10) |
NUMERIC(10,0) |
BINARY |
BYTES(1) |
BIT |
BOOLEAN |
BIT(64) |
BYTES(8) |
BLOB |
BYTES(65535) |
LONGBLOB |
BLOB |
MEDIUMBLOB |
BLOB |
TINYBLOB |
BYTES(255) |
DATE |
DATE |
DATETIME |
DATETIME DATETIMEsenza un valore tra parentesi viene replicato senza millisecondi. DATETIMEcon un valore tra parentesi compreso tra 1 e 5 (ad esempio) viene replicato in millisecondi. Quando si replica una DATETIME colonna, il tempo rimane lo stesso sulla destinazione. Non viene convertito in. UTC |
TIME |
STRING |
TIMESTAMP |
DATETIME Quando si replica una TIMESTAMP colonna, l'ora viene convertita in UTC sulla destinazione. |
YEAR |
INT2 |
DOUBLE |
REAL8 |
FLOAT |
REAL(DOUBLE) Se i FLOAT valori non rientrano nell'intervallo seguente, usa una trasformazione a cui mappareFLOAT. STRING Per ulteriori informazioni sulle trasformazioni, consulta Operazioni e regole di trasformazione. L'FLOATintervallo supportato è compreso tra -1,79E+308 e -2,23E-308, 0 e 2,23E-308 fino a 1,79E+308 |
VARCHAR(45) |
WSTRING(45) |
VARCHAR(2000) |
WSTRING(2000) |
VARCHAR(4000) |
WSTRING(4000) |
VARBINARY(4000) |
BYTES(4000) |
VARBINARY(2000) |
BYTES(2000) |
CHAR |
WSTRING |
TEXT |
WSTRING |
LONGTEXT |
NCLOB |
MEDIUMTEXT |
NCLOB |
TINYTEXT |
WSTRING(255) |
GEOMETRY |
BLOB |
POINT |
BLOB |
LINESTRING |
BLOB |
POLYGON |
BLOB |
MULTIPOINT |
BLOB |
MULTILINESTRING |
BLOB |
MULTIPOLYGON |
BLOB |
GEOMETRYCOLLECTION |
BLOB |
ENUM |
WSTRING ( Ecco |
SET |
WSTRING ( Ecco, |
JSON |
CLOB |
Nota
In alcuni casi, è possibile specificare i tipi di TIMESTAMP dati DATETIME e con un valore «zero» (ovvero 0000-00-00). In tal caso, assicuratevi che il database di destinazione nell'attività di replica supporti valori «zero» per i DATETIME tipi di dati e. TIMESTAMP In caso contrario, tali valori vengono registrati come null nella destinazione.