Креирање МиСКЛ резервне копије помоћу услужног програма КстраБацкуп

Перцона КстраБацкуп је услужни програм за вруће резервне копије базе података МиСКЛ.

Када креирате резервну копију података, ниједна табела није закључана, а ваш систем наставља да ради без икаквих ограничења.

КстраБацкуп 2.4 може креирати резервне копије табела ИнноДБКстраДБ и МиИСАМ на серверима МиСКЛ 5.11, 5.5, 5.6 и 5.7, а такође и на серверу Перцона за МиСКЛ с КстраДБ.

За рад са МиСКЛ 8.к верзију треба користити КстраБацкуп 8.к. Овај чланак ће говорити само о КстраБацкуп 2.4.

Основна предност КстраБацкуп да је овај услужни програм погодан за креирање резервних копија високо оптерећених сервери, као и за системе са малим бројем трансакција.

Ако је укупна величина ваших МиСКЛ база података значајна (десетине гигабајта), онда стандардни услужни мисклдумп неће вам омогућити да брзо направите резервну копију, а враћање думпа ће потрајати много времена.

Инсталација

Инсталација КстраБацкуп из спремишта погодан Перцона.

Довршите следећу команду:

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=0 xtrabackup верзија 2.4.20 базирана на MySQL серверу 5.7.26 Linux (x8664) (ИД ревизије: c8b4056)

Креирање МиСКЛ резервне копије помоћу услужног програма КстраБацкуп

Права приступа, дозволе и привилегије 

КстраБацкуп би требало да буде у могућности да:

  • Повежите се са својим МиСКЛ сервером.

  • Имајте права приступа директоријуму је податак

  • Када креирате резервну копију, имате права за писање на наведени параметар таргет-дир каталог.

Шта је датадир?

је податак је директоријум где се налази сервер базе података МиСКЛ складишти податке. Све базе података, све табеле се налазе тамо. У већини дистрибуција Linux Подразумевано, овај директоријум је /вар/либ/мискл.

Шта је циљни директоријум?

таргет-дир - Ово је директоријум у који ће бити сачувана резервна копија.

Кориснику базе података су потребна следећа права приступа табелама и базама података за прављење резервне копије:

  • ПОНОВНО УЧИТАЈТЕ и ЗАКЉУЧАЈТЕ ТАБЕЛЕ

  • РЕПЛИЦАТИОН ЦЛИЕНТ

  • ЦРЕАТЕ ТАБЛЕСПАЦЕ

  • ПРОЦЕС

  • Супер

  • ЦРЕАТЕ

  • ИНСЕРТ

  • СЕЛЕЦТ

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

Конфигурација КстраБацкуп урађено коришћењем опција које се понашају исто као и стандардне МиСКЛ опције.

Шта ово значи?

Параметри конфигурације се могу навести или у командној линији или у конфигурационој датотеци ДБМС, на пример у /етц/ми.цнф.

Услужни програм КстраБацкуп чита партиције након покретања [мисклд] и [ктрабацкуп] из МиСКЛ конфигурационих датотека. Ово је урађено тако да услужни програм може да користи подешавања вашег ДБМС-а без потребе да ручно наведе параметре током сваке резервне копије.

На пример, вредност је податак и неки параметри ИнноДБ Добијамо КстраБацкуп из конфигурације вашег ДБМС-а.

Ако КстраБацкуп ради, желите да заобиђете параметре који се налазе у одељку [мисклд], а затим их само наведите у конфигурационој датотеци у одељку [ктрабацкуп]. Пошто ће се читати касније, њихов приоритет ће бити већи.

Не морате да додајете никакве параметре ми.цнф. Сви потребни параметри се могу навести у командној линији. Обично једина ствар која се може погодно поставити у одељку [ктрабацкуп] твој његов ми.цнф је параметар таргет_дир, који подразумевано одређује директоријум у који ће бити смештене резервне копије. Али ово је опционо.

Пример навођења путање до директоријума са резервном копијом у ми.цнф:

[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 --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup

Раније смо креирали корисника у МиСКЛ-у xtrabackup са потребним привилегијама. Користећи параметар target-dir наводимо директоријум у који треба да се сачува резервна копија.

Важна ствар!

Обратите пажњу на линију скрипте:

xtrabackup --prepare --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

Враћање резервне копије 

Пре него што можете да вратите резервну копију на циљни сервер, подаци морају проћи кроз припремну фазу. Погледајте изнад како то учинити.

Процес опоравка података је веома једноставан. Морате да издвојите резервну копију из архиве и замените податке је податак.

Како заменити податке у датадир-у?

Хајде да размотримо две опције.

Опција КСНУМКС

Користите услужни програм КстраБацкуп. Морате да наведете опцију --цопи-бацк

Наредба у наставку ће пренети резервну копију на је податак циљни сервер:

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

Опција КСНУМКС

Можете то учинити другачије, без услужног програма КстраБацкуп.

Све што треба да урадите је да копирате резервну копију у је податак. Можете то учинити са cp или рсинц.

Важно је разумети да се процедура за враћање резервне копије своди на само замену садржаја директоријума је податак.

Пре него што почнете да враћате резервну копију на циљни сервер, морате:

  • Зауставите МиСКЛ сервер.

  • Обриши фолдер је податак или преместите његов садржај на другу локацију. Каталог је податак мора бити празан.

Након завршетка преноса података у је податак МиСКЛ сервер се може покренути.

Коришћени материјали

Службена документација Перцона КстраБацкуп.

Извор: ввв.хабр.цом

Купите поуздан хостинг за сајтове са ДДоС заштитом, ВПС ВДС сервере 🔥 Купите поуздан веб хостинг са DDoS заштитом, VPS VDS сервере | ProHoster