Junior
Τι είναι η αναπαραγωγή στο πλαίσιο των βάσεων δεδομένων;
sobes.tech AI
Απάντηση από AI
Η αναπαραγωγή είναι η διαδικασία αντιγραφής δεδομένων από μια κύρια βάση δεδομένων (master) σε μία ή περισσότερες δευτερεύουσες βάσεις δεδομένων σε πραγματικό χρόνο ή με μικρή καθυστέρηση.
Οι κύριοι στόχοι της αναπαραγωγής:
- Αύξηση διαθεσιμότητας. Σε περίπτωση αποτυχίας του master, η αναπαραγωγή μπορεί να αναλάβει το φορτίο.
- Αύξηση της ταχύτητας ανάγνωσης. Τα αιτήματα ανάγνωσης διανέμονται μεταξύ του master και των αναπαραγωγών.
- Αντίγραφο ασφαλείας. Η αναπαραγωγή μπορεί να χρησιμοποιηθεί ως ενημερωμένο αντίγραφο των δεδομένων.
- Ανάλυση. Οι αναλυτικές ερωτήσεις μπορούν να εκτελεστούν στις αναπαραγωγές, χωρίς να επιβαρύνουν το master.
Τύποι αναπαραγωγής:
- Ασύγχρονη. Το master δεν περιμένει επιβεβαίωση από την αναπαραγωγή σχετικά με την εφαρμογή των αλλαγών. Μπορεί να υπάρχει μικρή καθυστέρηση στα δεδομένα.
- Συγχρονισμένη. Το master περιμένει επιβεβαίωση από την αναπαραγωγή. Διασφαλίζει τη συνοχή των δεδομένων, αλλά μπορεί να επιβραδύνει την εγγραφή στο master.
- Ημισυγχρονισμένη. Μια συμβιβαστική λύση μεταξύ ασύγχρονης και συγχρονισμένης. Το master περιμένει επιβεβαίωση από τουλάχιστον μια αναπαραγωγή.
Παράδειγμα διαμόρφωσης MySQL:
// my.cnf στον master
[mysqld]
server-id = 1
log_bin = mysql-bin
// my.cnf στην αναπαραγωγή
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // Μόνο για ανάγνωση
Διαμόρφωση αναπαραγωγής:
// Στην αναπαραγωγή
CHANGE MASTER TO
MASTER_HOST='<IP_του_master>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<αρχειο_binlog>', // Λαμβάνεται με το show master status;
MASTER_LOG_POS=<θέση_binlog>; // Λαμβάνεται με το show master status;
START SLAVE;