Percona XtraBackup yn cyfleustodau ar gyfer cronfeydd data wrth gefn poeth MySQL.
Wrth greu copi wrth gefn o ddata, nid oes unrhyw dablau wedi'u cloi, ac mae'ch system yn parhau i weithredu heb unrhyw gyfyngiadau.
XtraBackup 2.4 yn gallu creu copïau wrth gefn o dablau InnoDB, XtraDB и MyISAM ar weinyddion MySQL 5.11, 5.5, 5.6 a 5.7, a hefyd ar y gweinydd percona gyfer MySQL с XtraDB.
I weithio gyda MySQL 8.x. dylid defnyddio fersiwn XtraBackup 8.x. Dim ond sôn am yr erthygl hon XtraBackup 2.4.
Y brif fantais XtraBackup yw bod y cyfleustodau hwn yn addas ar gyfer creu copïau wrth gefn o bethau wedi'u llwytho'n drwm gweinyddwyr, yn ogystal ag ar gyfer systemau sydd â nifer isel o drafodion.
Os yw cyfanswm maint eich cronfeydd data MySQL yn sylweddol (degau o gigabeit), yna'r cyfleustodau safonol mysqldump ni fydd yn caniatáu ichi greu copi wrth gefn yn gyflym, a bydd adfer y domen yn cymryd llawer o amser.
Gosod
Gosod XtraBackup o'r ystorfa addas Percona.
Rhedeg y gorchmynion canlynol yn olynol:
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. Ar ôl gosod, rhedeg y gorchymyn xtrabackup -v. Ers hynny, mae'n bwysig sicrhau bod y cyfleustodau'n gweithio'n gywir ar y gweinydd. O ganlyniad, bydd rhywbeth fel hyn yn cael ei arddangos ar y sgrin:
xtrabackup: dadleuon gweinydd cydnabyddedig: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup fersiwn 2.4.20 yn seiliedig ar weinydd MySQL 5.7.26 Linux (x8664) (ID adolygiad: c8b4056)

Hawliau mynediad, caniatadau a breintiau
Dylai XtraBackup allu:
Cysylltwch â'ch gweinydd MySQL.
Bod â hawliau mynediad i'r cyfeiriadur datadir.
Wrth greu copi wrth gefn, mae gennych hawliau ysgrifennu i'r paramedr penodedig targed-dir Catalog.
Beth yw datadir?
datadir yw'r cyfeiriadur lle mae'r gweinydd cronfa ddata MySQL yn storio data. Mae pob cronfa ddata, pob tabl wedi'u lleoli yno. Yn y rhan fwyaf o ddosraniadau Linux Yn ddiofyn, y cyfeiriadur hwn yw / var / lib / mysql.
Beth yw cyfeiriadur targed-dir?
targed-dir - Dyma'r cyfeiriadur lle bydd y copi wrth gefn yn cael ei gadw.
Mae angen yr hawliau mynediad canlynol i'r tablau a'r cronfeydd data ar ddefnyddiwr y gronfa ddata i gael copi wrth gefn:
AIL-LWYTHO A CHLOI BWYDRAU
CLEIENT ADDOLI
CREU LLE BWRDD
PROSES
SUPER
CREATE
RHOWCH
SELECT
Ffurfweddiad
Ffurfweddiad XtraBackup gwneud gan ddefnyddio opsiynau sy'n ymddwyn yr un fath ag opsiynau MySQL safonol.
Beth yw ystyr hyn?
Gellir pennu paramedrau ffurfweddu naill ai ar y llinell orchymyn neu yn y ffeil ffurfweddu DBMS, er enghraifft yn /etc/my.cnf.
Mae cyfleustodau XtraBackup yn darllen rhaniadau ar ôl eu lansio [mysqld] и [Xtrabackup] o ffeiliau cyfluniad MySQL. Gwneir hyn fel y gall y cyfleustodau ddefnyddio gosodiadau eich DBMS heb orfod nodi'r paramedrau â llaw yn ystod pob copi wrth gefn.
Er enghraifft, y gwerth datadir a rhai paramedrau InnoDB Rydym yn cael XtraBackup o ffurfweddiad eich DBMS.
Os ydych chi am ddiystyru'r paramedrau sydd yn yr adran er mwyn i XtraBackup weithio [mysqld], yna dim ond eu nodi yn y ffeil ffurfweddu yn yr adran [Xtrabackup]. Gan y byddant yn cael eu darllen yn ddiweddarach, bydd eu blaenoriaeth yn uwch.
Nid oes rhaid i chi ychwanegu unrhyw baramedrau at fy.cnf. Gellir nodi'r holl baramedrau gofynnol ar y llinell orchymyn. Fel arfer yr unig beth y gellir ei osod yn gyfleus yn yr adran [Xtrabackup] eich fy.cnf yn baramedr targed_dir, sydd yn ddiofyn yn pennu'r cyfeiriadur lle bydd copïau wrth gefn yn cael eu gosod. Ond mae hyn yn ddewisol.
Enghraifft o nodi'r llwybr i'r cyfeiriadur gyda chopi wrth gefn i mewn fy.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Sgript wrth gefn
Gallwch ddefnyddio'r sgript ganlynol i greu copi wrth gefn:
#!/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/backupBeth sy'n digwydd yn ystod gweithredu'r sgript?
Yn gyntaf oll, rydym yn clirio (dileu) y cyfeiriadur y byddwn yn cadw'r copi wrth gefn ynddo:
rm -rf /mysql/backup.
Yna, gan ddefnyddio'r cyfleustodau XtraBackup creu copi wrth gefn a'i gadw ynddo / mysql/wrth gefn/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupYn flaenorol, rydym wedi creu defnyddiwr yn MySQL xtrabackup gyda'r breintiau gofynol. Gan ddefnyddio'r paramedr target-dir rydym yn nodi'r cyfeiriadur lle dylid cadw'r copi wrth gefn.
Pwynt pwysig!
Sylwch ar y llinell sgript:
xtrabackup --prepare --target-dir=/mysql/backup
Data catalog /mysql/wrth gefn ddim yn gyson nes eu bod wedi coginio.
Y ffaith yw y gallai newidiadau ddigwydd wrth gopïo ffeiliau. Gweithrediad xtrabackup --prepare --target-dir=/mysql/backup gwneud data wrth gefn yn berffaith gyson dros amser.
Gallwch chi berfformio'r gweithrediad paratoi data ar unrhyw beiriant. Nid oes angen gwneud hyn ar y gweinydd lle mae'r ffynhonnell DBMS wedi'i lleoli. Gallwch gopïo'r copi wrth gefn i'r gweinydd targed a'i baratoi yno.
Y peth olaf rydyn ni'n ei wneud yw creu archif lle rydyn ni'n gosod ein copi wrth gefn:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupAdfer copi wrth gefn
Cyn y gallwch chi adfer copi wrth gefn i'r gweinydd targed, rhaid i'r data fynd trwy gyfnod paratoi. Gweler uchod am sut i wneud hyn.
Mae'r broses adfer data yn syml iawn. Mae angen i chi dynnu'r copi wrth gefn o'r archif a disodli'r data i mewn datadir.
Sut i ddisodli data yn datadir?
Gadewch i ni ystyried dau opsiwn.
Opsiwn 1
Defnyddiwch y cyfleustodau XtraBackup. Mae angen i chi nodi opsiwn --copi-yn-ôl.
Bydd y gorchymyn isod yn trosglwyddo'r copi wrth gefn i datadir gweinydd targed:
xtrabackup --copy-back --target-dir=/mysql/backupOpsiwn 2
Gallwch chi ei wneud yn wahanol, gwnewch heb y cyfleustodau XtraBackup.
Y cyfan sydd angen i chi ei wneud yw copïo'r copi wrth gefn i datadir. Gallwch chi wneud hyn gyda cp neu rsync.
Mae'n bwysig deall bod y drefn ar gyfer adfer copi wrth gefn yn dibynnu ar amnewid cynnwys y cyfeiriadur yn unig. datadir.
Cyn i chi ddechrau adfer copi wrth gefn ar y gweinydd targed, rhaid i chi:
Stopio gweinydd MySQL.
Clirio'r ffolder datadir neu symudwch ei gynnwys i leoliad arall. Catalog datadir rhaid bod yn wag.
Ar ôl cwblhau'r trosglwyddo data i datadir Gellir cychwyn gweinydd MySQL.
Deunyddiau a ddefnyddir
.
Ffynhonnell: hab.com
