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 агуулахаас НАТ Перкона.

Дараах тушаалуудыг дараалан ажиллуулна уу.

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 хувилбар 2.4.20 MySQL сервер 5.7.26 Linux (x8664) дээр суурилсан (хувилбарын дугаар: c8b4056)

XtraBackup хэрэгслийг ашиглан MySQL нөөцлөлт үүсгэх

Хандалтын эрх, зөвшөөрөл, давуу эрх 

XtraBackup нь дараахь зүйлийг хийх чадвартай байх ёстой.

  • MySQL сервертээ холбогдоно уу.

  • Лавлах руу нэвтрэх эрхтэй датадир

  • Нөөц хуулбар үүсгэхдээ заасан параметрт бичих эрхтэй зорилтот найруулагч каталог.

Datadir гэж юу вэ?

датадир нь өгөгдлийн сангийн сервер байрладаг лавлах юм MySQL өгөгдөл хадгалдаг. Бүх мэдээллийн сан, бүх хүснэгт тэнд байна. Ихэнх Линукс түгээлтийн хувьд анхдагч директор нь байдаг /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 серверийг эхлүүлэх боломжтой.

Ашигласан материал

Албан ёсны баримт бичиг Перкона XtraBackup.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх