MySQL dublējuma izveide, izmantojot utilītu XtraBackup

Percona XtraBackup ir utilÄ«ta karstu datu bāzes dublēŔanai MySQL.

Veidojot datu dublējumu, neviena tabula netiek bloķēta, un sistēma turpina darboties bez ierobežojumiem.

XtraBackup 2.4 var izveidot tabulu rezerves kopijas InnoDBXtraDB Šø MyISAM serveros MySQL 5.11, 5.5, 5.6 un 5.7un arÄ« serverÄ« Perkona par MySQL Ń XtraDB.

Lai strādātu ar MySQL 8.x versija ir jāizmanto XtraBackup 8.x. Å ajā rakstā tiks runāts tikai par XtraBackup 2.4.

Galvenā priekÅ”rocÄ«ba XtraBackup ir tā, ka Ŕī utilÄ«ta ir piemērota ļoti noslogotu failu rezerves kopiju izveidei serveriem, kā arÄ« sistēmām ar nelielu darÄ«jumu skaitu.

Ja jÅ«su MySQL datu bāzu kopējais lielums ir ievērojams (desmitiem gigabaitu), tad standarta utilÄ«ta mysqldump neļaus ātri izveidot rezerves kopiju, un izgāztuves atjaunoÅ”ana prasÄ«s daudz laika.

UzstādīŔana

UzstādīŔana XtraBackup no krātuves spējÄ«gs Perkona.

Secīgi izpildiet Ŕādas komandas:

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb

sudo apt-get update 

sudo apt-get install percona-xtrabackup-24

2. Pēc instalēŔanas palaidiet komandu xtrabackup -v. Tā kā ir svarÄ«gi pārliecināties, vai utilÄ«ta pareizi darbojas serverÄ«. Rezultātā ekrānā tiks parādÄ«ts kaut kas lÄ«dzÄ«gs Å”im:

xtrabackup: atpazītie servera argumenti: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup versija 2.4.20, kuras pamatā ir MySQL serveris 5.7.26 Linux (x8664) (revīzijas ID: c8b4056)

MySQL dublējuma izveide, izmantojot utilītu XtraBackup

Piekļuves tiesÄ«bas, atļaujas un privilēģijas 

XtraBackup jāspēj:

  • Izveidojiet savienojumu ar savu MySQL serveri.

  • Ir piekļuves tiesÄ«bas direktorijam datu direktorijs

  • Veidojot rezerves kopiju, jums ir rakstīŔanas tiesÄ«bas uz norādÄ«to parametru mērÄ·is-rež katalogu.

Kas ir datadir?

datu direktorijs ir direktorijs, kurā atrodas datu bāzes serveris MySQL glabā datus. Visas datubāzes, visas tabulas atrodas tur. Vairumā distribÅ«ciju Linux Pēc noklusējuma Å”is direktorijs ir /var/lib/mysql.

Kas ir mērķa direktorija direktorijs?

mērÄ·is-rež - Å is ir direktorijs, kurā tiks saglabāts dublējums.

Datu bāzes lietotājam ir nepiecieÅ”amas Ŕādas piekļuves tiesÄ«bas tabulām un datu bāzēm, lai tās varētu dublēt:

  • ATKĀRTOTI IELĀDĒJIET un BLOĶĒT TABULU

  • REPLIKĀCIJAS KLIENTS

  • IZVEIDOT TABLESPLACE

  • PROCESS

  • SUPER

  • CREATE

  • INSERT

  • SELECT

Konfigurācija 

Konfigurācija XtraBackup tiek darīts, izmantojot opcijas, kas darbojas tāpat kā standarta MySQL opcijas.

Ko tas nozīmē?

Konfigurācijas parametrus var norādÄ«t vai nu komandrindā, vai DBVS konfigurācijas failā, piemēram, in /etc/my.cnf.

XtraBackup utilÄ«ta nolasa nodalÄ«jumus pēc palaiÅ”anas [mysqld] Šø [xtrabackup] no MySQL konfigurācijas failiem. Tas tiek darÄ«ts, lai utilÄ«ta varētu izmantot jÅ«su DBVS iestatÄ«jumus, katras dublēŔanas laikā manuāli nenorādot parametrus.

Piemēram, vērtÄ«ba datu direktorijs un daži parametri InnoDB Mēs iegÅ«stam XtraBackup no jÅ«su DBVS konfigurācijas.

Ja vēlaties, lai XtraBackup darbotos, vēlaties ignorēt sadaļā norādÄ«tos parametrus [mysqld], pēc tam vienkārÅ”i norādiet tos konfigurācijas failā sadaļā [xtrabackup]. Tā kā tie tiks lasÄ«ti vēlāk, viņu prioritāte bÅ«s augstāka.

Jums nav jāpievieno nekādi parametri my.cnf. Komandrindā var norādÄ«t visus nepiecieÅ”amos parametrus. Parasti vienÄ«gais, ko var ērti ievietot sadaļā [xtrabackup] tavs my.cnf ir parametrs mērÄ·a_dir, kas pēc noklusējuma norāda direktoriju, kurā tiks ievietotas dublējumkopijas. Bet tas nav obligāti.

Piemērs, kā norādÄ«t ceļu uz direktoriju ar rezerves kopiju my.cnf:

[xtrabackup]
target_dir = /data/backups/mysql/

Rezerves skripts

Lai izveidotu dublējumu, varat izmantot Ŕādu skriptu:

#!/bin/bash

# Š£Š“Š°Š»ŃŠµŠ¼ Ганные в каталоге бекапа
rm -rf /mysql/backup

# CозГаём бекап
xtrabackup --user=xtrabackup 
 --password=xxxx_SECRET_xxxx 
 --backup 
 --target-dir=/mysql/backup

# Š’Ń‹ŠæŠ¾Š»Š½ŃŠµŠ¼ ŠæŠ¾Š“Š³Š¾Ń‚Š¾Š²ŠŗŃƒ бекапа Š“Š»Ń Ń€Š°Š·Š²Ń‘Ń€Ń‚Ń‹Š²Š°Š½ŠøŃ
xtrabackup --prepare --target-dir=/mysql/backup

# ДозГаём архив
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backup

Kas notiek skripta izpildes laikā?

Pirmkārt, mēs notÄ«rām (izdzēŔam) direktoriju, kurā saglabāsim rezerves kopiju:

rm -rf /mysql/backup.

Pēc tam, izmantojot utilÄ«tu XtraBackup izveidojiet rezerves kopiju un saglabājiet to /mysql/backup/:

xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup

IepriekÅ” mēs izveidojām lietotāju MySQL xtrabackup ar nepiecieÅ”amajām privilēģijām. Izmantojot parametru target-dir mēs norādām direktoriju, kurā jāsaglabā dublējums.

Svarīgs punkts!

Ņemiet vērā skripta rindiņu:

xtrabackup --prepare --target-dir=/mysql/backup

Kataloga dati /mysql/backup nav konsekventi, kamēr tie nav pagatavoti. 

Fakts ir tāds, ka failu kopēŔanas laikā var rasties izmaiņas. DarbÄ«ba xtrabackup --prepare --target-dir=/mysql/backup padara dublējuma datus perfekti konsekventus laika gaitā.

JÅ«s varat veikt datu sagatavoÅ”anas darbÄ«bu jebkurā maŔīnā. Tas nav jādara serverÄ«, kurā atrodas avota DBVS. Varat kopēt dublējumu uz mērÄ·a serveri un sagatavot to tur.

Pēdējā lieta, ko mēs darām, ir izveidot arhīvu, kurā ievietojam dublējumu:

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-Ā«$(date % F% H% M% S)Ā».gz /mysql/backup

Dublējuma atjaunoÅ”ana 

Lai varētu atjaunot dublējumu mērÄ·a serverÄ«, datiem ir jāiziet sagatavoÅ”anas posms. Skatiet iepriekÅ”, kā to izdarÄ«t.

Datu atkopÅ”anas process ir ļoti vienkārÅ”s. Jums ir jāizņem dublējums no arhÄ«va un jāaizstāj dati datu direktorijs.

Kā nomainīt datus datu direktorijā?

Apsvērsim divus variantus.

iespēja 1

Izmantojiet utilÄ«tu XtraBackup. Jums jānorāda opcija --kopēt atpakaļ

Tālāk esoŔā komanda pārsÅ«tÄ«s dublējumu uz datu direktorijs mērÄ·a serveris:

xtrabackup --copy-back --target-dir=/mysql/backup

iespēja 2

To var izdarÄ«t savādāk, iztikt bez utilÄ«tas XtraBackup.

Viss, kas jums jādara, ir kopēt dublējumu uz datu direktorijs. To var izdarÄ«t ar cp vai rsync.

Ir svarÄ«gi saprast, ka dublējuma atjaunoÅ”anas procedÅ«ra ir tikai direktorija satura aizstāŔana datu direktorijs.

Pirms sākat atjaunot dublējumu mērķa serverī, jums ir:

  • Apturēt MySQL serveri.

  • NotÄ«rÄ«t mapi datu direktorijs vai pārvietot tā saturu uz citu vietu. Katalogs datu direktorijs jābÅ«t tukÅ”am.

Pēc datu pārsÅ«tīŔanas pabeigÅ”anas uz datu direktorijs MySQL serveri var palaist.

izmantoti materiāli

Oficiālā dokumentācija Perkona XtraBackup.

Avots: www.habr.com

Iegādājieties uzticamu mitināŔanu vietnēm ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa vietņu mitināŔanu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster