పెర్కోనా ఎక్స్ట్రాబ్యాకప్ — డేటాబేస్ల హాట్ బ్యాకప్ కోసం ఒక యుటిలిటీ MySQL.
డేటా బ్యాకప్ను సృష్టించేటప్పుడు, ఏ టేబుల్స్ కూడా లాక్ చేయబడవు మరియు మీ సిస్టమ్ ఎటువంటి పరిమితులు లేకుండా పనిచేస్తూనే ఉంటుంది.
XtraBackup 2.4 పట్టికల బ్యాకప్ కాపీలను సృష్టించగలరు InnoDB, ఎక్స్ట్రాడిబి и మైసామ్ సర్వర్లలో MySQL 5.11, 5.5, 5.6, మరియు 5.7అలాగే సర్వర్లో కూడా పెర్కోనా కోసం MySQL с ఎక్స్ట్రాడిబి.
పని చేయడానికి 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=0xtrabackup వెర్షన్ 2.4.20, MySQL సర్వర్ 5.7.26 ఆధారంగా Linux (x8664) (రివిజన్ ఐడి: c8b4056)

యాక్సెస్ హక్కులు, అనుమతులు మరియు అధికారాలు
XtraBackup ఈ క్రింది వాటిని చేయగలగాలి:
మీ MySQL సర్వర్కు కనెక్ట్ అవ్వండి.
డైరెక్టరీకి యాక్సెస్ హక్కులు కలిగి ఉండండి డేటాడైర్.
బ్యాకప్ కాపీని సృష్టించేటప్పుడు, నిర్దిష్ట పారామీటర్కు వ్రాయడానికి హక్కులు ఉండాలి లక్ష్య-దిశ కేటలాగ్.
డేటాడిర్ అంటే ఏమిటి?
డేటాడైర్ డేటాబేస్ సర్వర్ ఉన్న డైరెక్టరీ ఇది. MySQL డేటాను నిల్వ చేస్తుంది. అన్ని డేటాబేస్లు, అన్ని పట్టికలు అక్కడ ఉంటాయి. చాలా పంపిణీలలో Linux డిఫాల్ట్గా, ఈ డైరెక్టరీ /var/lib/mysql.
టార్గెట్-డైరెక్టరీ అంటే ఏమిటి?
లక్ష్య-దిశ — బ్యాకప్ సేవ్ చేయబడే డైరెక్టరీ ఇది.
బ్యాకప్ చేయవలసిన పట్టికలు మరియు డేటాబేస్లకు సంబంధించి, డేటాబేస్ వినియోగదారునికి ఈ క్రింది యాక్సెస్ హక్కులు అవసరం:
పట్టికలను రీలోడ్ చేసి లాక్ చేయండి
ప్రతిరూపణ క్లయింట్
టేబుల్స్పేస్ను సృష్టించండి
PROCESS
SUPER
సృష్టించదు
ఇన్సర్ట్
ఎంచుకోండి
ఆకృతీకరణ
ఆకృతీకరణ XtraBackup ప్రామాణిక MySQL పారామీటర్ల వలెనే ప్రవర్తించే ఎంపికలను ఉపయోగించి ఇది సాధించబడుతుంది.
దీని అర్థం ఏమిటి?
కాన్ఫిగరేషన్ పారామీటర్లను కమాండ్ లైన్లో గానీ లేదా DBMS కాన్ఫిగరేషన్ ఫైల్లో గానీ పేర్కొనవచ్చు, ఉదాహరణకు /etc/my.cnf.
XtraBackup యుటిలిటీ ప్రారంభించిన తర్వాత పార్టిషన్లను చదువుతుంది [Mysqld] и [xtrabackup] MySQL కాన్ఫిగరేషన్ ఫైళ్ల నుండి. ప్రతి బ్యాకప్ కోసం మీ DBMS సెట్టింగ్లను మాన్యువల్గా పేర్కొనాల్సిన అవసరం లేకుండా, యుటిలిటీ వాటిని ఉపయోగించుకునేలా ఇది చేయబడుతుంది.
ఉదాహరణకు, అర్థం డేటాడైర్ మరియు కొన్ని పారామితులు InnoDB మేము మీ DBMS కాన్ఫిగరేషన్ నుండి XtraBackupను పొందుతాము.
మీరు 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/బ్యాకప్ వాటిని సిద్ధం చేసేంత వరకు స్థిరంగా ఉండవు.
విషయం ఏమిటంటే, ఫైళ్లను కాపీ చేస్తున్నప్పుడు మార్పులు జరిగి ఉండవచ్చు. ఆపరేషన్ xtrabackup --prepare --target-dir=/mysql/backup బ్యాకప్ డేటాను కాలక్రమేణా సంపూర్ణంగా స్థిరంగా ఉంచుతుంది.
మీరు డేటా ప్రిపరేషన్ ఆపరేషన్ను ఏ మెషీన్లోనైనా నిర్వహించవచ్చు. సోర్స్ DBMSను హోస్ట్ చేస్తున్న సర్వర్లో దీన్ని చేయవలసిన అవసరం లేదు. మీరు బ్యాకప్ను టార్గెట్ సర్వర్కు కాపీ చేసి, అక్కడ దాన్ని ప్రిపేర్ చేయవచ్చు.
మనం చేసే చివరి పని ఏమిటంటే, మన బ్యాకప్ కాపీని ఉంచే ఒక ఆర్కైవ్ను సృష్టించడం.
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupబ్యాకప్ను పునరుద్ధరించడం
టార్గెట్ సర్వర్కు బ్యాకప్ను పునరుద్ధరించే ముందు, డేటా ఒక సన్నాహక దశను పూర్తి చేయాలి. దీన్ని ఎలా చేయాలో సూచనల కోసం పైన చూడండి.
డేటా రికవరీ ప్రక్రియ చాలా సులభం. మీరు కేవలం ఆర్కైవ్ నుండి బ్యాకప్ను సంగ్రహించి, అందులోని డేటాను భర్తీ చేయాలి. డేటాడైర్.
డేటాడైర్లో డేటాను ఎలా మార్చాలి?
రెండు ఎంపికలను పరిశీలిద్దాం.
ఎంపిక 1
యుటిలిటీని ఉపయోగించండి XtraBackupమీరు ఎంపికను తప్పక పేర్కొనాలి —కోపి-బాస్క్.
కింది ఆదేశం బ్యాకప్ను తరలిస్తుంది డేటాడైర్ లక్ష్య సర్వర్:
xtrabackup --copy-back --target-dir=/mysql/backupఎంపిక 2
మీరు దీన్ని వేరే విధంగా చేయవచ్చు మరియు ఆ యుటిలిటీ లేకుండా కూడా చేయవచ్చు. XtraBackup.
మీరు చేయవలసిందల్లా బ్యాకప్ను కాపీ చేయడం డేటాడైర్మీరు దీని సహాయంతో దీన్ని చేయవచ్చు cp లేదా rsync.
బ్యాకప్ రికవరీ ప్రక్రియ అనేది కేవలం డైరెక్టరీలోని కంటెంట్లను భర్తీ చేయడమేనని అర్థం చేసుకోవడం ముఖ్యం. డేటాడైర్.
టార్గెట్ సర్వర్కు బ్యాకప్ను పునరుద్ధరించడం ప్రారంభించే ముందు, మీరు తప్పనిసరిగా:
MySQL సర్వర్ను ఆపండి.
ఫోల్డర్ను క్లియర్ చేయండి డేటాడైర్ లేదా దానిలోని విషయాలను మరొక ప్రదేశానికి తరలించండి కేటలాగ్ డేటాడైర్ ఖాళీగా ఉండాలి.
డేటా బదిలీ పూర్తయిన తర్వాత, డేటాడైర్ MySQL సర్వర్ను ప్రారంభించవచ్చు.
ఉపయోగించిన పదార్థాలు
.
మూలం: www.habr.com
