Taula de continguts
Introducció
Requisits previs
Pas 1: creeu un usuari del sistema que no sigui root
Pas 2: comproveu el motor d'emmagatzematge
Pas 3: creeu un usuari de base de dades per fer una còpia de seguretat
Pas 4: instal·leu Percona XtraBackup
Pas 5: creeu directoris d'emmagatzematge de còpia de seguretat
Pas 6: creeu la primera còpia de seguretat completa
Pas 7: creeu les següents còpies de seguretat incrementals
Pas 8: prepareu els fitxers de còpia de seguretat per restaurar la base de dades
Pas 9: restaurar la base de dades
Taula de continguts
- Introducció
- Requisits previs
- Pas 1: creeu un usuari del sistema que no sigui root
- Pas 2: comproveu el motor d'emmagatzematge
- Pas 3: creeu un usuari de base de dades per fer una còpia de seguretat
- Pas 4: instal·leu Percona XtraBackup
- Pas 5: creeu directoris d'emmagatzematge de còpia de seguretat
- Pas 6: creeu la primera còpia de seguretat completa
- Pas 7: creeu les següents còpies de seguretat incrementals
- Pas 8: prepareu els fitxers de còpia de seguretat per restaurar la base de dades
- Pas 9: restaurar la base de dades
- Més passos
Introducció
Percona XtraBackup és un programa gratuït basat en MySQL que s'utilitza per fer còpies de seguretat en calent. També és de codi obert. Amb Percona XtraBackup, podeu fer còpies de seguretat d'execució de bases de dades MySQL, MariaDB o Percona Server sense aturar el vostre servei de bases de dades ni fer-lo només de lectura. Aquesta és una característica crítica per a moltes empreses en línia.
Per a bases de dades que utilitzen motors d'emmagatzematge InnoDB, XtraDB i HailDB, Percona XtraBackup pot realitzar còpies de seguretat sense bloqueig. Per a les bases de dades que utilitzen motors d'emmagatzematge MyISAM, Merge i Archive, Percona XtraBackup també pot realitzar còpies de seguretat posant en pausa breu les escriptures al final del procediment de còpia de seguretat.
En aquest article, us mostraré com instal·lar i utilitzar Percona XtraBackup per realitzar còpies de seguretat completes i incrementals en calent en un servidor Vultr basat en l'aplicació de WordPress One-Click. Farem una còpia de seguretat completa i dues còpies de seguretat incrementals, i després restaurarem la base de dades a l'estat de cadascuna de les tres còpies de seguretat en conseqüència.
Requisits previs
Suposo que heu desplegat una instància del servidor Vultr de WordPress d'un clic des de zero i heu iniciat sessió com a root mitjançant SSH.
Pas 1: creeu un usuari del sistema que no sigui root
Per motius de seguretat, una pràctica recomanada és crear un altre compte d'usuari amb permisos root i, a continuació, utilitzar-lo per iniciar la sessió i realitzar les operacions diàries al sistema. Encara podeu executar gairebé totes les ordres de superusuari amb l' sudoordre.
1) Crea un usuari nou. Substituïu-lo sysuserpel vostre propi nom d'usuari.
useradd sysuser
2) Establiu la contrasenya per al vostre nou usuari. Substituïu-lo sysuserpel vostre propi nom d'usuari.
passwd sysuser
3) Concediu permisos root al vostre nou usuari.
visudo
Busca el paràgraf a continuació.
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Afegiu una fila directament a sota d'aquest paràgraf, substituïu-la sysuseramb el vostre propi nom d'usuari.
sysuser ALL=(ALL) ALL
Desa i surt.
:wq
4) Canvia al teu nou compte d'usuari.
logout
A continuació, utilitzeu les credencials del nou usuari per iniciar sessió des de la finestra del vostre terminal.
Pas 2: comproveu el motor d'emmagatzematge
Per defecte, l'inici de sessió arrel de MySQL es desa al VPS a /root/.my.cnf. Mostra la contrasenya al teu terminal amb l'ordre següent.
sudo cat /root/.my.cnf
Utilitzeu la credencial que es mostra a la pantalla per iniciar sessió a la consola MySQL.
mysql -u root -p
A l'intèrpret d'ordres de MySQL, executeu el següent.
SHOW DATABASES;
Totes les bases de dades MySQL s'hauran mostrat a la pantalla. La base de dades anomenada com wp5273512és la base de dades de WordPress de la qual volem fer una còpia de seguretat. A la següent comanda, substituïu-la wp5273512per la vostra:
USE wp5273512;
Comproveu el motor d'emmagatzematge de cada taula:
SHOW TABLE STATUS\G
Trobareu que totes les taules de la vostra base de dades MySQL de WordPress utilitzen el motor d'emmagatzematge InnoDB que és perfecte per realitzar còpies de seguretat en calent amb Percona XtraBackup.
Per a qualsevol altra base de dades MySQL que utilitzi el motor d'emmagatzematge MyISAM, encara podem fer-ne una còpia de seguretat amb Percona XtraBackup posant una breu pausa de les escriptures.
Pas 3: creeu un usuari de base de dades per fer una còpia de seguretat
Encara a l'intèrpret d'ordres de MySQL, utilitzeu les ordres següents per crear un usuari de base de dades dedicat per a la còpia de seguretat. Recordeu substituir el nom d'usuari xbuseri la contrasenya de la base de dades per les xbpasswdvostres pròpies:
CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Els privilegis concedits anteriorment són necessaris per a la funcionalitat completa de Percona XtraBackup. Podeu eliminar-ne alguns per obtenir menys funcionalitat i una millor seguretat. Per a més detalls, consulteu el lloc web oficial de Percona XtraBackup .
Pas 4: instal·leu Percona XtraBackup
Podeu instal·lar Percona XtraBackup des del dipòsit RPM de Percona amb força facilitat:
sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup
Pas 5: creeu directoris d'emmagatzematge de còpia de seguretat
Primer, heu d'afegir un usuari sysuseral mysqlgrup. Substituïu-lo sysuserpel vostre propi nom d'usuari.
sudo gpasswd -a sysuser mysql
Creeu un directori per emmagatzemar còpies de seguretat completes.
sudo mkdir -p /dbbackup/full/
Creeu un altre directori per emmagatzemar còpies de seguretat incrementals.
sudo mkdir -p /dbbackup/inc/
Canvieu el propietari d'aquests directoris a usuari sysuseri grup sysuser.
sudo chown -R sysuser:sysuser /dbbackup
Tanqueu la sessió per aplicar aquests canvis.
logout
A continuació, torneu a iniciar sessió amb sysuser.
Pas 6: creeu la primera còpia de seguretat completa
XtraBackup consisteix principalment en el programa XtraBackup i l' innobackupexscript perl. Normalment, podeu utilitzar l' innobackupexscript perl per dur a terme diversos procediments operatius per comoditat.
Introduïu l'ordre següent per crear la primera còpia de seguretat completa. Recordeu substituir el nom d'usuari de xbuserla base de dades , la contrasenya de l'usuari de la base de dades xbpasswdi el directori de còpia de seguretat complet /dbbackup/full/pels vostres.
sudo innobackupex --user=xbuser --password=xbpasswd /dbbackup/full/
Amb aquesta ordre executada correctament, veureu el missatge de confirmació "innobackupex: completed OK!" a l'última línia de la sortida.
Tots els fitxers de nova creació d'aquesta còpia de seguretat completa s'emmagatzemaran en un directori marcat amb l'hora a /dbbackup/full/. Per exemple, /dbbackup/full/2015-05-22_05-45-54.
Pas 7: creeu les següents còpies de seguretat incrementals
Introduïu l'ordre següent per crear la primera còpia de seguretat incremental. Substituïu les variables a l'ordre en conseqüència.
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/
De nou, veuràs "innobackupex: completed OK!" al final de la sortida quan l'ordre s'executa correctament. Els fitxers de còpia de seguretat s'emmagatzemaran en un directori marcat amb l'hora a /dbbackup/inc/.
Introduïu l'ordre següent per crear la segona còpia de seguretat incremental. Substituïu les variables de l'ordre en conseqüència.
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/
Quan tinguis èxit, veuràs "innobackupex: completed OK!" missatge de nou. /dbbackup/inc/Torneu a comprovar la carpeta per veure els fitxers de còpia de seguretat.
Pas 8: prepareu els fitxers de còpia de seguretat per restaurar la base de dades
Tots els fitxers de còpia de seguretat de la base de dades s'han de preparar abans que es puguin utilitzar per restaurar la base de dades.
Nota : abans de realitzar els procediments de preparació i restauració, és millor que mantingueu una còpia de tot el directori de còpia de seguretat (com ara /dbbackup/) en un altre lloc en cas que qualsevol dany a la còpia de seguretat dels fitxers sigui causat per error.
A cada directori de còpia de seguretat, hi ha un fitxer anomenat xtrabackup_checkpointsque conté el tipus de còpia de seguretat i els números de seqüència de registre inicial i final ( from_lsni to_lsn). Podeu utilitzar aquests números per aclarir la vostra estratègia de restauració de la base de dades. Mireu els exemples següents.
Al xtrabackup_checkpointsfitxer de la primera còpia de seguretat completa, tinc:
backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478
Al xtrabackup_checkpointsfitxer de la primera còpia de seguretat incremental, tinc:
backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177
Al xtrabackup_checkpointsfitxer de la segona còpia de seguretat incremental, tinc:
backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672
En resum, hauríeu d'abordar cada còpia de seguretat amb l'ordre creixent de lsn. Si la seqüència lsn està incompleta o està desordenada, podeu perdre dades.
Nota : Les ordres següents inclouen tres directoris, substituïu-los pels vostres.
Per restaurar la base de dades a l'estat de la primera còpia de seguretat completa, heu de preparar els fitxers de còpia de seguretat amb l'ordre següent:
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
Per restaurar la base de dades a l'estat de la primera còpia de seguretat incremental, heu de preparar els fitxers de còpia de seguretat amb les ordres següents:
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
Per restaurar la base de dades a l'estat de la segona còpia de seguretat incremental, heu de preparar els fitxers de còpia de seguretat amb les ordres següents:
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
Notes :
Per a les còpies de seguretat incrementals, hauríeu d'utilitzar l' --redo-onlyopció a totes menys a la darrera còpia de seguretat incremental. No obstant això, l'ús d'aquesta opció a la darrera còpia de seguretat incremental encara és inofensiu per a la coherència de les vostres dades; només provocarà un cert retard a causa de la recuperació de la base de dades.
L'última ordre de cada escenari incremental és opcional però recomanable, perquè accelerarà la restauració.
Després de la preparació, els canvis registrats als fitxers de còpia de seguretat incrementals s'afegiran als fitxers de còpia de seguretat completa base preparats, de manera que sempre hauríeu d'utilitzar els fitxers de còpia de seguretat completa preparats per restaurar la vostra base de dades, independentment de si trieu una còpia de seguretat completa o una còpia de seguretat incremental.
Pas 9: restaurar la base de dades
Abans de poder restaurar la vostra base de dades, heu d'aturar el servei de base de dades.
sudo service mysqld stop
També heu de buidar el directori de la base de dades. Podeu moure els fitxers de la base de dades actuals a un altre lloc per precaució.
sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb
Restaura la teva base de dades amb els fitxers de "còpia de seguretat completa" preparats.
sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54
Com que el procediment de restauració modificarà el propietari del directori de la base de dades, cal que torneu a canviar-lo mysql:mysqlper fer-lo operatiu.
sudo chown -R mysql:mysql /var/lib/mysql
Reinicieu el servei de base de dades.
sudo service mysqld start
Això és. En aquest punt, podeu visitar el vostre lloc de WordPress per verificar que el procés de restauració ha tingut èxit.