DocumentazioneCommerceGuida alla configurazione

Solo PaaS

Replica del database

Ultimo aggiornamento: 15 luglio 2024
  • Argomenti:
  • Configurazione

Creato per:

  • Esperto
  • Amministratore
  • Sviluppatore
NOTA
Questa funzione è disponibile solo per le istanze di Adobe Commerce.
IMPORTANTE
La funzionalità del database diviso era obsoleta nella versione 2.4.2 di Adobe Commerce. Vedere Ripristino da un database diviso a un singolo database.

L'impostazione della replica del database offre i seguenti vantaggi:

  • Backup dei dati
  • Abilita l'analisi dei dati senza influire sul database principale
  • Scalabilità

I database MySQL vengono replicati in modo asincrono, il che significa che non è necessario che gli slave siano connessi in modo permanente per ricevere gli aggiornamenti dal master.

Configurare la replica del database

Una discussione approfondita sulla replica del database esula dall'ambito di questa guida. Per configurarlo, puoi consultare una risorsa come:

  • Documentazione MySQL
  • Impostare la replica master slave in MySQL (digitalocean)

Commerce fornisce configurazioni MySQL di esempio per i database slave. Configurazione semplice fornita con la classe ResourceConnections README.md.

Di seguito sono riportate alcune informazioni più avanzate fornite esclusivamente a scopo informativo:

   return array (
      //...
      'db' =>
         array (
            'connection' =>
               array (
                  'indexer' =>
                     array (
                        'host' => 'default-master-host',
                        'dbname' => 'magento',
                        'username' => 'magento',
                        'password' => 'magento',
                        'active' => '1',
                        'persistent' => NULL,
                     ),
                  'default' =>
                     array (
                        'host' => 'default-master-host',
                        'dbname' => 'magento',
                        'username' => 'magento',
                        'password' => 'magento',
                        'active' => '1',
                     ),
                  'checkout' =>
                     array (
                        'host' => 'checkout-master-host',
                        'dbname' => 'checkout',
                        'username' => 'magento',
                        'password' => 'magento',
                        'model' => 'mysql4',
                        'engine' => 'innodb',
                        'initStatements' => 'SET NAMES utf8;',
                        'active' => '1',
                     ),
                  'sales' =>
                     array (
                        'host' => 'sales-master-host',
                        'dbname' => 'sales',
                        'username' => 'magento',
                        'password' => 'magento',
                        'model' => 'mysql4',
                        'engine' => 'innodb',
                        'initStatements' => 'SET NAMES utf8;',
                        'active' => '1',
                     ),
               ),
            'slave_connection' =>
               array (
                  'default' =>
                     array (
                        'host' => 'default-slave-host',
                        'dbname' => 'magento',
                        'username' => 'read_only',
                        'password' => 'password',
                        'active' => '1',
                     ),
                  'checkout' =>
                     array (
                        'host' => 'checkout-slave-host',
                        'dbname' => 'checkout',
                        'username' => 'read_only',
                        'password' => 'password',
                        'model' => 'mysql4',
                        'engine' => 'innodb',
                        'initStatements' => 'SET NAMES utf8;',
                        'active' => '1',
                     ),
                  'sales' =>
                     array (
                        'host' => 'sales-slave-host',
                        'dbname' => 'sales',
                        'username' => 'read_only',
                        'password' => 'password',
                        'model' => 'mysql4',
                        'engine' => 'innodb',
                        'initStatements' => 'SET NAMES utf8;',
                        'active' => '1',
                     ),
                  ),
               'table_prefix' => '',
   ),
   //.......

Miglioramento delle prestazioni

Per migliorare le prestazioni della replica master-slave, è possibile filtrare alcune tabelle in base alle istanze slave. È consigliabile filtrare tutte le tabelle temporanee con il pattern dei nomi search\_tmp\_% utilizzate per la ricerca nel catalogo.

A questo scopo, aggiungi la seguente riga al file my.cnf nelle tue istanze slave:

replicate-wild-ignore-table=%.search\_tmp\_%
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c