Afirandina paşvekêşana MySQL bi karanîna XtraBackup

Percona XtraBackup amûrek ji bo paşvekêşana databasa germ e MySQL.

Dema ku paşvekêşana daneyê diafirîne, tu tablo nayên girtin, û pergala we bêyî ti sînordar xebata xwe didomîne.

XtraBackup 2.4 dikare kopiyên hilanînê yên tabloyan biafirîne InnoDBXtraDB и MyISAM li ser pêşkêşkeran MySQL 5.11, 5.5, 5.6 û 5.7, û her weha li ser serverê percona bo MySQL с XtraDB.

Ji bo xebatê bi MySQL 8.x versiyon divê were bikar anîn XtraBackup 8.x. Ev gotar dê tenê li ser biaxive XtraBackup 2.4.

Avantaja sereke XtraBackup ev e ku ev amûr ji bo afirandina kopiyên hilanînê yên barkêşiya pir maqûl e pêşkêşkerên, û her weha ji bo pergalên ku hejmareke kêm a danûstandinan hene.

Ger mezinahiya giştî ya databasên we yên MySQL girîng e (bi dehan gigabytes), wê hingê kargêriya standard mysqldump dê nehêle ku hûn bi lez kopiyek hilanînê biafirînin, û vegerandina dumpê dê gelek dem bigire.

mîhengê

mîhengê XtraBackup ji depoyê apt Percona.

Fermanên jêrîn li pey hev bixebitin:

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. Piştî sazkirinê, fermanê bimeşînin xtrabackup -v. Ji ber ku, girîng e ku meriv pê ewle bibe ku karûbar li ser serverê rast dixebite. Wekî encamek, tiştek weha dê li ser ekranê were xuyang kirin:

xtrabackup: recognized server arguments: — datadir=/var/lib/mysql — tmpdir=/tmp — server-id=1 — logbin=/var/log/mysql/mysql-bin.log — innodbbufferpoolsize=16384M — innodbfilepertable=1 — innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup version 2.4.20 based on MySQL server 5.7.26 Linux (x8664) (revision id: c8b4056)

Afirandina paşvekêşana MySQL bi karanîna XtraBackup

Gihîştina maf, destûr û îmtiyazan 

XtraBackup divê bikaribe:

  • Bi servera xweya MySQL ve girêdin.

  • Mafên gihîştina pelrêçê hebe dane ye

  • Dema ku kopiyek paşvekişandinê diafirînin, mafên nivîsandina pîvana diyarkirî hebe target-dir ketelog.

Datadir çi ye?

dane ye pelrêça ku servera databasê ye MySQL хранит данные. Все базы данных, все таблицы находятся там. В большинстве дистрибутивов Linux по умолчанию таким каталогом является /var/lib/mysql.

pelrêça target-dir çi ye?

target-dir - Ev pelrêça ku dê hilanînê were hilanîn e.

Pêdivî ye ku bikarhênerê databasê mafên gihîştina jêrîn ji tablo û databasan re were piştguh kirin:

  • MASÊN LI BERXWEDAN Û GIRTIN

  • CLIENT REPLICATION

  • CÎHÊ MASÊ ÇÊVEKIRIN

  • DOZ

  • YEKEMXWEŞ

  • CREATE

  • LÊZÊDEKIRIN

  • NEQANDIN

Guhertin 

Guhertin XtraBackup bi karanîna vebijarkên ku wekî vebijarkên standard MySQL tevdigerin têne kirin.

Ev çi tê wateyê?

Parametreyên vesazkirinê dikarin li ser rêzika fermanê an jî di pelê veavakirina DBMS de bêne diyar kirin, mînakî di /etc/my.cnf.

XtraBackup piştî destpêkirinê dabeşan dixwîne [mysqld] и [xtrabackup] ji pelên veavakirina MySQL. Ev tê kirin da ku karûbar bikaribe mîhengên DBMS-a we bikar bîne bêyî ku di her hilanînê de bi destan pîvanan diyar bike.

Ji bo nimûne, nirx dane ye û hin parametre InnoDB Em XtraBackup ji veavakirina DBMS-a we digirin.

Heke ji bo ku XtraBackup bixebite, hûn dixwazin pîvanên ku di beşê de ne bişopînin [mysqld], wê hingê tenê wan di pelê veavakirinê de di beşê de diyar bikin [xtrabackup]. Ji ber ku ew ê paşê bêne xwendin, pêşîniya wan dê bilindtir be.

Ne hewce ye ku hûn pîvanan lê zêde bikin my.cnf. Hemî pîvanên pêwîst dikarin li ser rêzika fermanê bêne diyar kirin. Bi gelemperî tenê tiştê ku dikare bi hêsanî di beşê de were danîn [xtrabackup] ya wî my.cnf pîvanek e target_dir, ku ji hêla xwerû ve pelrêça ku dê paşvekêşan lê werin danîn diyar dike. Lê ev vebijarkî ye.

Nimûneyek diyarkirina riya pelrêça ku bi kopiyek hilanînê tê de ye my.cnf:

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

Nivîsara Backup

Hûn dikarin skrîpta jêrîn bikar bînin da ku vegerek çêbikin:

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

Di dema pêkanîna senaryoyê de çi diqewime?

Berî her tiştî, em pelrêça ku em ê kopiya paşvekêşanê tê de hilînin paqij dikin (hilweşînin):

rm -rf /mysql/backup.

Dûv re, karûbar bikar bînin XtraBackup kopiyek hilanînê biafirînin û tê de hilînin /mysql/backup/:

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

Berê, me di MySQL de bikarhênerek çêkir xtrabackup bi îmtiyazên pêwîst. Bikaranîna pîvanê target-dir em pelrêça ku lê hilanînê divê were hilanîn diyar dikin.

Nîqaşek girîng

Têbînî rêzika nivîsê:

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

Daneyên katalogê /mysql/backup heta ku neyên pijandî ne lihevhatî ne. 

Rastî ev e ku di dema kopîkirina pelan de guhertin çêdibin. Emelî xtrabackup --prepare --target-dir=/mysql/backup daneyên hilanînê bi demê re bi tevahî hevgirtî dike.

Hûn dikarin operasyona amadekirina daneyê li ser her makîneyê bikin. Ne hewce ye ku meriv vê yekê li ser servera ku çavkaniya DBMS-ê lê ye were kirin. Hûn dikarin hilanînê li servera armancê kopî bikin û li wir amade bikin.

Tişta paşîn a ku em dikin ev e ku arşîvek ku em paşvekêşana xwe tê de cîh dikin çêbikin:

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

Vegerandina hilanînê 

Berî ku hûn bikarin hilanînê li servera armancê vegerînin, pêdivî ye ku dane qonaxek amadekariyê derbas bikin. Li jor binêre ka meriv çawa vê yekê dike.

Pêvajoya hilanîna daneyê pir hêsan e. Pêdivî ye ku hûn hilanînê ji arşîvê derxînin û daneya tê de biguhezînin dane ye.

Meriv çawa di datadir de daneyan biguhezîne?

Ka em du vebijarkan bifikirin.

Option 1

Karûbar bikar bînin XtraBackup. Pêdivî ye ku hûn vebijarkek diyar bikin --kopî-paş

Fermana jêrîn dê hilanînê veguhezîne dane ye servera armanc:

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

Option 2

Hûn dikarin cûda cûda bikin, bêyî karûbar bikin XtraBackup.

Tişta ku hûn hewce ne bikin ev e ku paşvekêşanê li ser kopî bikin dane ye. Hûn dikarin bi vê yekê bikin cp an rsync.

Girîng e ku meriv fêm bike ku prosedûra vegerandina paşvekişandinê tenê li şûna naveroka pelrêçê vedike. dane ye.

Berî ku hûn dest bi vegerandina hilanînê li ser servera armanc bikin, divê hûn:

  • Pêşkêşkara MySQL rawestînin.

  • Peldanka paqij bike dane ye an naveroka wê biguhezînin cîhek din. Ketelog dane ye divê vala be.

Piştî ku veguheztina daneyê biqede dane ye Pêşkêşkara MySQL dikare were destpêkirin.

Materyalên bikaranîn

Belgeya fermî percona XtraBackup.

Source: www.habr.com

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster