AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Come posso utilizzare attività AWS DMS per migrare un database Amazon RDS per MySQL che non utilizza un fuso orario UTC?
Ho un database Amazon Relational Database Service (Amazon RDS) di origine e di destinazione per MySQL che non utilizza un fuso orario UTC. Desidero utilizzare un'attività AWS Database Migration Service (AWS DMS) per eseguire la migrazione del database.
Breve descrizione
Se l'istanza database RDS per MySQL di origine o di destinazione non utilizza un fuso orario UTC, i dati del timestamp possono essere incoerenti dopo la migrazione di AWS DMS. Internamente, RDS per MySQL memorizza la colonna timestamp come UTC. Quando selezioni una data, RDS per MySQL converte automaticamente la colonna timestamp nel fuso orario della sessione corrente.
Ad esempio, hai un database RDS per MySQL di origine che viene eseguito in Australia/Sydney e un database RDS di destinazione per MySQL che viene eseguito in UTC. Quando l'attività AWS DMS acquisisce e applica i dati come UTC dall'origine alla destinazione, i dati non sono coerenti.
Per risolvere questo problema, utilizza l’attributo di connessione extra (ECA) Initstmt=SET time_zone='+00:00'; per l'endpoint di destinazione di AWS DMS. Per ulteriori informazioni, consulta Step 6: Create AWS DMS source and target endpoints (Passaggio 6: crea endpoint di origine e di destinazione di AWS DMS).
Risoluzione
Importante: prima di eseguire la migrazione dei dati, devi eseguire un comando CREATE TABLE per l'attività AWS DMS. Per ulteriori informazioni, consulta CREATE TABLE statement (Istruzione CREATE TABLE) sul sito web MySQL.
Esempio di comando CREATE TABLE:
create table sample_schema.dms_tz_table ( id int not null, info varchar(30), ts timestamp null default null, primary key (id) ) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci;
Migrazione senza ECA Initstmt nell'endpoint di destinazione
Nell'esempio seguente, il database di origine si trova nel fuso orario Australia/Sydney, mentre il database di destinazione si trova nel fuso orario America/Caracas. Inoltre, il database di origine non include l'ECA Initstmt nell'endpoint di destinazione.
Per controllare i parametri del database di origine e di destinazione, esegui questa query:
SELECT @@global.time_zone, @@session.time_zone;
Output del database di origine:
@@global.time_zone|@@session.time_zone| ------------------+-------------------+ Australia/Sydney |Australia/Sydney |
Output del database di destinazione:
@@global.time_zone|@@session.time_zone| ------------------+-------------------+ America/Caracas |America/Caracas |
Per preparare i dati per un carico completo, esegui questi comandi:
insert into sample_schema.dms_tz_table(id, info, ts) values(1, 'FL', CURRENT_TIMESTAMP); insert into sample_schema.dms_tz_table(id, info, ts) values(2, 'FL','2025-12-18 19:03:01');
Esegui l'attività AWS DMS in modalità caricamento completo e acquisizione dei dati di modifica (CDC). Una volta completato il caricamento completo, esegui questi comandi per inserire i dati CDC nel database di origine:
insert into sample_schema.dms_tz_table(id, info, ts) values(3, 'CDC', CURRENT_TIMESTAMP); insert into sample_schema.dms_tz_table(id, info, ts) values(4, 'CDC', '2025-09-01 19:05:01');
Per controllare i dati nei database di origine e di destinazione, esegui questa query SQL sia nel database di origine che in quello di destinazione:
select t.* from sample_schema.dms_tz_table t;
L'output seguente mostra i dati dei database di origine e di destinazione:
|Source Australia/Sydney | Target America/Caracas| |-------------------------------------------------------| |id|info| ts|id|info| ts| |--+----+-------------------+--+----+-------------------+ |1 |FL |2025-12-19 02:12:47|1 |FL |2025-12-18 15:12:47| |2 |FL |2025-12-18 19:03:01|2 |FL |2025-12-18 08:03:01| |3 |CDC |2025-12-19 02:17:40|3 |CDC |2025-12-18 11:17:40| |4 |CDC |2025-09-01 19:05:01|4 |CDC |2025-09-01 05:05:01|
I dati del timestamp non sono coerenti tra i database di origine e di destinazione.
Migrazione con ECA Initstmt nell'endpoint di destinazione
Nell'esempio seguente, il database di origine si trova nel fuso orario Australia/Sydney, mentre il database di destinazione si trova nel fuso orario America/Caracas. Il database di origine include l'ECA Initstmt=SET time_zone='+00:00'; nell'endpoint di destinazione di AWS DMS.
Per controllare i parametri del database di origine e di destinazione, esegui questa query:
SELECT @@global.time_zone, @@session.time_zone;
Output del database di origine:
@@global.time_zone|@@session.time_zone| ------------------+-------------------+ Australia/Sydney |Australia/Sydney |
Output del database di destinazione:
@@global.time_zone|@@session.time_zone| ------------------+-------------------+ America/Caracas |America/Caracas |
Per preparare i dati per un carico completo, esegui questi comandi:
insert into sample_schema.dms_tz_table(id, info, ts) values(1, 'FL', CURRENT_TIMESTAMP); insert into sample_schema.dms_tz_table(id, info, ts) values(2, 'FL','2025-09-01 19:03:01');
Esegui l'attività AWS DMS in modalità caricamento completo e CDC. Una volta completato il caricamento completo, esegui questi comandi per inserire i dati CDC nel database di origine:
insert into sample_schema.dms_tz_table(id, info, ts) values(3, 'CDC', CURRENT_TIMESTAMP); insert into sample_schema.dms_tz_table(id, info, ts) values(4, 'CDC', '2025-09-01 19:05:01');
Per controllare i dati nei database di origine e di destinazione, esegui questa query SQL sia nel database di origine che in quello di destinazione:
select t.* from sample_schema.dms_tz_table t;
L'output seguente mostra i dati dei database di origine e di destinazione:
|Source Australia/Sydney | Target America/Caracas| |-------------------------------------------------------| |id|info| ts|id|info| ts| |--+----+-------------------+--+----+-------------------+ |1 |FL |2025-09-03 00:44:31|1 |FL |2025-09-02 10:44:31| |2 |FL |2025-09-01 19:03:01|2 |FL |2025-09-01 05:03:01| |3 |CDC |2025-09-03 00:48:15|3 |CDC |2025-09-02 10:48:15| |4 |CDC |2025-09-01 19:05:01|4 |CDC |2025-09-01 05:05:01|
Migrazione con ECA Initstmt nell'endpoint di destinazione per un database di destinazione nel fuso orario UTC
Nell'esempio seguente, il database di origine si trova nel fuso orario Australia/Sydney, mentre il database di destinazione si trova nel fuso orario UTC. Il database di origine include l'ECA Initstmt=SET time_zone='+00:00'; nell'endpoint di destinazione di AWS DMS.
Per controllare i parametri del database di origine e di destinazione, esegui questa query:
SELECT @@global.time_zone, @@session.time_zone;
Output del database di origine:
@@global.time_zone|@@session.time_zone| ------------------+------------------+ Australia/Sydney |Australia/Sydney |
Output del database di destinazione:
@@global.time_zone|@@session.time_zone| ------------------+------------------+ UTC |UTC |
Per preparare i dati per un carico completo, esegui questi comandi:
insert into sample_schema.dms_tz_table(id, info, ts) values(1, 'FL', CURRENT_TIMESTAMP); insert into sample_schema.dms_tz_table(id, info, ts) values(2, 'FL','2025-09-01 19:03:01');
Esegui l'attività AWS DMS in modalità caricamento completo e CDC. Una volta completato il caricamento completo, esegui questi comandi per inserire i dati CDC nel database di origine:
insert into sample_schema.dms_tz_table(id, info, ts) values(3, 'CDC', CURRENT_TIMESTAMP); insert into sample_schema.dms_tz_table(id, info, ts) values(4, 'CDC', '2025-09-01 19:05:01');
Per controllare i dati nei database di origine e di destinazione, esegui questa query SQL sia nel database di origine che in quello di destinazione:
select t.* from sample_schema.dms_tz_table t;
L'output seguente mostra i dati dei database di origine e di destinazione:
|Source Australia/Sydney | Target UTC| |-------------------------------------------------------| |id|info| ts|id|info| ts| |--+----+-------------------+--+----+-------------------+ |1 |FL |2025-09-03 01:02:09|1 |FL |2025-09-02 15:02:09| |2 |FL |2025-09-01 19:03:01|2 |FL |2025-09-01 09:03:01| |3 |CDC |2025-09-03 01:03:37|3 |CDC |2025-09-02 15:03:37| |4 |CDC |2025-09-01 19:05:01|4 |CDC |2025-09-01 09:05:01|
Informazioni correlate
- Argomenti
- Migration & Modernization
- Lingua
- Italiano
