mysqldump e mysqlpump - AWS Guida prescrittiva

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à.

mysqldump e mysqlpump

mysqldump e mysqlpump sono strumenti nativi di backup del database per MySQL. MariaDB supporta mysqldump ma non supporta mysqlpump. Entrambi questi strumenti creano backup logici e fanno parte dei programmi client MySQL. mysqldump supporta l'elaborazione a thread singolo. mysqlpump supporta l'elaborazione parallela di database e oggetti all'interno dei database, per accelerare il processo di dump. È stato introdotto nella versione 5.7.8 del server MySQL.

Il diagramma seguente mostra i passaggi di alto livello coinvolti nella migrazione di un database utilizzando un file di backup mysqldump o mysqlpump.

Diagramma della migrazione di un file di backup mysqldump o mysqlpump e del suo ripristino su un'istanza DB. AWS

Di seguito sono riportati i passaggi per utilizzare mysqldump o mysqlpump per migrare un database verso: Cloud AWS

  1. Installa MySQL Shell sul server locale. Per istruzioni, consulta Installazione di MySQL Shell nella documentazione di MySQL. Questo installa sia mysqldump che mysqlpump.

  2. Usando mysqldump o mysqlpump, crea un backup del database di origine locale. Per istruzioni, consulta mysqldump e mysqlpump nella documentazione di MySQL, oppure vedi Fare backup con mysqldump nella documentazione di MariaDB. Per ulteriori informazioni su come richiamare i programmi MySQL e specificare le opzioni, vedere Uso dei programmi MySQL.

  3. Sposta il file di backup in un'istanza EC2 utilizzando uno dei Cloud AWS seguenti approcci:

    Approccio 3A: monta un file system Amazon FSx o Amazon Elastic File System (Amazon EFS) sul server locale che esegue l'istanza di database. È possibile utilizzare AWS Direct Connect o AWS VPN per stabilire la connessione. È possibile eseguire il backup direttamente del database nella condivisione di file montata oppure eseguire il backup in due passaggi eseguendo il backup del database su un file system locale e quindi caricandolo sul volume FSx o EFS montato. Successivamente, monta il file system Amazon FSx o Amazon EFS, anch'esso montato sul server locale, su un'istanza EC2.

    Approccio 3B: utilizza AWS CLI AWS SDK o l'API REST di Amazon S3 per spostare direttamente il file di backup dal server locale a un bucket S3. Se il bucket S3 di destinazione si trova in un Regione AWS ambiente molto lontano dal data center, puoi utilizzare Amazon S3 Transfer Acceleration per trasferire il file più rapidamente. Usa il file system s3fs-fuse per montare il bucket S3 sull'istanza EC2.

    Approccio 3C: installa l' AWS DataSync agente nel data center locale, quindi utilizzalo AWS DataSyncper spostare il file di backup in un bucket Amazon S3. Usa il file system s3fs-fuse per montare il bucket S3 sull'istanza EC2.

    Nota

    Puoi anche utilizzare Amazon S3 File Gateway per trasferire i file di backup del database di grandi dimensioni in un bucket S3 nel. Cloud AWS Per ulteriori informazioni sul tagging, consulta Utilizzo di Amazon S3 File Gateway per trasferire file di backupin questa guida.

  4. Utilizza il metodo di ripristino nativo per ripristinare il backup sul database di destinazione. Per istruzioni, consulta Reloading di backup in formato SQL nella documentazione di MySQL o vedi Ripristino dei dati dai file di dump nella documentazione di MariaDB.

  5. (Facoltativo) È possibile impostare la replica tra il database di origine e l'istanza del database di destinazione. È possibile utilizzare la replica con log binario (binlog) per ridurre i tempi di inattività. Per ulteriori informazioni, consulta gli argomenti seguenti:

Vantaggi

  • mysqldump e mysqlpump sono inclusi nell'installazione di MySQL Server

  • I file di backup generati da questi strumenti sono in un formato più leggibile.

  • Prima di ripristinare il file di backup, è possibile modificare il file.sql risultante utilizzando un editor di testo standard.

  • È possibile eseguire il backup di una tabella, di un database o anche di una particolare selezione di dati.

  • mysqldump e mysqlpump sono indipendenti dall'architettura della macchina.

Limitazioni

  • mysqldump è un processo di backup a thread singolo. Le prestazioni per l'esecuzione di un backup sono buone per i database di piccole dimensioni, ma possono diventare inefficienti quando le dimensioni del backup superano i 10 GB.

  • I file di backup in formato logico sono voluminosi, soprattutto se salvati come testo, e spesso sono lenti da creare e ripristinare.

  • Il ripristino dei dati può essere lento perché la riapplicazione delle istruzioni SQL nell'istanza DB di destinazione comporta un intenso processo di I/O del disco e della CPU per l'inserimento, la creazione di indici e l'applicazione dei vincoli di integrità referenziale.

  • L'utilità mysqlpump non è supportata per le versioni di MySQL precedenti alla 5.7.8.

  • Per impostazione predefinita, mysqlpump non esegue un backup dei database di sistema, ad esempio o. performance_schema sys Per eseguire il backup di parte del database di sistema, denominalo esplicitamente nella riga di comando.

  • mysqldump non esegue il backup delle istruzioni InnoDB. CREATE TABLESPACE

Nota: i backup delle istruzioni CREATE TABLESPACE e dei database di sistema sono utili solo quando si ripristinano i backup del database MySQL o MariadB su un'istanza EC2. Questi backup non vengono utilizzati per Amazon RDS o Aurora.

Best practice

  • Quando ripristini il backup del database, disabilita i controlli chiave, ad esempio a livello di sessione nel database di destinazione. FOREIGN_KEY_CHECKS Ciò aumenta la velocità di ripristino.

  • Assicurati che l'utente del database disponga di privilegi sufficienti per creare e ripristinare il backup.