Percona XtraBackup нь халуун мэдээллийн санг нөөцлөх хэрэгсэл юм MySQL.
Өгөгдлийн нөөцлөлт үүсгэх үед ямар ч хүснэгт түгжигдээгүй бөгөөд таны систем ямар ч хязгаарлалтгүйгээр үргэлжлүүлэн ажиллана.
XtraBackup 2.4 хүснэгтүүдийн нөөц хуулбарыг үүсгэж болно InnoDB, XtraDB и 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 агуулахаас НАТ Перкона.
Дараах тушаалуудыг дараалан ажиллуулна уу.
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=0 xtrabackup хувилбар 2.4.20 MySQL сервер 5.7.26 дээр суурилсан Linux (x8664) (засварын дугаар: c8b4056)

Хандалтын эрх, зөвшөөрөл, давуу эрх
XtraBackup нь дараахь зүйлийг хийх чадвартай байх ёстой.
MySQL сервертээ холбогдоно уу.
Лавлах руу нэвтрэх эрхтэй датадир.
Нөөц хуулбар үүсгэхдээ заасан параметрт бичих эрхтэй зорилтот найруулагч каталог.
Datadir гэж юу вэ?
датадир нь өгөгдлийн сангийн сервер байрладаг лавлах юм MySQL өгөгдлийг хадгалдаг. Бүх мэдээллийн сан, бүх хүснэгтүүд тэнд байрладаг. Ихэнх тархалтуудад Linux Анхдагчаар энэ лавлах нь /var/lib/mysql.
target-dir лавлах гэж юу вэ?
зорилтот найруулагч - Энэ бол нөөцлөлтийг хадгалах сан юм.
Мэдээллийн сангийн хэрэглэгч нөөцлөхийн тулд хүснэгт болон мэдээллийн санд хандах дараах эрхүүдийг авах шаардлагатай.
Хүснэгтүүдийг дахин ачаалах, түгжих
ХУУРЛАХ ҮЙЛЧЛҮҮЛЭГЧ
Хүснэгтийн орон зай үүсгэх
Процесс
МУНДАГ
CREATE
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 серверийг эхлүүлэх боломжтой.
Ашигласан материал
.
Эх сурвалж: www.habr.com
