Vorwort: Die am häufigsten verwendete Architektur von MySQL ist die Master-Slave-Replikation. Tatsächlich gibt es viele Optionen für die Master-Slave-Replikation, insbesondere auf der Slave-Seite. Wir können Replikationsfilter festlegen, z. B. das Ignorieren einer Tabelle oder einer Datenbank. Diese Filteroptionen können online ohne Neustart geändert werden. Ich wusste vorher nicht viel darüber, aber ich habe kürzlich einige relevante Informationen gelesen und finde diese Funktion persönlich sehr praktisch. In diesem Artikel werde ich diese Inhalte mit Ihnen teilen. 1. Einführung in das Kopieren von Filterparametern Zuerst müssen wir die verschiedenen Parameter zum Festlegen von Replikationsfiltern verstehen. Die Replikationsfilterung wird auf der Seite der Slave-Datenbank festgelegt. Sie können nur bestimmte Datenbanken oder Tabellen kopieren oder das Kopieren bestimmter Datenbanken oder Tabellen ignorieren. Diese werden alle durch unterschiedliche Parameter gesteuert. Nachfolgend finden Sie eine kurze Einführung in die Funktionen der verschiedenen Parameter.
Diese Replikationsfilterparameter sind leicht zu verstehen. Allein durch einen Blick auf den Namen können Sie die Funktion des Parameters grob verstehen. Standardmäßig sind diese Parameter nicht festgelegt. Nachdem die Master-Slave-Replikation aktiviert wurde, synchronisiert die Slave-Datenbank standardmäßig alle von der Master-Datenbank gesendeten Daten. 2. Ändern Sie die Kopierfilteroptionen Wenn wir die Replikationsstrategie der Slave-Bibliothek vorübergehend anpassen möchten, können wir die oben genannten Parameter festlegen. Wir können die Filterparameter in die Konfigurationsdatei schreiben und dann die Slave-Bibliothek neu starten, um sie anzuwenden. Diese Methode erfordert jedoch einen Neustart der Instanz und wird nicht empfohlen. MySQL Version 5.7 kann die Replikationsfilterung online einrichten. Allerdings muss die Replikation trotzdem gestoppt werden, ein Neustart der Instanz ist jedoch nicht erforderlich, was die Durchführung vorübergehender Anpassungen erleichtert. Am häufigsten wird die Anweisung CHANGE REPLICATION FILTER verwendet. Machen wir einen einfachen Test: # Die Replikationsfilterung ist standardmäßig nicht aktiviertmysql> show slave status\G *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 10.0.3.16 Master_Benutzer: repl Master_Port: 3306 Verbindungswiederholung: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35198 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 910 Relay_Master_Log_File: binlog.000004 Slave_IO_Running: Ja Slave_SQL_Running: Ja Replicate_Do_DB: Replikat_Ignorieren_DB: Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 0 Letzter_Fehler: Skip_Counter: 0 Exec_Master_Log_Pos: 35198 # So einstellen, dass die Replikation der db1-Bibliothek ignoriert wird mysql> STOP SLAVE SQL_THREAD; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> REPLIKATIONSFILTER ÄNDERN REPLICATE_IGNORE_DB = (db1); Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> STARTE SLAVE SQL_THREAD; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> Slave-Status anzeigen\G *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 10.0.3.16 Master_Benutzer: repl Master_Port: 3306 Verbindungswiederholung: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35198 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 910 Relay_Master_Log_File: binlog.000004 Slave_IO_Running: Ja Slave_SQL_Running: Ja Replicate_Do_DB: Replikat_Ignorieren_DB: db1 Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 0 Letzter_Fehler: Skip_Counter: 0 Exec_Master_Log_Pos: 35198 # Erstellen Sie db1 in der Masterdatenbank, um zu testen, ob die Slavedatenbank synchronisiert ist mysql> CREATE DATABASE `db1` DEFAULT CHARACTER SET utf8; Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> Datenbanken anzeigen; +--------------------+ | Datenbank | +--------------------+ | Informationsschema | |db1| |mysql | | Leistungsschema | |System| |testdb| +--------------------+ 6 Zeilen im Satz (0,00 Sek.) # Den Status der Slave-Datenbank anzeigenmysql> show databases; +--------------------+ | Datenbank | +--------------------+ | Informationsschema | |mysql | | Leistungsschema | |System| |testdb| +--------------------+ 5 Zeilen im Satz (0,00 Sek.) mysql> Slave-Status anzeigen\G *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 10.0.3.16 Master_Benutzer: repl Master_Port: 33061 Verbindungswiederholung: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35383 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 1095 Relay_Master_Log_File: binlog.000004 Slave_IO_Running: Ja Slave_SQL_Running: Ja Replicate_Do_DB: Replikat_Ignorieren_DB: db1 Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 0 Letzter_Fehler: Skip_Counter: 0 Exec_Master_Log_Pos: 35383 # Brechen Sie den Replikationsfilterparameter ab mysql> STOP SLAVE SQL_THREAD; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> REPLIKATIONSFILTER ÄNDERN REPLICATE_IGNORE_DB = (); Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> STARTE SLAVE SQL_THREAD; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> Slave-Status anzeigen\G *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 10.0.3.16 Master_Benutzer: repl Master_Port: 3306 Verbindungswiederholung: 60 Master_Log_File: binlog.000004 Read_Master_Log_Pos: 35383 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 1095 Relay_Master_Log_File: binlog.000004 Slave_IO_Running: Ja Slave_SQL_Running: Ja Replicate_Do_DB: Replikat_Ignorieren_DB: Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 0 Letzter_Fehler: Skip_Counter: 0 Exec_Master_Log_Pos: 35383 Wir haben kurz gezeigt, wie Sie Replikationsfilteroptionen online mit der Anweisung CHANGE REPLICATION FILTER ändern können. Alle aufgeführten Filterparameter können mit dieser Anweisung geändert werden. Beachten Sie jedoch, dass sich einige Optionen gegenseitig ausschließen. Entsprechende Parameter sollten je nach tatsächlichem Bedarf festgelegt werden. Nachfolgend finden Sie eine Beispielsyntax aus der offiziellen Dokumentation: REPLIKATIONSFILTER ÄNDERN Filter[, Filter][, ...] Filter: REPLICATE_DO_DB = (Datenbankliste) | REPLICATE_IGNORE_DB = (Datenbankliste) | REPLICATE_DO_TABLE = (Tabellenliste) | REPLICATE_IGNORE_TABLE = (Tabellenliste) | REPLICATE_WILD_DO_TABLE = (wild_tbl_list) | REPLICATE_WILD_IGNORE_TABLE = (wilde_Tabellenliste) | REPLICATE_REWRITE_DB = (Datenbankpaarliste) Datenbankliste: Datenbankname[, Datenbankname][, ...] tbl_liste: db_name.tabellenname[, db_tabellenname][, ...] wild_tbl_list: 'db_pattern.Tabellenmuster'[, 'db_pattern.Tabellenmuster'][, …] Datenbankpaarliste: (Datenbankpaar)[, (Datenbankpaar)][, ...] Datenbankpaar: von_db, nach_db Zusammenfassen: In diesem Artikel erfahren Sie, wie Sie Replikationsfilteroptionen online ändern. Unterschiedliche Filterparameter haben unterschiedliche Verwendungszwecke. Wenn Sie wirklich Filterparameter festlegen müssen, empfiehlt es sich, einen umfassenden Test durchzuführen. Einige Parametereinstellungen können sich auf die Replikation anderer Datenbanktabellen auswirken. Wenn Sie möchten, dass es dauerhaft wirksam ist, können Sie es online ändern und dann zur Konfigurationsdatei hinzufügen, sodass es auch nach dem Neustart der Slave-Bibliothek noch wirksam ist. Oben finden Sie Einzelheiten dazu, wie Sie die Master-Slave-Replikationsoptionen von MySQL online ändern können. Weitere Informationen zum Ändern der Master-Slave-Replikation von MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Ubuntu installiert mehrere Versionen von CUDA und wechselt jederzeit
>>: TypeScript-Lernhinweise: Typeingrenzung
Ⅰ. Problembeschreibung: Verwenden Sie CSS, um kon...
In diesem Artikel wird die Installations- und Kon...
Inhaltsverzeichnis 1. Testumgebung 1.1 Hardware u...
Überblick Da wir die Daten normalerweise nicht di...
HTML-Absatz Absätze werden durch das Tag <p>...
Freunde, die in der Entwicklung tätig sind, insbe...
1. Formular <form id="" name="&...
Die Funktion, die ich erreichen möchte, besteht d...
1. CSS-Schreibformat 1. Inline-Stile Sie können C...
1. Einleitung Durch Aktivieren des Slow Query Log...
In diesem Artikelbeispiel wird der spezifische Co...
Samba Übersicht Samba ist eine kostenlose Softwar...
1. Dynamische Abfrageregeln Die dynamischen Abfra...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Inhaltsverzeichnis 1. Wählen Sie die am besten ge...