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;