Stvaranje MySQL sigurnosne kopije pomoću uslužnog programa XtraBackup

Percona XtraBackup je uslužni program za vruće sigurnosne kopije baze podataka MySQL.

Prilikom izrade sigurnosne kopije podataka nijedna se tablica ne zaključava, a vaš sustav nastavlja s radom bez ikakvih ograničenja.

XtraBackup 2.4 može izraditi sigurnosne kopije tablica InnoDBXtraDB и MojISAM na serverima MySQL 5.11, 5.5, 5.6 i 5.7, a također i na poslužitelju percona za MySQL с XtraDB.

Za rad s MySQL 8.x treba koristiti verziju XtraBackup 8.x. Ovaj članak će govoriti samo o XtraBackup 2.4.

Glavna prednost XtraBackup je da je ovaj uslužni program prikladan i za stvaranje sigurnosnih kopija visoko opterećenih poslužitelja i za sustave s malim brojem transakcija.

Ako je ukupna veličina vaših MySQL baza podataka značajna (desetke gigabajta), onda standardni uslužni program mysqldump neće vam omogućiti brzo stvaranje sigurnosne kopije, a vraćanje dumpa će potrajati puno vremena.

Instalacija

Instalacija XtraBackup iz spremišta pogodan Percona.

Redom pokrenite sljedeće naredbe:

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. Nakon instalacije pokrenite naredbu xtrabackup -v. Budući da je važno provjeriti radi li uslužni program ispravno na poslužitelju. Kao rezultat toga, na zaslonu će se prikazati nešto poput ovoga:

xtrabackup: prepoznati argumenti poslužitelja: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup verzija 2.4.20 temeljena na MySQL poslužitelju 5.7.26 Linux (x8664) (ID revizije: c8b4056)

Stvaranje MySQL sigurnosne kopije pomoću uslužnog programa XtraBackup

Prava pristupa, dopuštenja i privilegije 

XtraBackup bi trebao moći:

  • Povežite se na svoj MySQL poslužitelj.

  • Imati prava pristupa imeniku je podatak

  • Prilikom izrade sigurnosne kopije, imajte prava pisanja na navedeni parametar ciljani-dir katalog.

Što je datadir?

je podatak je direktorij u kojem se nalazi poslužitelj baze podataka MySQL pohranjuje podatke. Sve baze podataka, sve tablice su tu. Na većini distribucija Linuxa zadani direktorij je /var/lib/mysql.

Što je ciljni direktorij?

ciljani-dir - Ovo je direktorij u koji će se spremiti sigurnosna kopija.

Korisnik baze podataka treba sljedeća prava pristupa tablicama i bazama podataka koje treba sigurnosno kopirati:

  • PONOVO UČITAJ i ZAKLJUČAJ STOLOVE

  • KLIJENT REPLIKACIJE

  • STVARANJE TABLIČNOG PROSTORA

  • POSTUPAK

  • SUPER

  • STVORITI

  • INSERT

  • SELECT

Konfiguracija 

Konfiguracija XtraBackup učinjeno pomoću opcija koje se ponašaju isto kao standardne MySQL opcije.

Što to znači?

Konfiguracijski parametri mogu se specificirati u naredbenom retku ili u konfiguracijskoj datoteci DBMS-a, na primjer u /etc/my.cnf.

Uslužni program XtraBackup čita particije nakon pokretanja [Mysqld] и [xtrabackup] iz MySQL konfiguracijskih datoteka. Ovo je učinjeno kako bi uslužni program mogao koristiti postavke vašeg DBMS-a bez potrebe za ručnim određivanjem parametara tijekom svake sigurnosne kopije.

Na primjer, vrijednost je podatak i neke parametre InnoDB Dobivamo XtraBackup iz konfiguracije vašeg DBMS-a.

Ako želite da XtraBackup radi, želite nadjačati parametre koji se nalaze u odjeljku [Mysqld], zatim ih samo navedite u konfiguracijskoj datoteci u odjeljku [xtrabackup]. Budući da će se čitati kasnije, prioritet će im biti veći.

Ne morate dodavati nikakve parametre moj.cnf. Svi potrebni parametri mogu se odrediti u naredbenom retku. Obično je jedina stvar koja se može prikladno smjestiti u odjeljak [xtrabackup] vaš moj.cnf je parametar target_dir, koji prema zadanim postavkama određuje direktorij u koji će biti postavljene sigurnosne kopije. Ali ovo nije obavezno.

Primjer navođenja staze do direktorija u kojem se nalazi sigurnosna kopija moj.cnf:

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

Sigurnosna skripta

Za izradu sigurnosne kopije možete koristiti sljedeću 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

Što se događa tijekom izvršavanja skripte?

Prije svega čistimo (brišemo) direktorij u koji ćemo spremiti sigurnosnu kopiju:

rm -rf /mysql/backup.

Zatim, pomoću uslužnog programa XtraBackup napravite sigurnosnu kopiju i spremite je /mysql/backup/:

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

Prethodno smo kreirali korisnika u MySQL-u xtrabackup s potrebnim privilegijama. Pomoću parametra target-dir odredimo direktorij u koji treba spremiti sigurnosnu kopiju.

Važna točka!

Obratite pažnju na redak skripte:

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

Kataloški podaci /mysql/backup nisu konzistentni dok se ne skuhaju. 

Činjenica je da se promjene mogu dogoditi tijekom kopiranja datoteka. Operacija xtrabackup --prepare --target-dir=/mysql/backup čini sigurnosne kopije podataka savršeno dosljednima tijekom vremena.

Operaciju pripreme podataka možete izvesti na bilo kojem računalu. Nema potrebe to činiti na poslužitelju na kojem se nalazi izvorni DBMS. Sigurnosnu kopiju možete kopirati na ciljni poslužitelj i tamo je pripremiti.

Zadnje što radimo je kreiranje arhive u koju ćemo smjestiti našu sigurnosnu kopiju:

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

Vraćanje sigurnosne kopije 

Prije nego što možete vratiti sigurnosnu kopiju na ciljni poslužitelj, podaci moraju proći kroz fazu pripreme. Pogledajte gore kako to učiniti.

Proces oporavka podataka je vrlo jednostavan. Morate izdvojiti sigurnosnu kopiju iz arhive i zamijeniti podatke u njoj je podatak.

Kako zamijeniti podatke u datadir-u?

Razmotrimo dvije mogućnosti.

Opcija 1

Koristite uslužni program XtraBackup. Morate navesti opciju --copy-back

Donja naredba prenijet će sigurnosnu kopiju na je podatak ciljni poslužitelj:

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

Opcija 2

Možete to učiniti drugačije, bez uslužnog programa XtraBackup.

Sve što trebate učiniti je kopirati sigurnosnu kopiju na je podatak. To možete učiniti s cp ili rsync.

Važno je razumjeti da se postupak vraćanja sigurnosne kopije svodi samo na zamjenu sadržaja direktorija je podatak.

Prije nego počnete obnavljati sigurnosnu kopiju na ciljnom poslužitelju, morate:

  • Zaustavite MySQL poslužitelj.

  • Očisti mapu je podatak ili premjestiti njegov sadržaj na drugo mjesto. Katalog je podatak mora biti prazno.

Nakon završetka prijenosa podataka na je podatak MySQL poslužitelj se može pokrenuti.

materijali korišteni

Službena dokumentacija percona XtraBackup.

Izvor: www.habr.com

Dodajte komentar