XtraBackup утилитасын пайдаланып MySQL сақтық көшірмесін жасау

Percona XtraBackup дерекқордың сақтық көшірмесін жасауға арналған утилита болып табылады MySQL.

Деректердің сақтық көшірмесін жасау кезінде ешбір кесте құлыпталмайды және жүйе ешбір шектеусіз жұмысын жалғастырады.

XtraBackup 2.4 кестелердің резервтік көшірмелерін жасай алады InnoDBXtraDB и MyISAM серверлерде MySQL 5.11, 5.5, 5.6 және 5.7, сонымен қатар серверде Перкона үшін MySQL с XtraDB.

Жұмыс істеу үшін MySQL 8.x нұсқасын пайдалану керек XtraBackup 8.x. Бұл мақалада тек әңгіме болады XtraBackup 2.4.

Негізгі артықшылығы XtraBackup бұл утилита жоғары жүктелген файлдардың сақтық көшірмелерін жасауға жарамды ма? серверлер, сондай-ақ транзакциялар саны аз жүйелер үшін.

Егер MySQL дерекқорларының жалпы өлшемі маңызды болса (ондаған гигабайт), онда стандартты утилита mysqldump сақтық көшірмені жылдам жасауға мүмкіндік бермейді және қоқысты қалпына келтіру көп уақытты алады.

параметр

параметр XtraBackup репозиторийден APT Перкона.

Келесі пәрмендерді ретімен орындаңыз:

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. Орнатқаннан кейін пәрменді іске қосыңыз xtrabackup -v. Өйткені, қызметтік бағдарламаның серверде дұрыс жұмыс істейтініне көз жеткізу маңызды. Нәтижесінде экранда келесідей нәрсе көрсетіледі:

xtrabackup: танылған сервер аргументтері: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup MySQL 5.7.26 серверіне негізделген 2.4.20 нұсқасы Linux (x8664) (түзету идентификаторы: c8b4056)

XtraBackup утилитасын пайдаланып MySQL сақтық көшірмесін жасау

Қол жеткізу құқықтары, рұқсаттар және артықшылықтар 

XtraBackup келесі әрекеттерді орындауы керек:

  • MySQL серверіңізге қосылыңыз.

  • Каталогқа кіру құқығы бар datadir

  • Сақтық көшірме жасау кезінде көрсетілген параметрге жазу құқықтарына ие болыңыз мақсат-реж каталог.

Datadir дегеніміз не?

datadir дерекқор сервері орналасқан каталог болып табылады MySQL деректерді сақтайды. Барлық дерекқорлар, барлық кестелер сол жерде орналасқан. Көптеген дистрибутивтерде Linux Әдепкі бойынша, бұл каталог /var/lib/mysql.

target-dir каталогы дегеніміз не?

мақсат-реж - Бұл сақтық көшірме сақталатын каталог.

Дерекқор пайдаланушысына сақтық көшірмесі жасалатын кестелер мен дерекқорларға келесі қатынас құқықтары қажет:

  • КЕСТЕЛЕРДІ ҚАЙТА ЖҮКТЕП ЖӘНЕ ҚҰЛЫПТАУ

  • РЕПЛИКАЦИЯЛЫҚ КЛИЕНТ

  • КЕҢІСТІК ЖАСАУ

  • PROCESS

  • ТАМАША

  • CREATE

  • INSERT

  • ТАҢДАУ

Конфигурация 

Конфигурация XtraBackup стандартты MySQL опцияларымен бірдей әрекет ететін опцияларды қолдану арқылы орындалады.

Бұл нені білдіреді?

Конфигурация параметрлерін пәрмен жолында немесе ДҚБЖ конфигурация файлында көрсетуге болады, мысалы /etc/my.cnf.

XtraBackup утилитасы іске қосылғаннан кейін бөлімдерді оқиды [mysqld] и [xtrabackup] MySQL конфигурация файлдарынан. Бұл қызметтік бағдарлама әрбір сақтық көшірме жасау кезінде параметрлерді қолмен көрсетпей, ДҚБЖ параметрлерін пайдалана алатындай етіп жасалады.

Мысалы, мән datadir және кейбір параметрлер InnoDB Біз XtraBackup бағдарламасын ДҚБЖ конфигурациясынан аламыз.

XtraBackup жұмыс істеуі үшін бөлімдегі параметрлерді қайта анықтағыңыз келеді [mysqld], содан кейін бөлімдегі конфигурация файлында оларды көрсетіңіз [xtrabackup]. Олар кейінірек оқылатындықтан, олардың басымдығы жоғары болады.

Сізге ешқандай параметр қосудың қажеті жоқ my.cnf. Барлық қажетті параметрлерді пәрмен жолында көрсетуге болады. Әдетте бөлімге ыңғайлы орналастыруға болатын жалғыз нәрсе [xtrabackup] Сіздің my.cnf параметр болып табылады мақсатты_дир, ол әдепкі бойынша сақтық көшірмелер орналастырылатын каталогты көрсетеді. Бірақ бұл міндетті емес.

Сақтық көшірмелері бар каталогқа жолды көрсету мысалы my.cnf:

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

Сақтық көшірме сценарийі

Сақтық көшірме жасау үшін келесі сценарийді пайдалануға болады:

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

Сценарийді орындау кезінде не болады?

Ең алдымен, біз сақтық көшірмені сақтайтын каталогты тазалаймыз (жойамыз):

rm -rf /mysql/backup.

Содан кейін қызметтік бағдарламаны пайдаланыңыз XtraBackup сақтық көшірме жасаңыз және оны сақтаңыз /mysql/backup/:

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

Бұрын біз MySQL-де пайдаланушы құрдық xtrabackup қажетті артықшылықтармен. Параметрді пайдалану target-dir сақтық көшірме сақталатын каталогты көрсетеміз.

Маңызды нәрсе!

Сценарий жолына назар аударыңыз:

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

Каталог деректері /mysql/backup олар піскенше біркелкі болмайды. 

Мәселе мынада, файлдарды көшіру кезінде өзгерістер болуы мүмкін. Операция xtrabackup --prepare --target-dir=/mysql/backup сақтық көшірме деректерін уақыт өте үйлесімді етеді.

Деректерді дайындау әрекетін кез келген құрылғыда орындауға болады. ДҚБЖ көзі орналасқан серверде мұны істеудің қажеті жоқ. Сақтық көшірмені мақсатты серверге көшіріп, оны сол жерде дайындауға болады.

Біз жасайтын соңғы нәрсе - сақтық көшірмені орналастыратын мұрағат жасау:

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

Сақтық көшірме қалпына келтірілуде 

Мақсатты серверге сақтық көшірмені қалпына келтірмес бұрын деректер дайындық кезеңінен өтуі керек. Мұны қалай жасау керектігін жоғарыдан қараңыз.

Деректерді қалпына келтіру процесі өте қарапайым. Мұрағаттан сақтық көшірмені шығарып, ішіндегі деректерді ауыстыру керек datadir.

Datadir ішіндегі деректерді қалай ауыстыруға болады?

Екі нұсқаны қарастырайық.

1 нұсқасы

Утилитаны пайдаланыңыз XtraBackup. Опцияны көрсету керек --артқа көшіру

Төмендегі пәрмен сақтық көшірмені келесіге тасымалдайды datadir мақсатты сервер:

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

2 нұсқасы

Сіз мұны басқаша жасай аласыз, утилитасыз жасай аласыз XtraBackup.

Сізге тек сақтық көшірмені көшіру қажет datadir. Сіз мұны жасай аласыз cp немесе rsync.

Сақтық көшірмені қалпына келтіру процедурасы каталогтың мазмұнын ауыстыруға дейін созылатынын түсіну маңызды. datadir.

Мақсатты серверде сақтық көшірмені қалпына келтіруді бастамас бұрын, сізге қажет:

  • MySQL серверін тоқтатыңыз.

  • Қалтаны тазалау datadir немесе оның мазмұнын басқа орынға жылжытыңыз. Каталог datadir бос болуы керек.

Деректерді тасымалдауды аяқтағаннан кейін datadir MySQL серверін іске қосуға болады.

Қолданылатын материалдар

Ресми құжаттама Перкона XtraBackup.

Ақпарат көзі: www.habr.com

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster