XtraBackup yardım proqramından istifadə edərək MySQL ehtiyat nüsxəsinin yaradılması

Percona XtraBackup isti verilənlər bazası ehtiyat nüsxələri üçün bir yardım proqramıdır MySQL.

Məlumat ehtiyat nüsxəsini yaratarkən heç bir cədvəl kilidlənmir və sisteminiz heç bir məhdudiyyət olmadan işləməyə davam edir.

XtraBackup 2.4 cədvəllərin ehtiyat nüsxələrini yarada bilər InnoDBXtraDB и MyISAM serverlərdə MySQL 5.11, 5.5, 5.6 və 5.7, həm də serverdə Perkona uğrunda MySQL с XtraDB.

Ilə işləmək MySQL 8.x versiyasından istifadə edilməlidir XtraBackup 8.x. Bu məqalə yalnız haqqında danışacaq XtraBackup 2.4.

əsas üstünlüyü XtraBackup bu yardım proqramının yüksək yüklənmiş məlumatların ehtiyat nüsxələrini yaratmaq üçün uyğun olmasıdır serverlər, eləcə də az sayda əməliyyatı olan sistemlər üçün.

MySQL verilənlər bazalarınızın ümumi ölçüsü əhəmiyyətlidirsə (onlarla gigabayt), o zaman standart yardım proqramı mysqldump tez bir ehtiyat nüsxə yaratmağa imkan verməyəcək və zibilin bərpası çox vaxt aparacaq.

Quraşdırma

Quraşdırma XtraBackup anbardan tutarlı Percona.

Aşağıdakı əmrləri ardıcıllıqla yerinə yetirin:

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. Quraşdırıldıqdan sonra əmri işə salın xtrabackup -v. Çünki yardım proqramının serverdə düzgün işlədiyinə əmin olmaq vacibdir. Nəticədə ekranda belə bir şey görünəcək:

xtrabackup: tanınmış server arqumentləri: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup versiyası 2.4.20, MySQL server 5.7.26 əsasında Linux (x8664) (redaksiya nömrəsi: c8b4056)

XtraBackup yardım proqramından istifadə edərək MySQL ehtiyat nüsxəsinin yaradılması

Giriş hüquqları, icazələr və imtiyazlar 

XtraBackup aşağıdakıları bacarmalıdır:

  • MySQL serverinizə qoşulun.

  • Kataloqa giriş hüquqları var məlumatdır

  • Ehtiyat nüsxə yaratarkən, göstərilən parametrə yazma hüquqlarına sahib olun hədəf-dir kataloq.

Datadir nədir?

məlumatdır verilənlər bazası serverinin yerləşdiyi qovluqdur MySQL məlumatları saxlayır. Bütün verilənlər bazaları, bütün cədvəllər orada yerləşir. Əksər paylanmalarda Linux Varsayılan olaraq, bu qovluq /var/lib/mysql.

target-dir qovluğu nədir?

hədəf-dir - Bu, ehtiyat nüsxəsinin saxlanacağı qovluqdur.

Verilənlər bazası istifadəçisi ehtiyat nüsxəsini çıxarmaq üçün cədvəllərə və verilənlər bazalarına aşağıdakı giriş hüquqlarına ehtiyac duyur:

  • CƏDVƏLLƏRİ YENİDƏN YÜKLƏYİN və KİLİD EDİN

  • REPLİKASYON MÜŞTƏRİSİ

  • CƏDVƏLİ YARADIN

  • PROSES

  • SUPER

  • YARATDILAR

  • INSERT

  • SELECT

Konfiqurasiya 

Konfiqurasiya XtraBackup standart MySQL seçimləri ilə eyni davranan seçimlərdən istifadə etməklə həyata keçirilir.

Bu nə deməkdir?

Konfiqurasiya parametrləri ya komanda xəttində, ya da DBMS konfiqurasiya faylında göstərilə bilər, məsələn /etc/my.cnf.

XtraBackup yardım proqramı işə salındıqdan sonra bölmələri oxuyur [mysqld] и [xtrabackup] MySQL konfiqurasiya fayllarından. Bu, köməkçi proqramın hər bir ehtiyat nüsxəsi zamanı parametrləri əl ilə təyin etmədən DBMS parametrlərini istifadə edə bilməsi üçün edilir.

Məsələn, dəyər məlumatdır və bəzi parametrlər InnoDB DBMS konfiqurasiyasından XtraBackup əldə edirik.

XtraBackup-ın işləməsi üçün bölmədə olan parametrləri ləğv etmək istəyirsiniz [mysqld], sonra bölmədəki konfiqurasiya faylında onları göstərin [xtrabackup]. Daha sonra oxunacaqları üçün onların prioriteti daha yüksək olacaq.

Sizə heç bir parametr əlavə etmək lazım deyil my.cnf. Bütün tələb olunan parametrlər əmr satırında göstərilə bilər. Adətən bölməyə rahatlıqla yerləşdirilə bilən yeganə şeydir [xtrabackup] sizin my.cnf parametrdir target_dir, bu, standart olaraq ehtiyat nüsxələrin yerləşdiriləcəyi qovluğu müəyyən edir. Amma bu isteğe bağlıdır.

Ehtiyat nüsxəsi ilə qovluğa gedən yolu göstərmə nümunəsi my.cnf:

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

Yedək skripti

Yedək yaratmaq üçün aşağıdakı skriptdən istifadə edə bilərsiniz:

#!/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

Skript icrası zamanı nə baş verir?

Əvvəla, ehtiyat nüsxəsini saxlayacağımız qovluğu təmizləyirik (silin):

rm -rf /mysql/backup.

Sonra, yardım proqramından istifadə edin XtraBackup ehtiyat nüsxəsini yaradın və onu yadda saxlayın /mysql/backup/:

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

Əvvəllər MySQL-də istifadəçi yaratmışdıq xtrabackup tələb olunan imtiyazlarla. Parametrdən istifadə etməklə target-dir ehtiyat nüsxəsinin saxlanacağı qovluğu müəyyənləşdiririk.

Əhəmiyyətli bir nöqtə!

Skript xəttinə diqqət yetirin:

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

Kataloq məlumatları /mysql/backup bişənə qədər ardıcıl olmurlar. 

Fakt budur ki, faylları kopyalayarkən dəyişikliklər baş verə bilər. Əməliyyat xtrabackup --prepare --target-dir=/mysql/backup ehtiyat nüsxəsi məlumatlarını zamanla mükəmməl ardıcıl edir.

Məlumatların hazırlanması əməliyyatını istənilən maşında həyata keçirə bilərsiniz. Mənbə DBMS-nin yerləşdiyi serverdə bunu etməyə ehtiyac yoxdur. Yedəkləməni hədəf serverə köçürə və orada hazırlaya bilərsiniz.

Etdiyimiz son şey ehtiyat nüsxəmizi yerləşdirdiyimiz bir arxiv yaratmaqdır:

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

Yedək nüsxəsinin bərpası 

Hədəf serverə ehtiyat nüsxəsini bərpa etməzdən əvvəl məlumatlar hazırlıq mərhələsindən keçməlidir. Bunu necə etmək üçün yuxarıya baxın.

Məlumatların bərpası prosesi çox sadədir. Arxivdən ehtiyat nüsxəsini çıxarmalı və içindəki məlumatları dəyişdirməlisiniz məlumatdır.

Datadir-də məlumatları necə əvəz etmək olar?

Gəlin iki variantı nəzərdən keçirək.

Seçim 1

Köməkçi proqramdan istifadə edin XtraBackup. Seçim müəyyən etməlisiniz --kopya-geri

Aşağıdakı əmr ehtiyat nüsxəni köçürəcək məlumatdır hədəf server:

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

Seçim 2

Fərqli şəkildə edə bilərsiniz, kommunal olmadan edə bilərsiniz XtraBackup.

Sizə lazım olan yeganə şey ehtiyat nüsxəsini kopyalamaqdır məlumatdır. Bunu ilə edə bilərsiniz cp və ya rsync.

Anlamaq lazımdır ki, ehtiyat nüsxəsini bərpa etmək proseduru yalnız kataloqun məzmununu dəyişdirməkdən ibarətdir. məlumatdır.

Hədəf serverdə ehtiyat nüsxəsini bərpa etməyə başlamazdan əvvəl aşağıdakıları etməlisiniz:

  • MySQL serverini dayandırın.

  • Qovluğu təmizləyin məlumatdır və ya məzmununu başqa yerə köçürün. Kataloq məlumatdır boş olmalıdır.

Məlumat ötürülməsini tamamladıqdan sonra məlumatdır MySQL serveri işə salına bilər.

İstifadə olunan materiallar

Rəsmi sənədlər Perkona XtraBackup.

Mənbə: www.habr.com

DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster