Sobes.tech
Junior

Cos'è la replica nel contesto dei database?

sobes.tech AI

Risposta dell'AI

La replica è il processo di copia dei dati da un database principale a uno o più database secondari in tempo reale o con un leggero ritardo.

Obiettivi principali della replica:

  • Aumentare la disponibilità. In caso di guasto del master, la replica può assumere il carico.
  • Aumentare la velocità di lettura. Le richieste di lettura vengono distribuite tra il master e le repliche.
  • Backup. La replica può essere usata come copia aggiornata dei dati.
  • Analisi. Le query analitiche possono essere eseguite sulle repliche, senza sovraccaricare il master.

Tipi di replica:

  • Asincrona. Il master non aspetta conferma dalla replica sull'applicazione delle modifiche. Può esserci un piccolo ritardo nei dati.
  • Sincrona. Il master aspetta conferma dalla replica. Garantisce la coerenza dei dati, ma può rallentare la scrittura sul master.
  • Semi-sincrona. Un compromesso tra asincrona e sincrona. Il master aspetta conferma da almeno una replica.

Esempio di configurazione MySQL:

// my.cnf sul master
[mysqld]
server-id = 1
log_bin = mysql-bin

// my.cnf sulla replica
[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1 // La replica può essere solo di lettura

Configurazione della replica:

// Sulla replica
CHANGE MASTER TO
MASTER_HOST='<IP_del_master>',
MASTER_USER='<repl_user>',
MASTER_PASSWORD='<repl_password>',
MASTER_LOG_FILE='<file_binlog>', // Si ottiene con show master status;
MASTER_LOG_POS=<posizione_binlog>; // Si ottiene con show master status;

START SLAVE;