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 Šī utilīta ir piemērota gan ļoti noslogotu serveru dublējumkopiju veidošanai, gan sistēmām ar mazu 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īti 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, pamatojoties uz MySQL servera 5.7.26 Linux (x8664) (pārskatīšanas 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 saglabā datus. Ir visas datu bāzes, visas tabulas. Lielākajā daļā Linux izplatījumu noklusējuma 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

Pievieno komentāru