विषय - सूची
	- परिचय
- आवश्यक शर्तें
- चरण 1: एक गैर-रूट सिस्टम उपयोगकर्ता बनाएँ
- चरण 2: भंडारण इंजन की जाँच करें
- चरण 3: बैकअप के लिए एक डेटाबेस उपयोगकर्ता बनाएँ
- चरण 4: Percona XtraBackup स्थापित करें
- चरण 5: बैकअप संग्रहण निर्देशिका बनाएं
- चरण 6: पहला पूर्ण बैकअप बनाएं
- चरण 7: निम्न वृद्धिशील बैकअप बनाएँ
- चरण 8: डेटाबेस को पुनर्स्थापित करने के लिए बैकअप फाइल तैयार करें
- चरण 9: डेटाबेस को पुनर्स्थापित करें
- अगले कदम
परिचय
Percona XtraBackup एक मुफ्त MySQL आधारित हॉट बैकअप बनाने के लिए इस्तेमाल किया जाने वाला प्रोग्राम है। यह भी खुला-खट्टा है। Percona XtraBackup के साथ, आप MySQL, MariaDB, या Percona सर्वर डेटाबेस को चलाने के बिना हॉटफ़िक्स अपनी डेटाबेस सेवा को रोक कर या केवल पढ़ने के लिए बना सकते हैं। यह बहुत सारे ऑनलाइन व्यवसायों के लिए एक व्यवसायिक महत्वपूर्ण विशेषता है।
InnoDB, XtraDB, और HailDB भंडारण इंजन का उपयोग करने वाले डेटाबेस के लिए, Percona XtraBackup गैर-अवरोधक प्रदर्शन कर सकते हैं। MyISAM, मर्ज और आर्काइव स्टोरेज इंजन का उपयोग करने वाले डेटाबेस के लिए, Percona XtraBackup बैकअप प्रक्रिया के अंत में संक्षिप्त रूप से लिखकर रोककर बैकअप का प्रदर्शन कर सकता है।
इस लेख में, मैं आपको दिखाऊंगा कि कैसे वन-क्लिक वर्डप्रेस एप्लिकेशन के आधार पर एक वल्चर सर्वर पर पूर्ण और वृद्धिशील हॉट बैकअप करने के लिए Percona XtraBackup को स्थापित और उपयोग करना है। हम एक पूर्ण बैकअप और दो वृद्धिशील बैकअप का प्रदर्शन करेंगे, और फिर उसके अनुसार प्रत्येक तीन बैकअप की स्थिति के लिए डेटाबेस को पुनर्स्थापित करेंगे।
आवश्यक शर्तें
मुझे लगता है कि आपने स्क्रैच से वन-क्लिक वर्डप्रेस वल्चर सर्वर उदाहरण को तैनात किया है और एसएसएच का उपयोग करके रूट के रूप में लॉग इन किया है।
चरण 1: एक गैर-रूट सिस्टम उपयोगकर्ता बनाएँ
सुरक्षा उद्देश्यों के लिए, एक अनुशंसित अभ्यास रूट अनुमतियों के साथ एक अन्य उपयोगकर्ता खाता बनाने के लिए है, फिर सिस्टम में अपने दैनिक कार्यों को लॉग इन और प्रदर्शन करने के लिए इसका उपयोग करें। आप अभी भी कमांड के साथ लगभग सभी सुपरयुजर कमांड को निष्पादित कर सकते हैं sudo।
1) एक नया उपयोगकर्ता बनाएँ। sysuserअपने स्वयं के उपयोगकर्ता नाम से बदलें ।
useradd sysuser
2) अपने नए उपयोगकर्ता के लिए पासवर्ड सेट करें। sysuserअपने स्वयं के उपयोगकर्ता नाम से बदलें ।
passwd sysuser
3) अपने नए उपयोगकर्ता को रूट अनुमतियाँ प्रदान करें।
visudo
नीचे दिए गए पैराग्राफ का पता लगाएं।
## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL
इस अनुच्छेद के नीचे एक पंक्ति जोड़ें, sysuserअपने स्वयं के उपयोगकर्ता नाम के साथ बदलें ।
sysuser     ALL=(ALL)     ALL
सेव करके छोड़ो।
:wq
4) अपने नए उपयोगकर्ता खाते पर स्विच करें।
logout
फिर, अपने टर्मिनल विंडो से लॉग इन करने के लिए नए उपयोगकर्ता की क्रेडेंशियल्स का उपयोग करें।
चरण 2: भंडारण इंजन की जाँच करें
डिफ़ॉल्ट रूप से, MySQL रूट लॉगिन VPS पर सहेजा जाता है /root/.my.cnf। निम्नलिखित कमांड के साथ अपने टर्मिनल में पासवर्ड प्रदर्शित करें।
sudo cat /root/.my.cnf
MySQL कंसोल में लॉग इन करने के लिए स्क्रीन पर प्रदर्शित क्रेडेंशियल का उपयोग करें।
mysql -u root -p
MySQL शेल में, निम्न चलाएँ।
SHOW DATABASES;
सभी MySQL डेटाबेस को स्क्रीन पर प्रदर्शित किया जाएगा। जैसे नाम वाला डेटाबेस wp5273512वर्डप्रेस डेटाबेस है जिसका हम बैकअप लेना चाहते हैं। निम्नलिखित कमांड में, wp5273512अपने स्वयं के साथ बदलें :
USE wp5273512;
प्रत्येक तालिका के लिए भंडारण इंजन की जाँच करें:
SHOW TABLE STATUS\G
आप पाएंगे कि आपके वर्डप्रेस MySQL डेटाबेस की सभी तालिकाएं InnoDB स्टोरेज इंजन का उपयोग कर रही हैं, जो कि Percona XtraBackup के साथ हॉट बैकअप प्रदर्शन करने के लिए एकदम सही है।
MyISAM स्टोरेज इंजन का उपयोग करके किसी भी अन्य MySQL डेटाबेस के लिए, हम अभी भी पेरकोना XtraBackup के साथ संक्षेप में लिखकर रोक सकते हैं।
चरण 3: बैकअप के लिए एक डेटाबेस उपयोगकर्ता बनाएँ
अभी भी MySQL शेल में, बैकअप के लिए एक समर्पित डेटाबेस उपयोगकर्ता बनाने के लिए निम्न कमांड का उपयोग करें। डेटाबेस उपयोगकर्ता नाम xbuserऔर पासवर्ड xbpasswdको अपने स्वयं के साथ बदलना याद रखें :
CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
ऊपर दिए गए विशेषाधिकार पूर्ण पेर्कोना एक्स्ट्राबैकअप कार्यक्षमता के लिए आवश्यक हैं। आप कम कार्यक्षमता और बेहतर सुरक्षा के लिए उनमें से कुछ को निकाल सकते हैं। अधिक जानकारी के लिए, पेरकोना XtraBackup आधिकारिक वेबसाइट देखें ।
चरण 4: Percona XtraBackup स्थापित करें
आप Percona के RPM भंडार से Percona XtraBackup को काफी आसानी से स्थापित कर सकते हैं:
sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup
चरण 5: बैकअप संग्रहण निर्देशिका बनाएं
सबसे पहले, आपको उपयोगकर्ता sysuserको mysqlसमूह में जोड़ना होगा । sysuserअपने स्वयं के उपयोगकर्ता नाम से बदलें ।
sudo gpasswd -a sysuser mysql
पूर्ण बैकअप संग्रहीत करने के लिए एक निर्देशिका बनाएँ।
sudo mkdir -p /dbbackup/full/
वृद्धिशील बैकअप संग्रहीत करने के लिए एक और निर्देशिका बनाएं।
sudo mkdir -p /dbbackup/inc/
इन निर्देशिकाओं के स्वामी को उपयोगकर्ता sysuserऔर समूह में बदलें sysuser।
sudo chown -R sysuser:sysuser /dbbackup
इन परिवर्तनों को प्रभावी बनाने के लिए लॉग आउट करें। 
logout
फिर, फिर से लॉग इन sysuserकरें।
चरण 6: पहला पूर्ण बैकअप बनाएं
XtraBackup में मुख्य रूप से XtraBackup प्रोग्राम और innobackupexपर्ल स्क्रिप्ट शामिल हैं। आमतौर पर, आप innobackupexसुविधा के लिए विभिन्न ऑपरेटिंग प्रक्रियाओं को करने के लिए पर्ल स्क्रिप्ट का उपयोग कर सकते हैं ।
पहला पूर्ण बैकअप बनाने के लिए निम्न कमांड इनपुट करें। डेटाबेस उपयोगकर्ता नाम xbuser, डेटाबेस उपयोगकर्ता पासवर्ड xbpasswdऔर /dbbackup/full/अपने स्वयं के साथ पूर्ण बैकअप निर्देशिका को बदलना याद रखें ।
sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/
इस कमांड को सही तरीके से निष्पादित करने पर, आपको पुष्टिकरण संदेश "innobackupex: पूरा हुआ!" दिखाई देगा। आउटपुट की अंतिम पंक्ति में।
इस पूर्ण बैकअप की सभी नई बनाई गई फ़ाइलों को एक समय-मुद्रांकित निर्देशिका में संग्रहीत किया जाएगा /dbbackup/full/। उदाहरण के लिए, /dbbackup/full/2015-05-22_05-45-54।
चरण 7: निम्न वृद्धिशील बैकअप बनाएँ
पहला वृद्धिशील बैकअप बनाने के लिए निम्न कमांड इनपुट करें। तदनुसार आदेश में स्थानापन्न चर।
sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/
फिर, आप देखेंगे "innobackupex: ठीक है!" आउटपुट के अंत में जब कमांड सफलतापूर्वक निष्पादित होता है। बैकअप फ़ाइलों को एक समय-मुद्रांकित निर्देशिका में संग्रहीत किया जाएगा /dbbackup/inc/।
दूसरी वृद्धिशील बैकअप बनाने के लिए निम्न कमांड इनपुट करें। तदनुसार चर को कमांड में बदलें।
sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/
सफलता मिलने पर, आप "innobackupex: पूरा किया हुआ ओके" देखेंगे। संदेश फिर से। /dbbackup/inc/बैकअप फ़ाइलों को देखने के लिए फिर से फ़ोल्डर की जाँच करें।
चरण 8: डेटाबेस को पुनर्स्थापित करने के लिए बैकअप फाइल तैयार करें
डेटाबेस को पुनर्स्थापित करने के लिए उपयोग किए जाने से पहले सभी डेटाबेस बैकअप फ़ाइलों को तैयार करने की आवश्यकता होती है।
नोट : इससे पहले कि आप तैयारी करें और प्रक्रियाओं को बहाल करें, आप बेहतर तरीके से पूरी बैकअप निर्देशिका (जैसे कि /dbbackup/) की एक कॉपी किसी अन्य स्थान पर रखेंगे, ताकि फाइलों के बैकअप में किसी भी तरह की क्षति गलती से हो।
प्रत्येक बैकअप निर्देशिका में, एक फ़ाइल होती है, xtrabackup_checkpointsजिसमें बैकअप प्रकार और शुरुआत और अंत लॉग अनुक्रम संख्या ( from_lsnऔर to_lsn) होती है। आप अपने डेटाबेस को पुनर्स्थापित करने की रणनीति को स्पष्ट करने के लिए उन नंबरों का उपयोग कर सकते हैं। नीचे दिए गए उदाहरण देखें।
xtrabackup_checkpointsपहले पूर्ण बैकअप की फ़ाइल में, मेरे पास है:
backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478
xtrabackup_checkpointsपहले वृद्धिशील बैकअप की फ़ाइल में, मेरे पास है:
backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177
xtrabackup_checkpointsदूसरी वृद्धिशील बैकअप की फ़ाइल में, मेरे पास है:
backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672
संक्षेप में, आपको lsn के बढ़ते क्रम के साथ प्रत्येक बैकअप से निपटना चाहिए। यदि lsn अनुक्रम अपूर्ण या अव्यवस्थित है, तो आप डेटा खो सकते हैं।
नोट : निम्नलिखित आदेशों में तीन निर्देशिकाएं शामिल हैं, उन्हें अपने स्वयं के साथ बदलें।
पहले पूर्ण बैकअप की स्थिति के लिए डेटाबेस को पुनर्स्थापित करने के लिए, आपको निम्न कमांड के साथ बैकअप फ़ाइलों को तैयार करने की आवश्यकता है:
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
पहले वृद्धिशील बैकअप की स्थिति के लिए डेटाबेस को पुनर्स्थापित करने के लिए, आपको निम्न कमांड के साथ बैकअप फ़ाइलों को तैयार करने की आवश्यकता है:
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
दूसरे वृद्धिशील बैकअप की स्थिति के लिए डेटाबेस को पुनर्स्थापित करने के लिए, आपको निम्न कमांड के साथ बैकअप फ़ाइलों को तैयार करने की आवश्यकता है:
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
नोट :
वृद्धिशील बैकअप के लिए, आपको --redo-onlyअंतिम वृद्धिशील बैकअप पर सभी विकल्प का उपयोग करना चाहिए । फिर भी, अंतिम वृद्धिशील बैकअप पर इस विकल्प का उपयोग करना आपके डेटा की स्थिरता के लिए अभी भी हानिरहित है - यह केवल डेटाबेस रोलबैक के कारण कुछ देरी का कारण होगा।
प्रत्येक वृद्धिशील परिदृश्य का अंतिम आदेश वैकल्पिक है, लेकिन अनुशंसित है, क्योंकि यह पुनर्स्थापना को गति देगा।
तैयारी के बाद, वृद्धिशील बैकअप फ़ाइलों में दर्ज किए गए परिवर्तनों को तैयार आधार पूर्ण बैकअप फ़ाइलों में जोड़ा जाएगा, इसलिए आपको अपने डेटाबेस को पुनर्स्थापित करने के लिए हमेशा तैयार पूर्ण बैकअप फ़ाइलों का उपयोग करना चाहिए, भले ही आप पूर्ण बैकअप या वृद्धिशील बैकअप का चयन करें।
चरण 9: डेटाबेस को पुनर्स्थापित करें
अपने डेटाबेस को पुनर्स्थापित करने से पहले, आपको डेटाबेस सेवा को रोकने की आवश्यकता है।
sudo service mysqld stop
आपको डेटाबेस निर्देशिका को खाली करने की भी आवश्यकता है। आप एहतियात के लिए वर्तमान डेटाबेस फ़ाइलों को दूसरी जगह ले जा सकते हैं।
sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb
तैयार "पूर्ण बैकअप" फ़ाइलों के साथ अपने डेटाबेस को पुनर्स्थापित करें।
sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54
क्योंकि पुनर्स्थापना प्रक्रिया डेटाबेस निर्देशिका के स्वामी को संशोधित करेगी, आपको mysql:mysqlइसे चालू करने के लिए इसे वापस बदलने की आवश्यकता है ।
sudo chown -R mysql:mysql /var/lib/mysql
डेटाबेस सेवा को पुनरारंभ करें।
sudo service mysqld start
बस। इस बिंदु पर, आप यह सत्यापित करने के लिए अपनी वर्डप्रेस साइट पर जा सकते हैं कि पुनर्स्थापना प्रक्रिया सफल रही।