GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Esegui backup a caldo di database MySQL con Percona XtraBackup su Ubuntu 16.04

Percona XtraBackup è un'utilità di backup open source per MySQL. Supporta tutte le versioni di MySQL come Percona Server, MariaDB e (Oracle) MySQL. Percona Xtrabackup esegue un backup a caldo per MySQL. Hot Backup significa creare un backup di un server MySQL mentre è in esecuzione senza tempi di inattività.

In questo tutorial, ti mostrerò come creare un backup di database MySQL a caldo con lo strumento OpenSource Percona XtraBackup su Ubuntu 16.04 (Xenial Xerus). Userò MariaDB come server di database per eseguire il backup, ma la stessa configurazione funzionerà anche per i server MySQL.

Prerequisito

  • Server Ubuntu 16.04 - (Xenial Xerus)
  • Server MySQL o MariaDB
  • privilegi radice

Passaggio 1:installazione di Percona XtraBackup

Il primo passo è installare l'ultimo software Percona XtraBackup sul nostro server Ubuntu. Accedi al tuo server tramite SSH (o sulla console):

ssh [email protected]
TYPE YOUR PASSWORD

Percona XtraBackup è disponibile nel repository di Ubuntu, ma vogliamo utilizzare l'ultima versione del repository Percona.

Aggiungi il repository Percona scaricando il pacchetto deb dal web e installalo con il comando dpkg:

wget https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-3.$(lsb_release -sc)_all.deb

Successivamente, aggiorna il repository e installa Ppercona XtraBackup 2.4 (l'ultima versione al momento):

sudo apt-get update
sudo apt-get install percona-xtrabackup-24

Percona XtraBackup è installato.

Passaggio 2:configurazione della directory utente e backup

Per eseguire il backup a caldo, dobbiamo creare un nuovo utente mysql con privilegi e autorizzazioni speciali. In questo tutorial, userò MariaDB 10.0 come server di database. Se non hai ancora installato un database compatibile con MySQL, puoi installarlo con il comando seguente:

sudo apt-get install mariadb-server mariadb-client

Imposta una password sicura per l'utente root con questo comando:

mysql_secure_installation

Se è installato MariaDB, accedi alla shell MariaDB/MySQL come utente root con il comando mysql client:

mysql -u root -p
TYPE MySQL PASSWORD

Crea un nuovo utente chiamato 'bekupuser ' con la password 'miapassword ' (scegli una password sicura per il tuo server!):

CREATE USER 'bekupuser'@'localhost' IDENTIFIED BY 'mypassword';

Concedi all'utente i seguenti privilegi:'RICARICA, ELABORA, BLOCCA TABELLE, REPLICA CLIENT'.

GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bekupuser'@'localhost';
FLUSH PRIVILEGES;
exit

Quindi, crea una nuova directory per archiviare i file di backup di MySQL:

mkdir -p /data/backups/mysql/

Il nuovo utente di backup e una directory di backup sono stati creati.

Fase 3:esegui il backup con Innobackupex

Innobackupex è un wrapper di script Perl per il programma xtrabackup. È una versione modificata dello script innobackup fornito da Oracle, distribuito con lo strumento InnoDB Backup. Innobackupex fornisce il backup di un'intera istanza del database MySQL, utilizzando xtrabackup in combinazione con xbstream e xbcrypt.

In questo passaggio creeremo e prepareremo un backup completo per l'istanza MySQL.

A. Crea un backup con Innobackupex

Nel passaggio 2, abbiamo creato una nuova directory per il backup e aggiunto un nuovo utente di backup mysql. Li useremo ora per creare un backup con il comando innobackupex.

Crea un backup MySQL con innobackupex nella nuova directory '/data/backups/my_backup':

innobackupex --user=bekupuser  --password=mypassword --no-timestamp /data/backups/my_backup

Nota:

--utente =utente con privilegi di backup richiesti (passaggio 2).

--password =password dell'utente di backup.

--nessun timestamp =disabilita la creazione di una nuova sottodirectory con timestamp nella directory root di backup.

/data/backups/my_backup =directory per il backup, verrà creata automaticamente durante il processo di backup. Se la directory esiste, riceverai un messaggio di errore.

Un'altra opzione:

mkdir -p /data/backups/my_backup2

innobackupex --user=bekupuser --password=mypassword /data/backups/my_backup2

or

innobackupex --user=bekupuser --password=mypassword /data/backups/

Nota:

Se non è presente alcuna directory 'my_backup2 ', otterrai la tua directory in base a 'timestamp ' formato.

Risultati:

B. Prepara un backup completo con Innobackupex

Dopo aver creato un nuovo backup, i dati non sono pronti per un ripristino. C'è un altro passaggio in modo che i dati siano pronti per essere ripristinati. Abbiamo bisogno della "fase di preparazione" in modo che i dati possano essere ripristinati.

Prepara il backup utilizzando innobackupex con l'opzione --apply-log nella directory di backup '/data/backups/my_backup ':

innobackupex --apply-log /data/backups/my_backup

Assicurati che il processo sia completo senza errori prima di procedere.

Se disponi di memoria sufficiente e di un database di grandi dimensioni, puoi utilizzare l'opzione --use-memory=memorynumber per dire a innobackupex quanta memoria può utilizzare:

innobackupex --apply-log --use-memory=4G /data/backups/my_backup

I dati sono pronti per essere ripristinati ora. Possiamo ripristinarlo sullo stesso server o su un altro server che esegue MariaDB.

Passaggio 4:ripristino del backup completo con Innobackupex

In questo passaggio, ripristineremo l'istanza MySQL con innobackupex.

Prima di ripristinare l'istanza MySQL, è necessario interrompere il processo MySQL con il comando systemctl (il processo MariaDB si chiama mysql):

systemctl stop mysql

Fai un backup della vecchia directory dei dati di MySQL:

mkdir ~/mysql_old/
mv /var/lib/mysql/* ~/mysql_old/

Quindi, ripristina l'istanza mysql dal backup completo con innobackupex:

innobackupex --copy-back /data/backups/my_backup

Quando vedi il risultato "innobackupex:completato OK ', quindi hai ripristinato correttamente la tua istanza MySQL.

Ora cambia il proprietario della directory dei dati MySQL nell'utente mysql e riavvia il servizio:

chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

L'istanza MySQL è stata ripristinata con successo con percona-xtrabackup.


Ubuntu
  1. Installa e inizia con MySQL Workbench su Ubuntu

  2. Ubuntu 20.04:WordPress con installazione di Nginx

  3. Come installare Nginx con PHP5 e MySQL su Ubuntu 11.10

  4. Come installare Mattermost con MySQL su Ubuntu 14.04 e Debian 8

  5. Come creare un backup di database MySQL utilizzando mysqldump su Ubuntu 20.04

Hosting virtuale con vsftpd e MySQL su Ubuntu 12.10

Come eseguire il backup del desktop Ubuntu con DejaDup

Installazione di Nginx con supporto PHP5 e MySQL su Ubuntu 8.10

Come installare Drupal 7 con Apache su Ubuntu 14.04

Installa WordPress con LEMP Stack su Ubuntu 20.04

Installa WordPress con LEMP Stack su Ubuntu 20.04