Sobes.tech
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;