Percona XtraBackup як утилита барои нусхабардории пойгоҳи додаҳои гарм аст MySQL.
Ҳангоми сохтани нусхаи эҳтиётии додаҳо ягон ҷадвал баста намешавад ва системаи шумо бе ягон маҳдудият кор мекунад.
XtraBackup 2.4 метавонад нусхаҳои эҳтиётии ҷадвалҳоро эҷод кунад InnoDB, XtraDB и MyISAM дар серверҳо MySQL 5.11, 5.5, 5.6 ва 5.7, ва инчунин дар сервер Перкона барои MySQL с XtraDB.
Барои кор кардан бо 8.x MySQL версия бояд истифода шавад XtraBackup 8.x. Ин мақола танҳо дар бораи он сӯҳбат хоҳад кард XtraBackup 2.4.
Афзалияти асосӣ XtraBackup оё ин утилит барои эҷоди нусхаҳои эҳтиётии файлҳои хеле боршуда мувофиқ аст? серверҳо, инчунин барои системаҳое, ки шумораи ками транзаксияҳо доранд.
Агар андозаи умумии пойгоҳи додаҳои MySQL-и шумо назаррас бошад (даҳҳо гигабайт), он гоҳ утилитаи стандартӣ mysqldump ба шумо имкон намедиҳад, ки нусхаи эҳтиётиро зуд эҷод кунед ва барқарор кардани партов вақти зиёдро мегирад.
параметр
параметр XtraBackup аз анбор ҲАТ Перкона.
Фармонҳои зеринро пайдарпай иҷро кунед:
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-242. Пас аз насб, фармонро иҷро кунед 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 версияи 2.4.20 дар асоси сервери MySQL 5.7.26 Linux (x8664) (ID-и таҳрир: c8b4056)

Ҳуқуқҳои дастрасӣ, иҷозатҳо ва имтиёзҳо
XtraBackup бояд қодир бошад:
Ба сервери MySQL-и худ пайваст шавед.
Ҳуқуқи дастрасӣ ба директорияро дошта бошед маълумотнома.
Ҳангоми сохтани нусхаи эҳтиётӣ, ҳуқуқи навиштан ба параметри муайяншударо дошта бошед максад-директор каталог.
Datadir чист?
маълумотнома директорияест, ки дар он сервери пойгоҳи додаҳо ҷойгир аст MySQL маълумотро нигоҳ медорад. Ҳамаи пойгоҳҳои додаҳо, ҳамаи ҷадвалҳо дар он ҷо ҷойгиранд. Дар аксари тақсимот Linux Бо нобаёнӣ, ин директория аст /var/lib/mysql.
Directory target-dir чист?
максад-директор - Ин директорияест, ки дар он нусхаи эҳтиётӣ захира карда мешавад.
Барои нусхабардорӣ ба корбари пойгоҳи додаҳо ҳуқуқҳои зерини дастрасӣ ба ҷадвалҳо ва пойгоҳи додаҳо лозим аст:
Ҷадвалҳоро аз нав бор кунед ва қулф кунед
МИЗЧОИ ТАКРИЯ
Эҷоди фазои ҷадвал
РАФТИ
супер
Креатив
INSERT
SELECT
Танзимот
Танзимот XtraBackup бо истифода аз вариантҳое, ки бо имконоти стандартии MySQL рафтор мекунанд, анҷом дода мешавад.
Ин чӣ маъно дорад?
Параметрҳои конфигуратсияро дар сатри фармон ё дар файли конфигуратсияи DBMS муайян кардан мумкин аст, масалан дар /etc/my.cnf.
Утилитаи XtraBackup қисмҳоро пас аз оғозёбӣ мехонад [mysqld] и [xtrabackup] аз файлҳои конфигуратсияи MySQL. Ин барои он анҷом дода мешавад, ки утилита метавонад танзимоти DBMS-и шуморо бидуни ба таври дастӣ муайян кардани параметрҳо ҳангоми ҳар як нусхабардорӣ истифода барад.
Масалан, арзиши маълумотнома ва баъзе параметрҳо InnoDB Мо XtraBackup-ро аз конфигуратсияи DBMS-и худ мегирем.
Агар барои 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 маълумоти эҳтиётиро бо мурури замон комилан мувофиқ месозад.
Шумо метавонед амалиёти омодасозии маълумотро дар ҳама гуна мошин иҷро кунед. Дар сервере, ки сарчашмаи DBMS ҷойгир аст, ин корро кардан лозим нест. Шумо метавонед нусхаи эҳтиётиро ба сервери мавриди ҳадаф нусхабардорӣ кунед ва дар он ҷо омода кунед.
Охирин коре, ки мо мекунем, ин эҷод кардани бойгониест, ки дар он нусхаи эҳтиётии худро ҷойгир мекунем:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupБарқарор кардани нусхаи эҳтиётӣ
Пеш аз он ки шумо нусхаи эҳтиётиро ба сервери мавриди ҳадаф барқарор кунед, маълумот бояд аз марҳилаи омодагӣ гузарад. Барои чӣ тавр ин корро кардан ба боло нигаред.
Раванди барқарорсозии маълумот хеле содда аст. Шумо бояд нусхаи эҳтиётиро аз бойгонӣ хориҷ кунед ва маълумотро дар он иваз кунед маълумотнома.
Чӣ тавр маълумотро дар datadir иваз кардан мумкин аст?
Биёед ду вариантро баррасӣ кунем.
Интихоби 1
Утилитаро истифода баред XtraBackup. Шумо бояд як вариантро муайян кунед --нусхабардорӣ.
Фармони зер нусхаи эҳтиётиро ба маълумотнома сервери мақсаднок:
xtrabackup --copy-back --target-dir=/mysql/backupИнтихоби 2
Шумо метавонед онро ба таври дигар иҷро кунед, бидуни хидмат XtraBackup.
Ба шумо танҳо лозим аст, ки нусхабардории нусхабардорӣ ба он аст маълумотнома. Шумо метавонед ин корро бо cp ё rsync.
Фаҳмидани он муҳим аст, ки тартиби барқарорсозии нусхаи эҳтиётӣ танҳо иваз кардани мундариҷаи директорияро дар бар мегирад. маълумотнома.
Пеш аз оғози барқарорсозии нусхабардорӣ дар сервери мавриди ҳадаф, шумо бояд:
Сервери MySQL-ро қатъ кунед.
Папкаро тоза кунед маълумотнома ё мундариҷаи онро ба ҷои дигар интиқол диҳед. Каталог маълумотнома бояд холӣ бошад.
Пас аз анҷом додани интиқоли маълумот ба маълумотнома Сервери MySQL метавонад оғоз шавад.
Маводи истифодашуда
.
Манбаъ: will.com
