{"id":18104,"date":"2026-03-05T11:50:25","date_gmt":"2026-03-05T10:50:25","guid":{"rendered":"https:\/\/webhosting.de\/datenbank-replikation-hosting-master-slave-multi-master-syncio\/"},"modified":"2026-03-05T11:50:25","modified_gmt":"2026-03-05T10:50:25","slug":"replica-del-database-hosting-master-slave-multi-master-syncio","status":"publish","type":"post","link":"https:\/\/webhosting.de\/it\/datenbank-replikation-hosting-master-slave-multi-master-syncio\/","title":{"rendered":"Replica del database in hosting: master-slave vs. multi-master"},"content":{"rendered":"<p><strong>Replica del database<\/strong> Nell'hosting, determina la disponibilit\u00e0 delle applicazioni quando il carico aumenta e la velocit\u00e0 con cui possono scrivere e leggere di nuovo dopo le interruzioni. Mostro chiaramente la differenza tra master-slave e multi-master, includendo la messa a punto, le strategie di failover e gli scenari di implementazione adatti.<\/p>\n\n<h2>Punti centrali<\/h2>\n<p>I seguenti aspetti chiave mi aiutano a scegliere la giusta strategia di replica.<\/p>\n<ul>\n  <li><strong>Padrone-Schiavo<\/strong>Scritture semplici, letture scalabili, responsabilit\u00e0 chiare.<\/li>\n  <li><strong>Multi-Master<\/strong>Scritture distribuite, maggiore disponibilit\u00e0, ma gestione dei conflitti.<\/li>\n  <li><strong>GTID<\/strong> &amp; Failover: commutazioni pi\u00f9 rapide e percorsi di replica pi\u00f9 puliti.<\/li>\n  <li><strong>La realt\u00e0 dell'accoglienza<\/strong>La latenza, lo storage e la rete influenzano la coerenza.<\/li>\n  <li><strong>Monitoraggio<\/strong> &amp; Tuning: metriche, tempi di recupero e impostazioni del binlog in un colpo d'occhio.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/03\/server-replication-setup-4921.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Cosa fa la replica nell'hosting<\/h2>\n\n<p>Utilizzo la replica per <strong>Disponibilit\u00e0<\/strong> per aumentare le prestazioni di lettura, distribuire i carichi di lettura e consentire finestre di manutenzione senza guasti. Le topologie master-slave centralizzano le scritture, mentre le repliche multiple servono masse di letture e quindi riducono i tempi di risposta. Le varianti multi-master consentono scritture distribuite, il che riduce le latenze nelle configurazioni globali e rende pi\u00f9 facile affrontare la perdita di un nodo. Per gli stack web di WordPress, i motori di negozio o le API, ci\u00f2 significa un maggiore buffering contro i picchi di traffico e un recupero pi\u00f9 rapido dopo gli incidenti. Se state pianificando una crescita orizzontale che vada oltre la pura replica, collegatela passo dopo passo con <a href=\"https:\/\/webhosting.de\/it\/database-sharding-replica-web-hosting-infrastruttura-scalabile\/\">Sharding e replica<\/a>, per distribuire i dati e il carico in modo pi\u00f9 capillare e <strong>Scala<\/strong> per renderlo pianificabile.<\/p>\n\n<h2>Master-slave: funzionalit\u00e0 e punti di forza<\/h2>\n\n<p>In una configurazione master-slave, scrivo coerentemente solo sul file <strong>Maestro<\/strong>, mentre gli slave si occupano dell'accesso in lettura e seguono i binlog. La chiara assegnazione dei ruoli evita i conflitti di scrittura e mantiene chiaro il modello. \u00c8 perfetto per molti scenari di hosting con un'alta percentuale di letture, come cataloghi di prodotti, portali di contenuti o dashboard di reporting. Aggiungo altri slave in base alle necessit\u00e0 senza modificare il percorso di scrittura. Pianifico i buffer per i ritardi di replica, in modo che i report o le cache possano essere sincronizzati nonostante i brevi ritardi. <strong>Risultati<\/strong> consegnare.<\/p>\n\n<h2>MySQL Master-Slave passo dopo passo<\/h2>\n\n<p>Comincio dal master con la registrazione binaria e un unico file <strong>server-id<\/strong>, in modo che gli slave possano seguire l'esempio: Nel file my.cnf ho impostato <code>server-id=1<\/code>, <code>log_bin=mysql-bin<\/code>, opzionale <code>binlog_do_db<\/code> per la replica filtrata. Creo quindi un utente dedicato alla replica e limito i suoi diritti al minimo indispensabile. Per la sincronizzazione iniziale, creo un dump con <code>-dati master<\/code>, Lo importo sullo slave e memorizzo il file di log e la posizione. Sullo slave definisco <code>server-id=2<\/code>, attivare i log del rel\u00e8 e collegarlo a <code>CAMBIARE MASTER IN ...<\/code>seguito da <code>AVVIARE LO SCHIAVO<\/code>. Con <code>MOSTRA STATO DELLO SLAVE<\/code> Penso che <strong>Secondi_dietro_Master<\/strong> e reagire se il ritardo aumenta.<\/p>\n\n<h2>Ottimizzazioni per gli ambienti di hosting<\/h2>\n\n<p>Per un failover pulito attivo <strong>GTID<\/strong> e quindi semplificare la commutazione senza una noiosa regolazione delle posizioni dei registri. Inoltro le letture in modo specifico attraverso livelli proxy come ProxySQL o la logica dell'applicazione, per evitare gli hotspot e aumentare il tasso di risposta della cache. Con <code>sync_binlog=1<\/code> Proteggo i binlog dagli arresti anomali, mentre i valori moderati di <code>sync_relay_log<\/code> Ridurre l'overhead di scrittura senza lasciare che il ritardo sfugga di mano. Presto attenzione alle capacit\u00e0 di I\/O, perch\u00e9 le unit\u00e0 SSD lente o i pool di storage condivisi aumentano il backlog. Per le verifiche e la conformit\u00e0, crittografo i canali di replica con <strong>TLS<\/strong> e mantenere le chiavi separate dal percorso dei dati.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/03\/db_replikation_meeting_8394.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Multi-Master: quando ha senso<\/h2>\n\n<p>Uso Multi-Master quando ho bisogno di distribuire le scritture geograficamente o quando un singolo <strong>Nodo<\/strong> non \u00e8 pi\u00f9 in grado di sostenere un carico di scrittura. Tutti i nodi accettano le modifiche, le propagano reciprocamente e quindi compensano pi\u00f9 facilmente i guasti. Il prezzo da pagare \u00e8 la gestione dei conflitti: gli aggiornamenti simultanei della stessa riga richiedono regole, come le vittorie dell'ultimo scrittore, le fusioni lato applicazione o le sequenze transazionali. Nei carichi di lavoro sensibili alla latenza, come i gateway di pagamento o i backend SaaS globali, questa configurazione pu\u00f2 ridurre significativamente i tempi di risposta. Valuto in anticipo se la mia applicazione tollera i conflitti e se ho chiari <strong>Strategie<\/strong> per la risoluzione.<\/p>\n\n<h2>MySQL Multi-Master in pratica<\/h2>\n\n<p>Mi affido alla replica basata su GTID perch\u00e9 semplifica i canali e il failover e <strong>Errore<\/strong> renderli visibili pi\u00f9 rapidamente. La replica multi-sorgente mi permette di alimentare diversi master in un unico nodo, ad esempio per analisi o aggregazioni centrali. Per le topologie peer reali, definisco strategie di chiave a basso conflitto, controllo gli offset di autoincremento e riduco i timestamp alla deriva. Monitoro i picchi di latenza, perch\u00e9 le scritture parallele tra regioni aumentano lo sforzo di coordinamento e possono costare il throughput. Senza un monitoraggio adeguato e regole chiare per l'operatore, non userei il multi-master in modo produttivo. <strong>Interruttore<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/03\/database-replication-contrast-6743.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Tabella di confronto: Master-slave vs. multi-master<\/h2>\n\n<p>La tabella che segue riassume le differenze pi\u00f9 importanti e mi facilita il compito di <strong>Decisione<\/strong> nell'accoglienza quotidiana.<\/p>\n<table>\n  <thead>\n    <tr>\n      <th>Criterio<\/th>\n      <th>Padrone-Schiavo<\/th>\n      <th>Multi-Master<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Scrive<\/td>\n      <td>Un master elabora tutti <strong>Operazioni di scrittura<\/strong><\/td>\n      <td>Tutti i nodi accettano scritture<\/td>\n    <\/tr>\n    <tr>\n      <td>Coerenza<\/td>\n      <td>Rigoroso, conflitti improbabili<\/td>\n      <td>Pi\u00f9 morbido, possibili conflitti<\/td>\n    <\/tr>\n    <tr>\n      <td>Scala<\/td>\n      <td>Legge molto bene espandibile<\/td>\n      <td>Legge e scrive in modo espandibile<\/td>\n    <\/tr>\n    <tr>\n      <td>Sforzo di allestimento<\/td>\n      <td>Gestibile e facile da controllare<\/td>\n      <td>Pi\u00f9 impegno e pi\u00f9 regole<\/td>\n    <\/tr>\n    <tr>\n      <td>Casi d'uso tipici<\/td>\n      <td>Blog, negozi, relazioni<\/td>\n      <td>Applicazioni globali, API critiche per la latenza<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Alta disponibilit\u00e0, RTO\/RPO e sicurezza<\/h2>\n\n<p>Definisco chiaro <strong>RTO\/RPO<\/strong>-e allineare la replica con essi: Quanto tempo pu\u00f2 richiedere il recupero, quanti dati posso perdere. La replica sincrona o semisincrona pu\u00f2 ridurre le perdite, ma costa in termini di latenza e throughput. I backup non sostituiscono la replica, ma la integrano per il ripristino point-in-time e gli stati storici. Verifico regolarmente i test di ripristino, perch\u00e9 nella pratica conta solo un backup testato. Per una corretta pianificazione, consultate la mia guida a <a href=\"https:\/\/webhosting.de\/it\/rto-rpo-tempi-di-recupero-hosting-serverbackup\/\">RTO\/RPO in hosting<\/a>, in modo che le cifre chiave riflettano la realt\u00e0 dell'azienda e la <strong>I rischi<\/strong> in forma.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/03\/datenbank_replikation_4123.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Percorso di scalatura: da un singolo nodo a un cluster<\/h2>\n\n<p>Spesso inizio con un singolo <strong>Maestro<\/strong>, Aggiungo una replica per le letture e i backup e poi aumento gradualmente. Quando la quota di lettura cresce, aggiungo altri slave e completo la configurazione con la cache. Se la capacit\u00e0 di scrittura non \u00e8 pi\u00f9 sufficiente, pianifico percorsi multi-master, verifico i rischi di conflitto e aggiungo l'idempotenza all'applicazione. Per le conversioni pi\u00f9 grandi, eseguo la migrazione con strategie rolling, fasi blue\/green o dual-write e tengo pronte le riserve per i rollback. Per le conversioni senza tempi di inattivit\u00e0, utilizzo la guida a <a href=\"https:\/\/webhosting.de\/it\/zero-downtime-hosting-migrazioni-guida\/\">Migrazioni a tempo zero<\/a>, in modo che gli utenti non <strong>Interruzioni<\/strong> sentire.<\/p>\n\n<h2>Messa a punto delle prestazioni: latenza, I\/O e cache<\/h2>\n\n<p>Monitoro la latenza della rete, gli IOPS sullo storage e i picchi di CPU sul computer. <strong>Nodo<\/strong>, perch\u00e9 tutti e tre i fattori controllano il ritardo della replica. Un livello locale di Redis o Memcached prende le letture dallo stack e mantiene gli slave scarichi. Divido le transazioni di grandi dimensioni per evitare l'ingolfamento dei binlog e ridurre gli inceppamenti dei commit. Per i carichi di lavoro pesanti in scrittura, aumento moderatamente i buffer di log di innodb e regolo gli intervalli di flush senza compromettere la durabilit\u00e0. Mantengo puliti i piani di query, perch\u00e9 gli indici sbagliati causano errori costosi sia sui master che sugli slave. <strong>Scansioni<\/strong>.<\/p>\n\n<h2>Evitare e risolvere i conflitti in Multi-Master<\/h2>\n\n<p>Evito i conflitti separando le aree di scrittura in modo logico, per esempio <strong>Cliente<\/strong>, regione o spazio delle chiavi. Gli offset di incremento automatico (ad esempio 1\/2\/3 per tre nodi) impediscono le collisioni con le chiavi primarie. Laddove gli aggiornamenti simultanei sono inevitabili, documento regole chiare, come ad esempio le vittorie dell'ultimo autore o le fusioni dal lato dell'applicazione. Le scritture idempotenti e i consumatori deduplicanti proteggono dalle elaborazioni duplicate. Registro anche le informazioni di audit, in modo da poter decidere rapidamente in caso di controversie. <strong>capire<\/strong> essere in grado di.<\/p>\n\n<h2>Risoluzione dei problemi: Cosa controllare per prima cosa<\/h2>\n\n<p>In caso di ritardo, controllo <strong>Secondi_dietro_Master<\/strong>, i thread di I\/O e SQL e le dimensioni dei log dei rel\u00e8. Guardo le dimensioni e i formati dei binlog perch\u00e9 STATEMENT vs ROW possono cambiare in modo massiccio il volume. Le metriche di archiviazione, come i tempi di flush e le code, mostrano se le unit\u00e0 SSD sono al limite o in fase di throttling. Se i GTID sono attivi, confronto le transazioni applicate e mancanti per canale. In caso di emergenza, arresto e avvio il replicatore specificamente per risolvere i blocchi e solo allora correggo il problema. <strong>Configurazione<\/strong>.<\/p>\n\n<h2>Modelli di consistenza e read-after-write<\/h2>\n<p>Con la replica asincrona pianifico consapevolmente <strong>coerenza finale<\/strong> su. Per le azioni degli utenti con feedback diretto, mi assicuro che <em>Leggi dopo aver scritto<\/em>, vincolando le sessioni di scrittura al master per un breve periodo o instradando le letture in modo consapevole del ritardo. Utilizzo i flag dell'applicazione (ad esempio \u201estickiness\u201c per 2-5 secondi) e controllo <code>Secondi_dietro_Master<\/code>, prima di consentire a una replica di effettuare letture critiche. Mi affido alle repliche <code>read_only=ON<\/code> e <code>super_read_only=ON<\/code>, in modo che non si verifichino scritture accidentali. Con i livelli di isolamento opportunamente selezionati (<code>LETTURA RIPETIBILE<\/code> vs. <code>READ COMMITTED<\/code>) Impedisco che le transazioni lunghe rallentino il thread Apply.<\/p>\n\n<h2>Topologie: stella, cascata e fan-out<\/h2>\n<p>Oltre alla classica stella (tutti gli slave tirano direttamente dal master), mi affido a <strong>Replica a cascata<\/strong>, se sono necessarie molte repliche o se i collegamenti WAN sono limitati. A tale scopo, attivo quanto segue sui nodi intermedi <code>log_slave_updates=ON<\/code>, in modo che fungano da sorgente per le repliche a valle. Questo alleggerisce il carico sull'I\/O del master e distribuisce meglio la larghezza di banda. Presto attenzione ai livelli di latenza aggiuntivi: Ogni cascata aumenta potenzialmente il ritardo e richiede un attento monitoraggio. Per le configurazioni globali, combino hub regionali con distanze ridotte e mantengo almeno due repliche per regione per la manutenzione e il monitoraggio. <strong>Failover<\/strong> pronto.<\/p>\n\n<h2>Failover pianificato e non pianificato<\/h2>\n<p>Documento un chiaro <strong>Processo di promozione<\/strong>1) Interrompere le scritture sul master o commutare il flusso di traffico in sola lettura, 2) Selezionare la replica candidata (ritardo pi\u00f9 basso, GTID completi), 3) Promuovere la replica e <code>solo lettura<\/code> disattivare, 4) riallineare i nodi rimanenti. Contro <em>Cervello diviso<\/em> Mi proteggo con un routing chiaro (ad esempio, commutazione di VIP\/DNS con TTL brevi) e blocco automatico. Gli strumenti di orchestrazione aiutano, ma pratico regolarmente percorsi manuali. Conservo runbook, allarmi e <strong>Esercitazioni<\/strong> in modo che nessuno debba improvvisare in caso di emergenza.<\/p>\n\n<h2>Le GTID nella pratica: inciampi e guarigioni<\/h2>\n<p>Per i GTID attivo <code>enforce_gtid_consistency=ON<\/code> e <code>gtid_mode=ON<\/code> passo dopo passo. Uso <em>autoposizione<\/em>, per semplificare le modifiche all'origine ed evitare i filtri di replica sulle rotte GTID, che rendono pi\u00f9 difficile il debug. Passo <strong>transazioni errate<\/strong> (transazioni che esistono su una replica ma non sulla fonte), le identifico tramite la differenza di <code>gtid_eseguito<\/code> e l'origine e ripulire in modo controllato, non alla cieca con gli spurghi. Pianifico la conservazione dei binlog in modo tale che le ricostruzioni siano possibili senza lacune e verifico la consistenza di <code>gtid_purged<\/code>.<\/p>\n\n<h2>Parallelizzazione e throughput sulle repliche<\/h2>\n<p>Per ridurre il ritardo di applicazione, aumento <code>operatori_di_replica_parallela<\/code> in base al numero di CPU e selezionare <code>replica_parallel_type=LOGICAL_CLOCK<\/code>, in modo che le transazioni correlate rimangano organizzate. Con <code>binlog_transaction_dependency_tracking=WRITESET<\/code> Aumento il parallelismo perch\u00e9 le scritture indipendenti possono essere applicate contemporaneamente. Controllo i tempi di attesa per deadlock e lock sulle repliche: un eccessivo parallelismo pu\u00f2 generare aggiornamenti simultanei. Inoltre, aiuta <strong>Gruppo Impegno<\/strong> al master (ritardi di flush allegati) per raggruppare le transazioni correlate in modo pi\u00f9 efficiente, senza superare l'intervallo di latenza P95.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/03\/datenbank_replication_hosting_5893.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Modifiche allo schema senza tempi di inattivit\u00e0<\/h2>\n<p>Preferisco <strong>DDL online<\/strong> con InnoDB (<code>ALGORITMO=INSERIMENTO\/ISTANTE<\/code>, <code>BLOCCO=NESSUNO<\/code>) per trasportare le modifiche alla tabella attraverso la replica senza bloccare le query. Per le tabelle molto grandi, scelgo metodi basati sui chunk, divido gli indici e tengo d'occhio il carico del binlog. In caso di multi-master, pianifico rigorosamente le finestre DDL, poich\u00e9 le modifiche concomitanti allo schema sono difficili da guarire. Collaudo le DDL su una replica, misuro il loro impatto sul ritardo e promuovo solo quando il percorso di replica rimane stabile.<\/p>\n\n<h2>La replica ritardata come rete di sicurezza<\/h2>\n<p>Contro gli errori logici (DROP\/DELETE) considero una <strong>replica ritardata<\/strong> pronto, ad esempio con <code>replica_sql_delay=3600<\/code>. Questo mi permette di tornare a uno stato pulito entro un'ora senza eseguire immediatamente PITR dai backup. Non uso mai questa replica per le letture o i failover: \u00e8 solo un buffer di sicurezza. Automatizzo le copie da questo nodo, in modo da poter recuperare rapidamente un nodo di lettura fresco e aggiornato in caso di emergenza.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/03\/serverraum-replikation-8614.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Aggiornamenti, compatibilit\u00e0 e funzionamento<\/h2>\n<p>Mantengo le versioni sorgente e di destinazione vicine e aggiorno <strong>rotolamento<\/strong>prima le repliche, poi il master. Ho una visione critica degli ambienti misti con MySQL\/MariaDB, poich\u00e9 i formati e le funzionalit\u00e0 dei binlog possono divergere. Utilizzo <code>binlog_row_image=MINIMAL<\/code> dove ha senso ridurre il volume dei binlog e controllare le dipendenze delle applicazioni per i trigger o le stored procedure. Riduco il carico della WAN per il protocollo e la compressione dei binlog, ma faccio attenzione a non spendere eccessivamente i budget della CPU.<\/p>\n\n<h2>Osservabilit\u00e0 e pianificazione della capacit\u00e0<\/h2>\n<p>Definisco gli SLO per <strong>Lag<\/strong>, tempi di recupero, tassi di errore e throughput. Le variabili fondamentali includono le transazioni applicate al secondo, i livelli di riempimento del log relay, le code di I\/O, i tempi di attesa dei lock e la latenza di rete. Registro la crescita del binlog, pianifico <code>binlog_expire_logs_seconds<\/code> e verificare se le ricostruzioni rientrano nei periodi di conservazione. Ho impostato limiti sulle repliche come <code>max_connessioni<\/code> e monitorare le cancellazioni in modo che i carichi di lettura non vadano a vuoto. Per quanto riguarda i costi e le dimensioni, calcolo i livelli di fan-out, i requisiti di archiviazione e <strong>Carichi di picco<\/strong> rispetto agli obiettivi RPO\/RTO.<\/p>\n\n<h2>Sicurezza e conformit\u00e0 nelle operazioni di replica<\/h2>\n\n<p>I collegamenti a tenuta stagna <strong>end-to-end<\/strong> e gli account dell'operatore, dell'applicazione e della replica sono rigorosamente separati. Controlli regolari dei diritti impediscono agli utenti della replica di mantenere autorizzazioni DDL\/DML non necessarie. Proteggo i backup offsite con una gestione separata delle chiavi e controllo i percorsi di accesso contro gli spostamenti laterali. Per quanto riguarda la protezione dei dati, mi attengo alle regole di cancellazione e replico record di dati pseudonimizzati o ridotti al minimo se lo scopo lo consente. Condivido il logging e le metriche secondo il principio del minor privilegio, in modo che la telemetria non venga utilizzata in modo incauto. <strong>Fuga<\/strong> prodotto.<\/p>\n\n<h2>Riassumendo brevemente<\/h2>\n\n<p>Per gli scenari di hosting, Master-Slave offre un sistema affidabile di <strong>Base<\/strong>, perch\u00e9 le letture sono facilmente scalabili e i conflitti si verificano raramente. Se le scritture globali, la bassa latenza e la tolleranza ai guasti sono una priorit\u00e0, considero il multi-master e pianifico le regole per la risoluzione dei conflitti. Combino GTID, monitoraggio pulito e backup ben studiati per raggiungere in modo sicuro gli obiettivi di ripristino. Grazie alla messa a punto dei parametri di binlog, storage e query, riduco i ritardi e mantengo alto il throughput. Questo mi permette di scegliere la topologia giusta, di scalare in modo controllato e di ridurre al minimo i tempi di inattivit\u00e0 per gli utenti. <strong>invisibile<\/strong>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Replica del database nell'hosting: **MySQL master slave** vs. multi-master per un perfetto **scaling db**. Configurazione, vantaggi e suggerimenti.<\/p>","protected":false},"author":1,"featured_media":18097,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[781],"tags":[],"class_list":["post-18104","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-datenbanken-administration-anleitungen"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"836","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"Datenbank Replikation","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"18097","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/posts\/18104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/comments?post=18104"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/posts\/18104\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/media\/18097"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/media?parent=18104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/categories?post=18104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/tags?post=18104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}