Πίνακας περιεχομένων
Εισαγωγή
Προαπαιτούμενα
Βήμα 1: Δημιουργήστε έναν χρήστη συστήματος χωρίς ρίζα
Βήμα 2: Ελέγξτε τη μηχανή αποθήκευσης
Βήμα 3: Δημιουργήστε έναν χρήστη βάσης δεδομένων για δημιουργία αντιγράφων ασφαλείας
Βήμα 4: Εγκαταστήστε το Percona XtraBackup
Βήμα 5: Δημιουργήστε εφεδρικούς καταλόγους αποθήκευσης
Βήμα 6: Δημιουργήστε το πρώτο πλήρες αντίγραφο ασφαλείας
Βήμα 7: Δημιουργήστε τα ακόλουθα πρόσθετα αντίγραφα ασφαλείας
Βήμα 8: Προετοιμάστε αρχεία αντιγράφων ασφαλείας για επαναφορά της βάσης δεδομένων
Βήμα 9: Επαναφορά βάσης δεδομένων
Πίνακας περιεχομένων
- Εισαγωγή
- Προαπαιτούμενα
- Βήμα 1: Δημιουργήστε έναν χρήστη συστήματος χωρίς ρίζα
- Βήμα 2: Ελέγξτε τη μηχανή αποθήκευσης
- Βήμα 3: Δημιουργήστε έναν χρήστη βάσης δεδομένων για δημιουργία αντιγράφων ασφαλείας
- Βήμα 4: Εγκαταστήστε το Percona XtraBackup
- Βήμα 5: Δημιουργήστε εφεδρικούς καταλόγους αποθήκευσης
- Βήμα 6: Δημιουργήστε το πρώτο πλήρες αντίγραφο ασφαλείας
- Βήμα 7: Δημιουργήστε τα ακόλουθα πρόσθετα αντίγραφα ασφαλείας
- Βήμα 8: Προετοιμάστε αρχεία αντιγράφων ασφαλείας για επαναφορά της βάσης δεδομένων
- Βήμα 9: Επαναφορά βάσης δεδομένων
- Περαιτέρω βήματα
Εισαγωγή
Το Percona XtraBackup είναι ένα δωρεάν πρόγραμμα που βασίζεται σε MySQL και χρησιμοποιείται για τη δημιουργία αντιγράφων ασφαλείας. Είναι επίσης ανοιχτού κώδικα. Με το Percona XtraBackup, μπορείτε να δημιουργήσετε αντίγραφα ασφαλείας των βάσεων δεδομένων MySQL, MariaDB ή Percona Server που εκτελούνται χωρίς να διακόψετε την υπηρεσία της βάσης δεδομένων σας ή να την κάνετε μόνο για ανάγνωση. Αυτό είναι ένα κρίσιμο χαρακτηριστικό για τις επιχειρήσεις για πολλές διαδικτυακές επιχειρήσεις.
Για βάσεις δεδομένων που χρησιμοποιούν μηχανές αποθήκευσης InnoDB, XtraDB και HailDB, το Percona XtraBackup μπορεί να εκτελέσει αντίγραφα ασφαλείας χωρίς αποκλεισμό. Για βάσεις δεδομένων που χρησιμοποιούν μηχανές αποθήκευσης MyISAM, Merge και Archive, το Percona XtraBackup μπορεί επίσης να δημιουργήσει αντίγραφα ασφαλείας κάνοντας σύντομη παύση των εγγραφών στο τέλος της διαδικασίας δημιουργίας αντιγράφων ασφαλείας.
Σε αυτό το άρθρο, θα σας δείξω πώς να εγκαταστήσετε και να χρησιμοποιήσετε το Percona XtraBackup για να εκτελέσετε πλήρη και σταδιακά εφεδρικά αντίγραφα ασφαλείας σε έναν διακομιστή Vultr που βασίζεται στην εφαρμογή WordPress με ένα κλικ. Θα πραγματοποιήσουμε ένα πλήρες αντίγραφο ασφαλείας και δύο σταδιακά αντίγραφα ασφαλείας και, στη συνέχεια, θα επαναφέρουμε τη βάση δεδομένων στην κατάσταση καθενός από τα τρία αντίγραφα ασφαλείας ανάλογα.
Προαπαιτούμενα
Υποθέτω ότι έχετε αναπτύξει μια παρουσία διακομιστή WordPress Vultr με ένα κλικ από την αρχή και έχετε συνδεθεί ως root, χρησιμοποιώντας SSH.
Βήμα 1: Δημιουργήστε έναν χρήστη συστήματος χωρίς ρίζα
Για λόγους ασφαλείας, μια συνιστώμενη πρακτική είναι να δημιουργήσετε έναν άλλο λογαριασμό χρήστη με δικαιώματα root και, στη συνέχεια, να τον χρησιμοποιήσετε για να συνδεθείτε και να εκτελέσετε τις καθημερινές σας λειτουργίες στο σύστημα. Μπορείτε ακόμα να εκτελέσετε σχεδόν όλες τις εντολές υπερχρήστη με την sudoεντολή.
1) Δημιουργήστε έναν νέο χρήστη. Αντικαταστήστε sysuserμε το δικό σας όνομα χρήστη.
useradd sysuser
2) Ορίστε τον κωδικό πρόσβασης για τον νέο σας χρήστη. Αντικαταστήστε sysuserμε το δικό σας όνομα χρήστη.
passwd sysuser
3) Εκχωρήστε δικαιώματα root στον νέο σας χρήστη.
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 θα έχουν εμφανιστεί στην οθόνη. Η βάση δεδομένων με το όνομα like wp5273512είναι η βάση δεδομένων του WordPress που θέλουμε να δημιουργήσουμε αντίγραφα ασφαλείας. Στην παρακάτω εντολή, αντικαταστήστε wp5273512με τη δική σας:
USE wp5273512;
Ελέγξτε τη μηχανή αποθήκευσης για κάθε τραπέζι:
SHOW TABLE STATUS\G
Θα διαπιστώσετε ότι όλοι οι πίνακες στη βάση δεδομένων MySQL του WordPress χρησιμοποιούν τη μηχανή αποθήκευσης InnoDB, η οποία είναι ιδανική για τη δημιουργία αντιγράφων ασφαλείας με το Percona XtraBackup.
Για οποιεσδήποτε άλλες βάσεις δεδομένων MySQL που χρησιμοποιούν τη μηχανή αποθήκευσης MyISAM, μπορούμε να δημιουργήσουμε αντίγραφα ασφαλείας με το Percona 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;
Τα προνόμια που παρέχονται παραπάνω είναι απαραίτητα για την πλήρη λειτουργικότητα του Percona XtraBackup. Μπορείτε να αφαιρέσετε μερικά από αυτά για λιγότερη λειτουργικότητα και καλύτερη ασφάλεια. Για περισσότερες λεπτομέρειες, ανατρέξτε στον επίσημο ιστότοπο Percona XtraBackup .
Βήμα 4: Εγκαταστήστε το Percona XtraBackup
Μπορείτε να εγκαταστήσετε το Percona XtraBackup από το αποθετήριο RPM της Percona πολύ εύκολα:
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σενάριο perl. Συνήθως, μπορείτε να χρησιμοποιήσετε το innobackupexσενάριο perl για να εκτελέσετε διάφορες διαδικασίες λειτουργίας για ευκολία.
Εισαγάγετε την ακόλουθη εντολή για να δημιουργήσετε το πρώτο πλήρες αντίγραφο ασφαλείας. Θυμηθείτε να αντικαταστήσετε το όνομα χρήστη 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
Αυτό είναι. Σε αυτό το σημείο, μπορείτε να επισκεφτείτε τον ιστότοπό σας στο WordPress για να επαληθεύσετε ότι η διαδικασία επαναφοράς ήταν επιτυχής.