Creu copi wrth gefn MySQL gan ddefnyddio cyfleustodau XtraBackup

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 InnoDBXtraDB и 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-24

2. 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)

Creu copi wrth gefn MySQL gan ddefnyddio cyfleustodau XtraBackup

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/backup

Beth 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/backup

Yn 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/backup

Adfer 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/backup

Opsiwn 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

Dogfennaeth swyddogol percona XtraBackup.

Ffynhonnell: hab.com

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd â diogelwch DDoS, gweinyddwyr VPS VDS 🔥 Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster