Esportazione di un'istanza MySQL
Esportare un'istanza MySQL in un bucket di storage degli oggetti utilizzando le utility di dump della shell MySQL. Successivamente, puoi utilizzare la funzione di importazione dei dati per importare i dati dal bucket di storage degli oggetti in un sistema DB presente nella stessa area.
Utilizzare una delle seguenti utility di dump:
util.dumpInstance(outputUrl[, options])
: utility di esportazione dell'istanza MySQL che esporta tutti gli schemi compatibili in un bucket di storage degli oggetti o in file locali. Per impostazione predefinita, questa utility esporta utenti, eventi, routine e trigger. Vedere Dump Utilities.util.dumpSchemas(schemas, outputUrl[, options])
: utility di esportazione dello schema MySQL che esporta gli schemi selezionati in un bucket di storage degli oggetti o in file locali.util.dumpTables(schema, tables, outputUrl[, options])
: utility di esportazione della tabella MySQL che esporta le tabelle selezionate di uno schema in un bucket di storage degli oggetti o in file locali.
Durante l'esportazione dei dati, eseguire i controlli di compatibilità sugli schemi. In caso di problemi, la utility di dump interrompe l'esportazione e produce un elenco dettagliato dei problemi e suggerisce i passi per correggerli. Inoltre, se si verifica un'interruzione della connessione durante l'esportazione dei dati, è necessario rieseguire l'utilità di dump. Impossibile sospendere e riprendere l'esportazione dei dati.
Uso della shell MySQL
Utilizzare la utility MySQL Shell dumpInstance
per esportare un'istanza MySQL in un bucket di storage degli oggetti.
- MySQL Shell 8.0.27 o successiva. Le esportazioni create dalla shell MySQL 8.0.27 o versioni successive non possono essere importate da versioni precedenti della shell MySQL. Si consiglia di utilizzare la versione più recente della shell MySQL.
- Accesso allo storage degli oggetti e a un bucket esistente.
- Un file di configurazione valido. Se la CLI è stata installata e configurata nella posizione predefinita, si dispone di un file di configurazione valido. Se l'interfaccia CLI non è stata installata e non è stata configurata, è necessario installarla o creare un file di configurazione manualmente. Vedere SDK and CLI Configuration File.
Controlli della compatibilità
Il servizio HeatWave dispone di diverse limitazioni relative alla sicurezza non presenti in un'istanza MySQL. Utilizzare l'opzione ocimds
della utility di dump per eseguire controlli di compatibilità sui dati di dump e, in caso di problemi, la utility interrompe il dump e produce un elenco dettagliato dei problemi e suggerisce i passi per correggerli.
Il comando seguente mostra come eseguire i controlli di compatibilità utilizzando l'opzione ocimds
in modalità dryrun
. Alcuni problemi rilevati dall'opzione ocimds
potrebbero richiedere la modifica manuale dello schema prima di poterlo caricare nel servizio HeatWave.
util.dumpInstance("", {mode: "dryrun", ocimds: true})
Dopo aver identificato i problemi di compatibilità e le opzioni di compatibilità, è possibile specificare le opzioni nel comando che esporta i dati.
util.dumpInstance("<BucketPrefix>", {osBucketName: "<MDSBucket>", ocimds: true,
compatibility: ["force_innodb", "strip_definers", "strip_restricted_grants",
"skip_invalid_accounts", "strip_tablespaces", "ignore_missing_pks"] } )
È possibile utilizzare le seguenti opzioni di compatibilità separate da virgole per modificare automaticamente i dati esportati, risolvendo alcuni dei seguenti problemi di compatibilità:
force_innodb
: il servizio HeatWave supporta solo il motore di memorizzazione InnoDB. Questa opzione modifica la clausolaENGINE
delle istruzioniCREATE TABLE
che utilizzano motori di memorizzazione non compatibili e li sostituisce con InnoDB.strip_definers
: elimina la clausola"DEFINER=account"
da viste, routine, eventi e trigger. HeatWave Il servizio richiede privilegi speciali per creare questi oggetti con un identificativo diverso dall'utente che carica lo schema. Eliminando la clausolaDEFINER
, questi oggetti verranno creati con il definer predefinito. Nelle viste e nelle routine la clausolaSQL SECURITY
è stata modificata daDEFINER
aINVOKER
. Ciò garantisce che vengano applicate le autorizzazioni di accesso dell'account che esegue la query o le chiama, anziché dell'utente che le ha create. Se il modello di sicurezza del database richiede viste e le routine dispongono di più privilegi rispetto al relativo chiamante, modificare manualmente lo schema prima di caricarlo. Vedere DEFINER e Sicurezza SQL.strip_restricted_grants
: alcuni privilegi sono limitati nel servizio HeatWave. Privilegi qualiRELOAD
,FILE
,SUPER
,BINLOG_ADMIN
eSET_USER_ID
. Non è possibile creare utenti che concedono questi privilegi. Questa opzione elimina questi privilegi dalle istruzioniGRANT
di cui è stato eseguito il dump.skip_invalid_accounts
: non è possibile esportare un utente per il quale non è stata definita alcuna password. Questa opzione salta tali utenti.strip_tablespaces
: il servizio HeatWave ha alcune limitazioni sulle tablespace. Questa opzione elimina l'opzioneTABLESPACE
dalle istruzioniCREATE TABLE
, in modo che tutte le tabelle vengano create nelle rispettive tablespace predefinite.- Flag chiave primaria:
create_invisible_pks
: le chiavi primarie sono richieste dai sistemi DB High Availability. Se si intende esportare i dati per l'uso in un sistema DB ad alta disponibilità, aggiungere le chiavi primarie se non sono definite nelle tabelle. Questo flag di compatibilità aggiunge chiavi primarie invisibili a ogni tabella che le richiede. Consulta la sezione Prerequisiti.ignore_missing_pks
: se non si intende eseguire l'importazione in un sistema DB High Availability, questo flag di compatibilità ignora le chiavi primarie mancanti nel dump.
Inoltre, le opzioni DATA DIRECTORY
, INDEX DIRECTORY
e ENCRYPTION
nelle istruzioni CREATE TABLE
vengono sempre commentate negli script DDL se l'opzione ocimds
è abilitata.
Se si intende esportare una versione precedente di MySQL, ad esempio 5.7.9, e se si utilizza una versione della shell MySQL precedente alla 8.0.30, si consiglia di eseguire la utility MySQL Shell Upgrade Checker per generare un report di tutti i potenziali problemi della migrazione. Vedere Utility Upgrade Checker.
Argomenti correlati