Tabela e Përmbajtjes
Prezantimi
Parakushtet
Hapi 1: Krijoni një përdorues të sistemit jo-root
Hapi 2: Kontrolloni motorin e ruajtjes
Hapi 3: Krijoni një përdorues të bazës së të dhënave për kopje rezervë
Hapi 4: Instaloni Percona XtraBackup
Hapi 5: Krijoni drejtoritë e ruajtjes rezervë
Hapi 6: Krijoni kopjen rezervë të parë të plotë
Hapi 7: Krijoni kopjet rezervë shtesë të mëposhtme
Hapi 8: Përgatitni skedarët rezervë për rivendosjen e bazës së të dhënave
Hapi 9: Rivendosni bazën e të dhënave
Tabela e Përmbajtjes
- Prezantimi
- Parakushtet
- Hapi 1: Krijoni një përdorues të sistemit jo-root
- Hapi 2: Kontrolloni motorin e ruajtjes
- Hapi 3: Krijoni një përdorues të bazës së të dhënave për kopje rezervë
- Hapi 4: Instaloni Percona XtraBackup
- Hapi 5: Krijoni drejtoritë e ruajtjes rezervë
- Hapi 6: Krijoni kopjen rezervë të parë të plotë
- Hapi 7: Krijoni kopjet rezervë shtesë të mëposhtme
- Hapi 8: Përgatitni skedarët rezervë për rivendosjen e bazës së të dhënave
- Hapi 9: Rivendosni bazën e të dhënave
- Hapat e mëtejshëm
Prezantimi
Percona XtraBackup është një program falas i bazuar në MySQL që përdoret për të bërë kopje rezervë të nxehtë. Është gjithashtu me burim të hapur. Me Percona XtraBackup, ju mund të bëni kopje rezervë të nxehtë të bazave të të dhënave MySQL, MariaDB ose Percona Server pa ndërprerë shërbimin tuaj të bazës së të dhënave ose duke e bërë atë vetëm për lexim. Ky është një veçori kritike e biznesit për shumë biznese në internet.
Për bazat e të dhënave që përdorin motorët e ruajtjes InnoDB, XtraDB dhe HailDB, Percona XtraBackup mund të kryejë kopje rezervë pa bllokim. Për bazat e të dhënave që përdorin motorët e ruajtjes MyISAM, Merge dhe Archive, Percona XtraBackup mund të kryejë gjithashtu kopje rezervë duke ndërprerë shkurtimisht shkrimet në fund të procedurës së rezervimit.
Në këtë artikull, unë do t'ju tregoj se si të instaloni dhe përdorni Percona XtraBackup për të kryer kopje rezervë të plotë dhe në rritje në një server Vultr bazuar në aplikacionin WordPress One-Click. Ne do të kryejmë një kopje rezervë të plotë dhe dy kopje rezervë shtesë, dhe më pas do të rivendosim bazën e të dhënave në gjendjen e secilit prej tre kopjeve rezervë në përputhje me rrethanat.
Parakushtet
Unë supozoj se ju keni vendosur një shembull të serverit WordPress Vultr me një klikim nga e para dhe keni hyrë si rrënjë, duke përdorur SSH.
Hapi 1: Krijoni një përdorues të sistemit jo-root
Për qëllime sigurie, një praktikë e rekomanduar është të krijoni një llogari tjetër përdoruesi me leje rrënjësore, më pas ta përdorni për t'u identifikuar dhe për të kryer operacionet tuaja të përditshme në sistem. Ju ende mund të ekzekutoni pothuajse të gjitha komandat e superpërdoruesit me sudokomandën.
1) Krijoni një përdorues të ri. Zëvendësojeni sysuserme emrin tuaj të përdoruesit.
useradd sysuser
2) Vendosni fjalëkalimin për përdoruesin tuaj të ri. Zëvendësoni sysuserme emrin tuaj të përdoruesit.
passwd sysuser
3) Jepni leje root përdoruesit tuaj të ri.
visudo
Gjeni paragrafin më poshtë.
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Shtoni një rresht direkt nën këtë paragraf, zëvendësojeni sysuserme emrin tuaj të përdoruesit.
sysuser ALL=(ALL) ALL
Ruani dhe hiqni dorë.
:wq
4) Kaloni në llogarinë tuaj të re të përdoruesit.
logout
Më pas, përdorni kredencialet e përdoruesit të ri për t'u identifikuar nga dritarja e terminalit tuaj.
Hapi 2: Kontrolloni motorin e ruajtjes
Si parazgjedhje, identifikimi rrënjësor i MySQL ruhet në VPS në /root/.my.cnf. Shfaqni fjalëkalimin në terminalin tuaj me komandën e mëposhtme.
sudo cat /root/.my.cnf
Përdorni kredencialin e shfaqur në ekran për t'u identifikuar në tastierën MySQL.
mysql -u root -p
Në guaskën MySQL, ekzekutoni sa vijon.
SHOW DATABASES;
Të gjitha bazat e të dhënave MySQL do të shfaqen në ekran. Baza e të dhënave e quajtur si wp5273512është baza e të dhënave e WordPress që ne duam të kopjojmë. Në komandën e mëposhtme, zëvendësojeni wp5273512me atë tuajën:
USE wp5273512;
Kontrolloni motorin e ruajtjes për secilën tabelë:
SHOW TABLE STATUS\G
Do të zbuloni se të gjitha tabelat në bazën tuaj të të dhënave WordPress MySQL po përdorin motorin e ruajtjes InnoDB i cili është i përsosur për të kryer kopje rezervë të nxehtë me Percona XtraBackup.
Për çdo bazë të dhënash tjetër MySQL që përdor motorin e ruajtjes MyISAM, ne mund t'i kopjojmë ato me Percona XtraBackup duke i ndalur shkurtimisht shkrimet.
Hapi 3: Krijoni një përdorues të bazës së të dhënave për kopje rezervë
Ende në guaskën MySQL, përdorni komandat e mëposhtme për të krijuar një përdorues të dedikuar të bazës së të dhënave për kopje rezervë. Mos harroni të zëvendësoni emrin e përdoruesit xbuserdhe fjalëkalimin e bazës së të dhënave xbpasswdme ato tuajat:
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;
Privilegjet e dhëna më sipër janë të nevojshme për funksionalitetin e plotë të Percona XtraBackup. Ju mund t'i hiqni disa prej tyre për më pak funksionalitet dhe siguri më të mirë. Për më shumë detaje, shihni faqen zyrtare të internetit të Percona XtraBackup .
Hapi 4: Instaloni Percona XtraBackup
Ju mund ta instaloni Percona XtraBackup nga depoja RPM e Percona mjaft lehtë:
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
Hapi 5: Krijoni drejtoritë e ruajtjes rezervë
Së pari, duhet të shtoni përdorues sysusernë mysqlgrup. Zëvendësoni sysuserme emrin tuaj të përdoruesit.
sudo gpasswd -a sysuser mysql
Krijoni një drejtori për të ruajtur kopjet rezervë të plotë.
sudo mkdir -p /dbbackup/full/
Krijoni një drejtori tjetër për të ruajtur kopjet rezervë shtesë.
sudo mkdir -p /dbbackup/inc/
Ndrysho zotëruesin e këtyre drejtorive në përdorues sysuserdhe grup sysuser.
sudo chown -R sysuser:sysuser /dbbackup
Dilni për të vënë në fuqi këto ndryshime.
logout
Më pas, hyni sysuserpërsëri.
Hapi 6: Krijoni kopjen rezervë të parë të plotë
XtraBackup përbëhet kryesisht nga programi XtraBackup dhe innobackupexskripti perl. Zakonisht, ju mund të përdorni innobackupexskriptin perl për të kryer procedura të ndryshme funksionimi për lehtësi.
Futni komandën e mëposhtme për të krijuar kopjen rezervë të parë të plotë. Mos harroni të zëvendësoni emrin xbusere përdoruesit të bazës së të dhënave xbpasswd, fjalëkalimin e përdoruesit të bazës së të dhënave dhe direktorinë e plotë rezervë /dbbackup/full/me ato tuajat.
sudo innobackupex --user=xbuser --password=xbpasswd /dbbackup/full/
Me ekzekutimin e saktë të kësaj komande, do të shihni mesazhin e konfirmimit "innobackupex: përfunduar OK!" në rreshtin e fundit të daljes.
Të gjithë skedarët e sapokrijuar të këtij rezervimi të plotë do të ruhen në një drejtori të vulosur me kohë nën /dbbackup/full/. Për shembull, /dbbackup/full/2015-05-22_05-45-54.
Hapi 7: Krijoni kopjet rezervë shtesë të mëposhtme
Futni komandën e mëposhtme për të krijuar rezervën e parë shtesë. Zëvendësoni variablat në komandë në përputhje me rrethanat.
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/
Përsëri, do të shihni "innobackupex: përfunduar OK!" në fund të daljes kur komanda ekzekutohet me sukses. Skedarët rezervë do të ruhen në një drejtori të vulosur me kohë nën /dbbackup/inc/.
Futni komandën e mëposhtme për të krijuar rezervën e dytë shtesë. Zëvendësoni variablat në komandë në përputhje me rrethanat.
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/
Pas suksesit, do të shihni "innobackupex: përfunduar OK!" mesazh përsëri. Kontrolloni /dbbackup/inc/përsëri dosjen për të parë skedarët rezervë.
Hapi 8: Përgatitni skedarët rezervë për rivendosjen e bazës së të dhënave
Të gjithë skedarët rezervë të bazës së të dhënave duhet të përgatiten përpara se të përdoren për të rivendosur bazën e të dhënave.
Shënim : Përpara se të kryeni procedurat e përgatitjes dhe restaurimit, është më mirë të mbani një kopje të të gjithë drejtorisë rezervë (si p.sh. /dbbackup/) në një vend tjetër në rast se ndonjë dëmtim në kopjen rezervë të skedarëve shkaktohet gabimisht.
Në çdo direktori rezervë, ekziston një skedar i quajtur i xtrabackup_checkpointscili përmban llojin e kopjes rezervë dhe numrat e sekuencës së regjistrit të fillimit dhe të fundit ( from_lsndhe to_lsn). Ju mund t'i përdorni ato numra për të sqaruar strategjinë tuaj të rivendosjes së bazës së të dhënave. Shikoni shembujt më poshtë.
Në xtrabackup_checkpointsskedarin e rezervës së parë të plotë, unë kam:
backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478
Në xtrabackup_checkpointsskedarin e rezervës së parë shtesë, unë kam:
backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177
Në xtrabackup_checkpointsskedarin e rezervës së dytë shtesë, unë kam:
backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672
Shkurtimisht, ju duhet të trajtoni çdo kopje rezervë me rendin në rritje të lsn. Nëse sekuenca lsn është e paplotë ose e çrregullt, mund të humbni të dhënat.
Shënim : Komandat e mëposhtme përfshijnë tre drejtori, zëvendësojini me ato tuajat.
Për të rikthyer bazën e të dhënave në gjendjen e rezervimit të parë të plotë, duhet të përgatisni skedarët rezervë me komandën e mëposhtme:
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
Për të rikthyer bazën e të dhënave në gjendjen e rezervës së parë shtesë, duhet të përgatisni skedarët rezervë me komandat e mëposhtme:
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
Për të rivendosur bazën e të dhënave në gjendjen e rezervës së dytë shtesë, duhet të përgatisni skedarët rezervë me komandat e mëposhtme:
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
Shënime :
Për kopjet rezervë shtesë, duhet të përdorni --redo-onlyopsionin në të gjitha, përveç rezervës së fundit shtesë. Sidoqoftë, përdorimi i këtij opsioni në rezervimin e fundit shtesë është ende i padëmshëm për konsistencën e të dhënave tuaja - do të shkaktojë vetëm një vonesë për shkak të rikthimit të bazës së të dhënave.
Komanda e fundit e çdo skenari shtesë është opsionale, por e rekomanduar, sepse do të përshpejtojë rivendosjen.
Pas përgatitjes, ndryshimet e regjistruara në skedarët rezervë shtesë do t'i shtohen skedarëve rezervë të plotë bazë të përgatitur, kështu që duhet të përdorni gjithmonë skedarët rezervë të plotë të përgatitur për të rivendosur bazën e të dhënave, pavarësisht nëse zgjidhni një kopje rezervë të plotë ose një kopje rezervë shtesë.
Hapi 9: Rivendosni bazën e të dhënave
Përpara se të rivendosni bazën e të dhënave, duhet të ndaloni shërbimin e bazës së të dhënave.
sudo service mysqld stop
Ju gjithashtu duhet të zbrazni direktorinë e bazës së të dhënave. Ju mund të zhvendosni skedarët aktual të bazës së të dhënave në një vend tjetër për masa paraprake.
sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb
Rivendosni bazën tuaj të të dhënave me skedarët e përgatitur "backup të plotë".
sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54
Për shkak se procedura e rivendosjes do të modifikojë pronarin e drejtorisë së bazës së të dhënave, ju duhet ta ndryshoni atë përsëri në për mysql:mysqlta bërë atë funksionale.
sudo chown -R mysql:mysql /var/lib/mysql
Rinisni shërbimin e bazës së të dhënave.
sudo service mysqld start
Kjo eshte. Në këtë pikë, ju mund të vizitoni faqen tuaj të WordPress për të verifikuar që procesi i rivendosjes ishte i suksesshëm.