Sadržaj
Uvod
Preduvjeti
Korak 1: Stvorite korisnika sustava koji nije korijenski
Korak 2: Provjerite mehanizam za pohranu
Korak 3: Stvorite korisnika baze podataka za sigurnosno kopiranje
Korak 4: Instalirajte Percona XtraBackup
Korak 5: Napravite direktorije za pohranu sigurnosnih kopija
Korak 6: Napravite prvu potpunu sigurnosnu kopiju
Korak 7: Napravite sljedeće inkrementalne sigurnosne kopije
Korak 8: Pripremite datoteke sigurnosne kopije za vraćanje baze podataka
Korak 9: Vratite bazu podataka
Sadržaj
- Uvod
- Preduvjeti
- Korak 1: Stvorite korisnika sustava koji nije korijenski
- Korak 2: Provjerite mehanizam za pohranu
- Korak 3: Stvorite korisnika baze podataka za sigurnosno kopiranje
- Korak 4: Instalirajte Percona XtraBackup
- Korak 5: Napravite direktorije za pohranu sigurnosnih kopija
- Korak 6: Napravite prvu potpunu sigurnosnu kopiju
- Korak 7: Napravite sljedeće inkrementalne sigurnosne kopije
- Korak 8: Pripremite datoteke sigurnosne kopije za vraćanje baze podataka
- Korak 9: Vratite bazu podataka
- Daljnji koraci
Uvod
Percona XtraBackup je besplatni program baziran na MySQL-u koji se koristi za izradu vrućih sigurnosnih kopija. Također je otvorenog koda. Uz Percona XtraBackup, možete napraviti vruće sigurnosne kopije pokrenutih MySQL, MariaDB ili Percona Server baza podataka bez zaustavljanja vaše usluge baze podataka ili omogućavanja da je samo za čitanje. Ovo je poslovno kritična značajka za mnoge online tvrtke.
Za baze podataka koje koriste InnoDB, XtraDB i HailDB mehanizme za pohranu, Percona XtraBackup može izvesti neblokirajuće sigurnosne kopije. Za baze podataka koje koriste MyISAM, Merge i Archive mehanizme za pohranu, Percona XtraBackup također može napraviti sigurnosne kopije kratkim pauziranjem pisanja na kraju postupka sigurnosnog kopiranja.
U ovom članku pokazat ću vam kako instalirati i koristiti Percona XtraBackup za izvođenje potpunih i inkrementalnih vrućih sigurnosnih kopija na Vultr poslužitelju temeljenom na WordPress aplikaciji jednim klikom. Izvršit ćemo potpunu sigurnosnu kopiju i dvije inkrementalne sigurnosne kopije, a zatim ćemo vratiti bazu podataka u stanje svake od tri sigurnosne kopije u skladu s tim.
Preduvjeti
Pretpostavljam da ste ispočetka implementirali instancu poslužitelja WordPress Vultr jednim klikom i da ste se prijavili kao root, koristeći SSH.
Korak 1: Stvorite korisnika sustava koji nije korijenski
Iz sigurnosnih razloga, preporučena praksa je stvoriti drugi korisnički račun s root dopuštenjima, a zatim ga koristiti za prijavu i obavljanje svakodnevnih operacija na sustavu. Još uvijek možete izvršiti gotovo sve naredbe superkorisnika s sudonaredbom.
1) Stvorite novog korisnika. Zamijenite sysuservlastitim korisničkim imenom.
useradd sysuser
2) Postavite lozinku za novog korisnika. Zamijenite sysuservlastitim korisničkim imenom.
passwd sysuser
3) Dodijelite root dopuštenja svom novom korisniku.
visudo
Pronađite odlomak u nastavku.
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Dodajte redak neposredno ispod ovog odlomka, zamijenite ga sysusersvojim korisničkim imenom.
sysuser ALL=(ALL) ALL
Spremite i zatvorite.
:wq
4) Prijeđite na svoj novi korisnički račun.
logout
Zatim upotrijebite vjerodajnice novog korisnika za prijavu iz prozora terminala.
Korak 2: Provjerite mehanizam za pohranu
Prema zadanim postavkama, MySQL root prijava sprema se na VPS u /root/.my.cnf. Prikažite lozinku u svom terminalu sljedećom naredbom.
sudo cat /root/.my.cnf
Upotrijebite vjerodajnice prikazane na ekranu za prijavu na MySQL konzolu.
mysql -u root -p
U MySQL ljusci pokrenite sljedeće.
SHOW DATABASES;
Sve MySQL baze podataka bit će prikazane na ekranu. Baza podataka nazvana kao wp5273512je WordPress baza podataka koju želimo sigurnosno kopirati. U sljedećoj naredbi zamijenite wp5273512svojom:
USE wp5273512;
Provjerite mehanizam za pohranu za svaku tablicu:
SHOW TABLE STATUS\G
Otkrit ćete da sve tablice u vašoj WordPress MySQL bazi podataka koriste InnoDB mehanizam za pohranu koji je savršen za izvođenje vrućih sigurnosnih kopija s Percona XtraBackup.
Za sve druge MySQL baze podataka koje koriste MyISAM mehanizam za pohranu, još uvijek ih možemo sigurnosno kopirati pomoću Percona XtraBackup kratkim pauziranjem upisivanja.
Korak 3: Stvorite korisnika baze podataka za sigurnosno kopiranje
Još uvijek u MySQL ljusci, koristite sljedeće naredbe za stvaranje namjenskog korisnika baze podataka za sigurnosnu kopiju. Ne zaboravite zamijeniti korisničko ime baze podataka xbuseri lozinku xbpasswdsvojim vlastitim:
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;
Gore dodijeljene povlastice potrebne su za punu Percona XtraBackup funkcionalnost. Neke od njih možete ukloniti radi manje funkcionalnosti i bolje sigurnosti. Za više pojedinosti pogledajte službenu web stranicu Percona XtraBackup .
Korak 4: Instalirajte Percona XtraBackup
Percona XtraBackup možete vrlo jednostavno instalirati iz Perconinog RPM repozitorija:
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
Korak 5: Napravite direktorije za pohranu sigurnosnih kopija
Prvo morate dodati korisnika sysuseru mysqlgrupu. Zamijenite sysuservlastitim korisničkim imenom.
sudo gpasswd -a sysuser mysql
Stvorite direktorij za pohranu potpunih sigurnosnih kopija.
sudo mkdir -p /dbbackup/full/
Napravite drugi direktorij za pohranu inkrementalnih sigurnosnih kopija.
sudo mkdir -p /dbbackup/inc/
Promijenite vlasnika ovih direktorija u korisnika sysuseri grupe sysuser.
sudo chown -R sysuser:sysuser /dbbackup
Odjavite se da biste ove promjene primijenili.
logout
Zatim se sysuserponovno prijavite s .
Korak 6: Napravite prvu potpunu sigurnosnu kopiju
XtraBackup se prvenstveno sastoji od programa XtraBackup i innobackupexperl skripte. Obično možete koristiti innobackupexperl skriptu za izvođenje različitih operativnih postupaka radi praktičnosti.
Unesite sljedeću naredbu za stvaranje prve potpune sigurnosne kopije. Ne zaboravite zamijeniti korisničko ime xbuserbaze podataka, korisničku lozinku baze podataka xbpasswdi puni direktorij sigurnosne kopije /dbbackup/full/svojim vlastitim.
sudo innobackupex --user=xbuser --password=xbpasswd /dbbackup/full/
Ako se ova naredba ispravno izvrši, vidjet ćete poruku potvrde "innobackupex: završeno OK!" na posljednjoj liniji izlaza.
Sve novostvorene datoteke ove potpune sigurnosne kopije bit će pohranjene u direktoriju s vremenskim žigom pod /dbbackup/full/. Na primjer, /dbbackup/full/2015-05-22_05-45-54.
Korak 7: Napravite sljedeće inkrementalne sigurnosne kopije
Unesite sljedeću naredbu za stvaranje prve inkrementalne sigurnosne kopije. U skladu s tim zamijenite varijable u naredbi.
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/
Opet ćete vidjeti "innobackupex: završeno OK!" na kraju izlaza kada se naredba uspješno izvrši. Datoteke sigurnosne kopije bit će pohranjene u imeniku s vremenskim žigom pod /dbbackup/inc/.
Unesite sljedeću naredbu za stvaranje druge inkrementalne sigurnosne kopije. U skladu s tim zamijenite varijable u naredbi.
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/
Nakon uspjeha, vidjet ćete "innobackupex: završeno OK!" opet poruku. /dbbackup/inc/Ponovno provjerite mapu da biste vidjeli sigurnosne kopije datoteka.
Korak 8: Pripremite datoteke sigurnosne kopije za vraćanje baze podataka
Sve datoteke sigurnosne kopije baze podataka moraju biti pripremljene prije nego što se mogu koristiti za vraćanje baze podataka.
Napomena : Prije nego što izvršite postupke pripreme i vraćanja, bolje je sačuvati kopiju cijelog direktorija sigurnosne kopije (kao što je /dbbackup/) na drugom mjestu u slučaju da greškom dođe do oštećenja sigurnosnih kopija datoteka.
U svakom direktoriju sigurnosne kopije nalazi se datoteka s imenom xtrabackup_checkpointskoja sadrži vrstu sigurnosne kopije i redovne brojeve početka i kraja dnevnika ( from_lsni to_lsn). Možete koristiti te brojeve da razjasnite svoju strategiju vraćanja baze podataka. Pogledajte primjere u nastavku.
U xtrabackup_checkpointsdatoteci prve potpune sigurnosne kopije imam:
backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478
U xtrabackup_checkpointsdatoteci prve inkrementalne sigurnosne kopije imam:
backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177
U xtrabackup_checkpointsdatoteci druge inkrementalne sigurnosne kopije imam:
backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672
Ukratko, trebali biste se pozabaviti svakom sigurnosnom kopijom s rastućim redoslijedom lsn. Ako je lsn sekvenca nepotpuna ili neuređena, možete izgubiti podatke.
Napomena : Sljedeće naredbe uključuju tri direktorija, zamijenite ih svojim.
Da biste bazu podataka vratili u stanje prve potpune sigurnosne kopije, morate pripremiti sigurnosne kopije sljedećom naredbom:
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
Za vraćanje baze podataka u stanje prve inkrementalne sigurnosne kopije, morate pripremiti sigurnosne kopije pomoću sljedećih naredbi:
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
Da biste bazu podataka vratili u stanje druge inkrementalne sigurnosne kopije, morate pripremiti datoteke sigurnosne kopije pomoću sljedećih naredbi:
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
napomene :
Za inkrementalne sigurnosne kopije, trebali biste koristiti --redo-onlyopciju za sve osim posljednje inkrementalne sigurnosne kopije. Ipak, korištenje ove opcije na posljednjoj inkrementalnoj sigurnosnoj kopiji i dalje je bezopasno za konzistentnost vaših podataka - samo će uzrokovati određeno kašnjenje zbog vraćanja baze podataka.
Posljednja naredba svakog inkrementalnog scenarija nije obavezna, ali se preporučuje jer će ubrzati vraćanje.
Nakon pripreme, promjene zabilježene u inkrementalnim datotekama sigurnosne kopije bit će pridodane pripremljenim osnovnim datotekama pune sigurnosne kopije, tako da uvijek trebate koristiti pripremljene potpune sigurnosne kopije za vraćanje baze podataka, bez obzira da li odaberete potpunu sigurnosnu kopiju ili inkrementalnu sigurnosnu kopiju.
Korak 9: Vratite bazu podataka
Prije nego što možete vratiti svoju bazu podataka, morate zaustaviti uslugu baze podataka.
sudo service mysqld stop
Također morate isprazniti direktorij baze podataka. Možete premjestiti trenutne datoteke baze podataka na drugo mjesto radi opreza.
sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb
Vratite svoju bazu podataka s pripremljenim datotekama "full backup".
sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54
Budući da će postupak vraćanja izmijeniti vlasnika direktorija baze podataka, morate ga promijeniti natrag u mysql:mysqlda bi postao operativan.
sudo chown -R mysql:mysql /var/lib/mysql
Ponovno pokrenite uslugu baze podataka.
sudo service mysqld start
To je to. U ovom trenutku možete posjetiti svoju WordPress stranicu kako biste provjerili je li proces vraćanja bio uspješan.